假设master
我禁用了一项功能。我在 branch 上处理该功能feature
,因此我在那里有一个特殊的提交$
,它只启用了该功能。现在我想将我所做的更改合并feature
到中master
,但保留启用提交。所以就像
main: A--B--X--Y
feature: A--B--$--C--D
因此,假设我想通过将$
提交移到功能之上来做到这一点:
new feature: A--B--C--D--$
我该怎么做呢?
假设master
我禁用了一项功能。我在 branch 上处理该功能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
没有被推送到远程,因为重写历史是不好的。