在我的本地 GIT 存储库中,我有以下提交:
A --> B --> C --> D
(其中 D 是头部)
我想将 B 和 C merge/压缩成一个提交。
我怎么能那样做?
谢谢。
最佳答案
使用这个命令:
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
的哈希的麻烦。关于git - 如何 merge git 提交,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12061948/