如何压缩包含合并提交的提交而不重新解决冲突?

问题描述 投票:0回答:1

我一直在一个长期运行的分支上工作,并且我经常将另一个分支(开发)拉到我的分支中。我还一直在进行小型 WIP(正在进行中的工作)提交。我想重新调整/压缩所有 WIP 提交,包括来自开发分支的合并提交,并将我的分支快进/更新到当前。然而,一些来自开发的拉取确实存在合并冲突,这似乎给我带来了问题。

我尝试了

git rebase -i <hash>
git rebase --rebase-merges -i <hash>
,但两次,Git 都要求我重新解决所有合并提交/冲突(在这种情况下,可以追溯到一个月前),而且似乎不够聪明只是用开发分支的当前状态“更新”我的分支并压缩我所有的 WIP 提交。我不想重新解决所有冲突。

有没有一种干净/简单的方法可以做到这一点?

git git-merge git-rebase git-squash
1个回答
0
投票

交互式变基确实需要冲突解决。
您可以尝试使用 contrib/rerere-train.sh

train
rerere 过去的提交合并决议

或者你可以创建另一个分支,在其中挑选你的提交排除合并提交,然后用

rebase -i
挤压它们。但这是手动的并且容易出错。

详细介绍torek评论中更简单的替代方案:

git reset --soft $(git merge-base your-feature-branch develop)
git commit -m "Your squashed commit message"
git pull --ff-only origin develop
© www.soinside.com 2019 - 2024. All rights reserved.