[英]Git squash commits with interactive rebase with merge commits between
我有一个具有以下历史记录的测试存储库:
提交eb4a4d52a8fe6abdebb93c7747beac2d511003af(HEAD,master)合并:22f849c 94e27d1作者:您的姓名日期:2014年1月27日星期一00:51:42 +0100
Merge branch 'cheryr' Conflicts: FILE
提交22f849c403b6cdf43280e66e937931bf9d0ab25a作者:您的名字日期:2014年1月26日星期日21:01:35 +0100
4 toto
提交94e27d1c78833784619e25eeb8e0186f154f2282(cheryr)作者:您的名字日期:2014年1月27日星期一00:48:12 +0100
toto
提交2368d78ba95811e9eb9897487cccb7b7f6927910作者:您的名字日期:2014年1月26日星期日22:31:51 +0100
10
提交b1f0f8a1a1951e661a7e833314fc483085516b0c(tmp)作者:您的名字日期:2014年1月26日星期日22:19:56 +0100
9
提交3a8f2e17e721821ae8ebd1e272437c8632224b9a作者:您的名字日期:2014年1月26日星期日22:18:23 +0100
8
提交28d4a62d4d21c3e8155553e1216bfa981afe7212作者:您的名字日期:2014年1月26日星期日22:15:42 +0100
7
这是将几个第一次提交与合并提交一起压缩的一种可能吗? 不可能简单地将HEAD〜4传递给git rebase -i,因为它将从合并提交的第一个父代那里收回4个提交。
git rebase -i HEAD~4
可以很好地工作,即使它是一个远程提交,或者您不知道它有多远,也可以取您要编辑的第一个提交的父级的哈希,或者对我来说散列并附加一个^
表示父母
git rebase -i hash^
我想〜也可以
git rebase -i hash~
然后,您可以将第一个提交设置为p
或reword,如果您想更改它的消息r
,将其余3个设置为fixup f
这样它就不会停止停止询问您新的提交消息,它将在中间停止任何输入冲突,如果通过创建了一个提交的提交,您还希望您需要重新解决所有冲突。
尝试:git rebase -i HEAD ^ 2〜3
'^'符号用于选择1个父级(在这种情况下,^ 2表示选择第二个父级,然后〜3表示“ go 3 commits back”)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.