如何合并两个git提交

如何合并两个git提交,git,git-rebase,Git,Git Rebase,我已经做了一系列的提交,现在我看到我希望合并两个提交。不是最后两个,而是更远一点 我的日志: commit 326f35d83963660893d065e480f231b76f052dd2 Author: Peter Smit <peter@something.eu> Date: Thu Dec 16 11:13:47 2010 +0200 Small editing in ASR chapter commit 652b4c27a5fcb2125ed82aea3142

我已经做了一系列的提交,现在我看到我希望合并两个提交。不是最后两个,而是更远一点

我的日志:

commit 326f35d83963660893d065e480f231b76f052dd2
Author: Peter Smit <peter@something.eu>
Date:   Thu Dec 16 11:13:47 2010 +0200

    Small editing in ASR chapter

commit 652b4c27a5fcb2125ed82aea31421fca4e8eee47
Author: Peter Smit <peter@something.eu>
Date:   Thu Dec 16 11:12:55 2010 +0200

    Added longtable package for abbreviations

commit 74069a151cce9c47484403c1db76e68e1360d8ee
Author: Peter Smit <peter@something.eu>
Date:   Thu Dec 16 11:12:23 2010 +0200

    Changed some headings in the introduction

commit 94126f79fdc6f4927a3f270c152393377e9ef5a5
Author: Peter Smit <peter@something.eu>
Date:   Thu Dec 16 11:11:57 2010 +0200

    Added abbreviations chapter
提交326f35d83963660893d065e480f231b76f052dd2
作者:彼得·斯密特
日期:周四12月16日11:13:47 2010+0200
ASR章节中的小编辑
提交652B4C27A5FCB2125ED82AEA31421FCA4E8E47
作者:彼得·斯密特
日期:周四12月16日11:12:55 2010+0200
为缩写添加了longtable包
提交74069a151cce9c47484403c1db76e68e1360d8ee
作者:彼得·斯密特
日期:2010年12月16日星期四11:12:23+0200
在引言中更改了一些标题
提交94126f79fdc6f4927a3f270c152393377e9ef5a5
作者:彼得·斯密特
日期:周四12月16日11:11:57 2010+0200
增加了缩略语章节
所有四个提交都在更改单独的文件,因此不会有任何合并冲突


我想将652b4(添加的longtable)添加到94126(添加的缩写)提交中。我该怎么做呢?

如果您还没有推送这些提交,请执行一个
git-rebase--interactive
(请参阅)。

您将能够将这两个提交合并为一个。

此情况由处理。关于不重写已推送的历史记录的标准警告适用。这里有一个不错的解释,但我个人觉得
rebase-I
的界面完全颠倒了

通过命名您需要修改的最早提交的父级开始重基:

$ git rebase -i 94126f7^
一个编辑器会弹出,按时间顺序列出提交内容(因此你必须将头倒置)。将列出从头部到名为的提交的子级的每个提交,这就是您命名其父级的原因:

pick 94126f7 Added abbreviations chapter
pick 74069a1 Changed some headings in the introduction
pick 652b4c2 Added longtable package for abbreviations
pick 326f35d Small editing in ASR chapter
您要做的是将commit 652b4c2压缩到94126f7上,因此将其命令更改为“压缩”,并将其直接移动到后者之后:

pick 94126f7 Added abbreviations chapter
squash 652b4c2 Added longtable package for abbreviations
pick 74069a1 Changed some headings in the introduction
pick 326f35d Small editing in ASR chapter
保存并退出;弹出的下一个编辑器将用于组合提交消息。您可以根据自己的意愿进行更改,然后退出时将完成重新基准


重定基址时的冲突可能会让人恼火(有些补丁根本无法通勤),合并可能会特别难看,但重新排序文件添加不会有任何问题。

可能会重复比我的答案详细得多的内容+1.