在我的本地GIT存储库中,我有以下提交:
A - > B - > C - > D
(D是头部)
我想将B和C组合成一个提交。 我怎么能这样做?
感谢。
答案 0 :(得分:8)
使用此命令:
git rebase -i A ;# where A is A's commit hash
在交互式编辑器中,更改行,如下所示:
pick c7787af A
pick f9d9262 B
pick 6c363d0 C
pick 40f657d D
对此:
pick c7787af A
pick f9d9262 B
squash 6c363d0 C
pick 40f657d D
如果你更愿意放弃C的提交消息,但仍然压缩提交,请使用:
pick c7787af A
pick f9d9262 B
fixup 6c363d0 C
pick 40f657d D
从不重新绑定您已与协作者共享的分支。该操作会更改SHA1哈希值,并导致非快进更新。
正如Jason在评论中指出的那样,另一种语法是git rebase -i HEAD~4
。当您将最近的历史记录重新设定为压缩提交时(即,很容易让父母及时计算),这样可以避免查找A
哈希值的麻烦。