比方说,在master
我禁用的功能。 我对分支功能工作的feature
,让我有一种特殊的承诺$
那里,只是激活此功能。 现在,我要合并我的确在变化feature
为master
,但保留能够提交出。 所以,它就像
main: A--B--X--Y
feature: A--B--$--C--D
因此,让我们说,我想这样做,通过移动$
提交的特征之上:
new feature: A--B--C--D--$
我会如何做呢?
比方说,在master
我禁用的功能。 我对分支功能工作的feature
,让我有一种特殊的承诺$
那里,只是激活此功能。 现在,我要合并我的确在变化feature
为master
,但保留能够提交出。 所以,它就像
main: A--B--X--Y
feature: A--B--$--C--D
因此,让我们说,我想这样做,通过移动$
提交的特征之上:
new feature: A--B--C--D--$
我会如何做呢?
git rebase -i B
,然后移动$
到在编辑器中显示了列表的末尾。 它将开始作为打开的文件中的第一行。 你也可以只删除该行完全,这将只是丢弃提交您的分支的历史。
如果你想保持你在相同的顺序提交feature
,你应该做一个新的分支,并执行以下操作。 否则,只是这样做的feature
git rebase -i <sha for commit B>
举动承诺$到列表的底部
git checkout master
git rebase feature <or the other branch name>
这是我不清楚的问题,但如果你不想$所有,而不是移动它删除后git rebase -i
虽然你会想这样做的一个新的分支,这样你就不会失去它。 当你正在改变历史。
这还假定分支feature
尚未推到一个远程的改写历史的是坏的。