我最近面临以下情况。
我们有一个 master 分支M
,而我正在一个 feature 分支上工作F
。有人重新定基M
并推送到远程,我必须重新定基F
以匹配它。
开发过程中已经解决了一些冲突,我事先知道我想以 HEAD(即git rebase -Xours
)的方式解决这些冲突。但新的 headM
和位于顶部的功能提交之间可能还存在其他冲突。我不知道要以哪种方式解决这些问题,我想检查一下它们。
这让我想知道,在进行交互式 rebase 时,是否有办法针对一组特定的冲突决定策略。比如
git rebase --continue -Xours
这将解决这组冲突并跳过历史记录。我看不出有什么办法可以做到这一点(我试过上面的命令,但没有用)。
答案1
可以重新运行当前的变基步骤(选择),即当遇到冲突时:
- 放弃任何更改或冲突状态
git reset --hard
或者
git checkout -f
前一个命令有一个缺点。它会改变 ORIG_HEAD。而后一个命令则不会。
- 使用任意策略重新运行最后一步:
git cherry-pick -n -s... -X... REBASE_HEAD