将分支移动到重写提交

时间:2017-06-27 12:05:13

标签: git git-rewrite-history

我的git历史看起来基本上像这样

3

然后我通过交互式重新定位2master | 1 - 2 - 7 - 8 - 9 \ feature | - 3 - 4 进行了修改,现在我的历史记录看起来像这样

7

现在38,但通过编辑,596feature

有没有办法可以更改3分支,以便{0}}被删除,47分支出来?

master  | 1 - 2 - 7 - 8 - 9
                  \
feature |           - 4

2 个答案:

答案 0 :(得分:1)

只需重新绑定功能分支并删除提交:

git rebase -i --onto 7 master feature
# drop the commit 3 and save
# you may have conflicts when applying commit 4

答案 1 :(得分:0)

好吧,有点儿。您可以将4重新定位到7,这可能就是您的意思,但4将不再是4,就像79一样}不再是356

对于提供的提交图,最简单的方法是

git rebase --onto 7 feature^ feature

7替换为合适的表达式,例如提交7的SHA ID或给定图表中的master~2

如果这仅仅是一个示例,并且可能存在未知数量的提交,那么您可以使用master作为上游而不是feature^进行交互式rebase,然后标记像3这样的提交是drop ped而不是pick ed。