最近我遇到了一个独特的问题,我必须在分支中只包括最新的提交,而放弃所有旧的提交。
例如,考虑我有这样一个提交结构:
[main branch]
af474e3 (HEAD -> main) Updated modal UI
c0f9599 Added modal UI <-- This commit onwards is what our requirement is
e50c805 Updated button UI
de2ab3c Added button UI
9b1822f Initial commit
(我知道这听起来很傻,但是,)我想从开始获取所有(最新)提交,以及与之相关的所有提交信息,即提交日期、提交作者等。
创建的分支必须看起来像:
[new branch]
af474e3 (HEAD -> new, master) Updated modal UI
c0f9599 Added modal UI
我试过removing/squashing commits with interactive rebasing
,但没用。Cherry-picking
也不起作用。
这能实现吗?有什么简单的方法可以做到这一点吗?
是否希望分支从具有类似修订版的文件和内容的修订版c0f9599
开始?
git checkout --orphan new-branch c0f9599
git commit -C c0f9599 # use the same comment as c0f9599
git cherry-pick af474e3
给你!(当然,修订ID会有所不同)