我有一系列这样的提交:
A-->B-->C-->D-->E-->F
提交D
和更高版本是一项新功能,因此我进行了更新,使提交D-->E-->F
是C
的分支:
A-->B-->C
\
-->D-->E-->F
现在,我在C
之上进行了其他提交,因此我的仓库目前看起来像这样:
A-->B-->C-->C'-->C''
\
-->D-->E-->F
我想在D-->E-->F
顶部的功能分支(C''
)中重播提交,因此结果是:
A-->B-->C-->C'-->C''
\
-->D-->E-->F
我该怎么办?
我承认可能存在冲突(我很乐意解决),但认为 比手动复制更改更好。
谢谢!
答案 0 :(得分:1)
rebase(git rebase
)将重播这些提交:
git checkout feature
git rebase branchC
这将为您提供:
A-->B-->C-->C'-->C''
\
-->D'-->E'-->F'
那些提交的不同之处在于:
如果您最终要定期进行该变基,请don't forget to activate rerere
。
答案 1 :(得分:0)
这实际上是将分支代码重新定位到父级。
参考:https://git-scm.com/docs/git-rebase
首先需要签出需要重新设置基础的分支
git checkout branchD
然后需要使用git命令的“ rebase”选项进行重新设置
git rebase parentBranch
请注意,有/无冲突,将发生新的提交,并为提交创建新的SHA。