Git:在其他提交之上重播一系列提交

时间:2018-11-07 00:28:25

标签: git

我有一系列这样的提交:

A-->B-->C-->D-->E-->F

提交D和更高版本是一项新功能,因此我进行了更新,使提交D-->E-->FC的分支:

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

我该怎么办?

我承认可能存在冲突(我很乐意解决),但认为 比手动复制更改更好。

谢谢!

2 个答案:

答案 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。