我的手上有一个相当凌乱的树枝。它经历了几次
的实例git merge master
如果我做了很多压扁的git rebase -i,我将不得不重新修复我在合并中解决的冲突。
我的印象是
git checkout master
git merge --squash
最终会得到所需的结果而无需手动重新合并。是我最好的选择:
git checkout master
git checkout -b clean-new-branch
git merge --squash my-messy-branch
并将我的分支重置到clean-new-branch的末尾,放弃了我之前的历史记录?
答案 0 :(得分:1)
假设您有以下历史记录:
master my-messy-branch
↓ ↓
-- C -- C -- M -- M -- M -- M -- M
C
是“干净”(或好)提交,而M
是“凌乱”提交,并且您希望得到以下结果:
master my-messy-branch
↓ ↙
-- C -- C --- C
然后这样做非常简单,无需手动压缩所有提交的交互式rebase。相反,你可以在凌乱的分支上进行软重置:
git checkout my-messy-branch
git reset --soft master
git commit
这将为那些M
提交中的所有更改创建一个提交。