[英]Git - squashing earlier commits and reflecting it on different branches
我对Git很新,而且我正在尝试压制一系列早期的提交,但是我在所有分支上都有这种“挤压”的反应时遇到了问题。
我从以下树开始:
A---->B---->C---->D---->E---->F---->G---->H (Branch 1)
\
\
\
I---->J---->K (Branch 2)
我想'压缩'提交C,D,E和F,但我希望这个'压缩'能够反映在分支1和分支2上。
我尝试了'git rebase -i HEAD~7'
并进行了必要的更改(在分支1上),但这是我结束的:
A---->B---->C'---->G---->H (Branch 1)
\
\
\
C---->D---->E---->F---->G---->H---->I---->J---->K (Branch 2)
当我想得到的是:
A---->B---->C'---->G---->H (Branch 1)
\
\
\
I---->J---->K (Branch 2)
我究竟做错了什么? 有没有办法达到我想要的结果?
提前致谢。
好吧,这比我的评论中的cherry-pick
答案更好,因为如果你有很多提交cherry-pick
,这可能相当繁琐(它也避免了第三个分支的创建)。
最快的事情是两个rebase
s。 第一个是你指定的那个。 然后你checkout
分支2并在你的rebase
d分支1的顶部重新定义,删除你不想要的提交( C
, D
, E
, F
, G
和H
)。 所以基本上,你有:
git checkout <branch 1>
git rebase -i HEAD~7
您已经做过,其次是:
git checkout <branch 2>
git rebase -i <branch 1>
打开默认编辑器时,只需删除与提交C
到H
关联的行。 结果将是您正在寻找的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.