如何组合git提交

时间:2012-08-21 14:38:40

标签: git

在我的本地GIT存储库中,我有以下提交:

A - > B - > C - > D

(D是头部)

我想将B和C组合成一个提交。 我怎么能这样做?

感谢。

1 个答案:

答案 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哈希值的麻烦。