我有这个
-A-B-C-D-
和
-A-E-F-G-
我做了合并,这就是我现在所拥有的
-A-B-C-D-------H-I-
\ /
------E-F-G
我如何得到这个?
-A-B-C-D-J-
我需要将E,F,G,H,I组合成一个新的提交。
抱歉愚蠢的问题。我正在读人,但无法理解。
2 Ikke:是的。 H是合并提交。 2 Shahbaz:我需要它,因为commit-E上的代码不可构建(不是我的错误=))并且commit-G修复了它。
答案 0 :(得分:2)
这是迄今为止最快捷的方法:
# make sure you're on the branch that's at commit I
git reset --soft <commit-D>
git commit
reset --soft
重置当前分支以指向给定的提交,但保留工作树和索引(暂存区域),这样当您提交时,您将提交那里的所有内容在I
,在D
作为父级的单个提交中。
(您可以使用其他工具完成此操作,但在这种情况下,这就是您所需要的!)
答案 1 :(得分:0)
答案 2 :(得分:0)
merge --squash
应该足以获得预期的结果。
git checkout branch_of_D
git merge --squash branch_of_G
请参阅“In git, what is the difference between merge --squash and rebase?”
例如,使用merge --squash
,请参阅“How to use GIT merge --squash
?”。