3

如何使用“git rebase”在 git 中将第一次提交与第四次提交结合起来。从我在这里读到的http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html,'git rebase'中的'squash'命令只融合到以前的提交中。

在 git 中,我有

$ git log
commit 9a30d13
commit 4a6729e
commit 4a6729e
commit 4a6729e
commit a610898

基本上,我希望 9a30d13 的更改与 a610898 中的更改相结合,这样新的历史就是

$ git log
commit 4a6729e
commit 4a6729e
commit 4a6729e
commit a610898 + 9a30d13

我没有推任何东西。

谢谢你。

4

1 回答 1

4

当您按照链接中的描述进行交互式变基时,您也可以重新排序提交。一旦你改变了顺序,你就可以9a30d13挤进a610898.

当交互式变基出现时,它看起来像这样(最旧的提交在顶部):

pick a610898 Message A
pick 4a6729e Message B
pick 4a6729e Message C
pick 4a6729e Message D
pick 9a30d13 Message E

然后你重新排序它们:

pick a610898 Message A
pick 9a30d13 Message E
pick 4a6729e Message B
pick 4a6729e Message C
pick 4a6729e Message D

并更改9a30d13squash而不是pick

pick a610898 Message A
squash 9a30d13 Message E
pick 4a6729e Message B
pick 4a6729e Message C
pick 4a6729e Message D

保存并退出,你就完成了。您将有机会为您的新a610898+9a30d13提交输入新的提交消息。

于 2013-05-21T18:01:59.447 回答