繁体   English   中英

Git squash提交具有交互式基础的交互式基础

[英]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 

提交28d4a62d4d21c3e​​8155553e1216bfa981afe7212作者:您的名字日期: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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM