我如何将两个提交合并为一个提交?
这个问题在这里已经有了答案:
你想git rebase -i
执行一个交互式rebase。
如果你当前在你的“提交1”,并提交你想合并,“提交2”,是以前的提交,你可以运行git rebase -i HEAD~2
并将第二行的第一个字从“挑”到“压扁”。 然后写下你的文件,然后退出。 Git会压缩你的第一次提交到你的第二次提交。
请注意,此过程会重写分支的历史记录。 如果你在某个地方推动你的代码,你必须git push -f
,任何分享你的代码的人都必须跳过一些环节来吸引你的改变。
请注意,如果有问题的两个提交不是分支上的最后两个提交,则该过程稍有不同。
懒惰简单的版本像我这样的健忘人士:
git rebase -i HEAD~3
或者多次提交而不是3次。
打开这个
pick YourCommitMessageWhatever
pick YouGetThePoint
pick IdkManItsACommitMessage
进入这个
pick YourCommitMessageWhatever
s YouGetThePoint
s IdkManItsACommitMessage
并执行一些操作,然后按esc
然后enter
以保存更改。 [1]
当下一个屏幕出现时,摆脱那些垃圾#行[2]并创建一个新的提交消息或其他内容,并执行相同的escape
enter
操作。 [1]
Wowee,你有更少的提交。 或者你只是打破了一切。
[1] - 或者任何适用于你的git配置的东西。 这只是一个有效的序列,因为我的设置很有效。
[2] - 你会看到一些像# this is your n'th commit
的第几次# this is your n'th commit
,你原来的提交正好在这些消息下面。 你想删除这些行,并创建一个提交消息来反映你合并到1中的n个提交的意图。
git rebase -i HEAD~<quantity of your commits>
(即git rebase -i HEAD~5
) txt
文件更改pick
关键字squash
的所有承诺,除第一次提交(这是在顶部)。 对于上面的一个,将其更改为reword
(这意味着您将在下一步中为此提交提供新评论)并单击SAVE!