我想合并两个提交 - 这两个提交之间有提交。提交之间的提交不会更改由提交1和提交6编辑的文件。提交尚未推送。
这可能吗?
rule
答案 0 :(得分:2)
正如我在评论中已提到的那样。您可以执行以下操作:
git rebase -i
并重新排序162345
或612345
之类的提交,然后将它们压缩在一起以获取(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的消息打开一个新的编辑器窗口。保存它。变基已经完成。