Git的方法:移动“顶部”提交(Git: move a commit “on top”)

2019-07-18 15:59发布

比方说,在master我禁用的功能。 我对分支功能工作的feature ,让我有一种特殊的承诺$那里,只是激活此功能。 现在,我要合并我的确在变化featuremaster ,但保留能够提交出。 所以,它就像

main:    A--B--X--Y
feature: A--B--$--C--D

因此,让我们说,我想这样做,通过移动$提交的特征之上:

new feature: A--B--C--D--$

我会如何做呢?

Answer 1:

git rebase -i B ,然后移动$到在编辑器中显示了列表的末尾。 它将开始作为打开的文件中的第一行。 你也可以只删除该行完全,这将只是丢弃提交您的分支的历史。



Answer 2:

如果你想保持你在相同的顺序提交feature ,你应该做一个新的分支,并执行以下操作。 否则,只是这样做的feature

git rebase -i <sha for commit B>

举动承诺$到列表的底部

git checkout master
git rebase feature <or the other branch name>

这是我不清楚的问题,但如果你不想$所有,而不是移动它删除后git rebase -i虽然你会想这样做的一个新的分支,这样你就不会失去它。 当你正在改变历史。

这还假定分支feature尚未推到一个远程的改写历史的是坏的。



文章来源: Git: move a commit “on top”