我一直在一个长期运行的分支上工作,并且我经常将另一个分支(开发)拉到我的分支中。我还一直在进行小型 WIP(正在进行中的工作)提交。我想重新调整/压缩所有 WIP 提交,包括来自开发分支的合并提交,并将我的分支快进/更新到当前。然而,一些来自开发的拉取确实存在合并冲突,这似乎给我带来了问题。
我尝试了
git rebase -i <hash>
和git rebase --rebase-merges -i <hash>
,但两次,Git 都要求我重新解决所有合并提交/冲突(在这种情况下,可以追溯到一个月前),而且似乎不够聪明只是用开发分支的当前状态“更新”我的分支并压缩我所有的 WIP 提交。我不想重新解决所有冲突。
有没有一种干净/简单的方法可以做到这一点?
交互式变基确实需要冲突解决。
您可以尝试使用 contrib/rerere-train.sh
trainrerere 过去的提交合并决议。
或者你可以创建另一个分支,在其中挑选你的提交排除合并提交,然后用
rebase -i
挤压它们。但这是手动的并且容易出错。
git reset --soft $(git merge-base your-feature-branch develop)
git commit -m "Your squashed commit message"
git pull --ff-only origin develop