合并两个提交之间的提交

时间:2015-06-08 08:20:35

标签: git git-merge

我想合并两个提交 - 这两个提交之间有提交。提交之间的提交不会更改由提交1和提交6编辑的文件。提交尚未推送。

这可能吗?

rule

3 个答案:

答案 0 :(得分:2)

正如我在评论中已提到的那样。您可以执行以下操作:

git rebase -i并重新排序162345612345之类的提交,然后将它们压缩在一起以获取(1+6)2345之类的历史记录。

答案 1 :(得分:1)

你可以使用git rebase,考虑到commit 1是6 commit beahind head:

pick f68ffb5 commit 6
...
squash d294fac commit 1

git windows将打开6个提交并解释你的选项。您希望将提交6和提交1组合在一起,因此将提交1压缩到提交6:

packages.config

将打开另一个git窗口供您编辑提交消息。

答案 2 :(得分:1)

对于同一分支中的提交

# make sure you're on the proper branch
git checkout branch-with-commits

这一点非常重要:您必须在之前提交提交要提交的提交。在这里,我们使用^进行“之前”引用。

# rebase to the commit before commit 1
git rebase -i d294fac^

打开编辑器窗口。它可能是vim,如果您不熟悉它,请结帐How to exit the Vim editor?

在此列表中,提交的顺序相反(不是git log):从最早到最晚。

按以下方式重新排列行:

pick d294fac commit 1
squash f68ffb5 commit 6
pick <sha1> commit 2
pick <sha1> commit 3
pick <sha1> commit 4
pick <sha1> commit 5

# and if there are commits later that commit 6:
pick <sha1> commit 7
...

保存文件。 Git现在为新提交1和6的消息打开一个新的编辑器窗口。保存它。变基已经完成。