您可以根据每次提交来选择 git rebase 策略吗?

您可以根据每次提交来选择 git rebase 策略吗?

我最近面临以下情况。

我们有一个 master 分支M,而我正在一个 feature 分支上工作F。有人重新定基M并推送到远程,我必须重新定基F以匹配它。

开发过程中已经解决了一些冲突,我事先知道我想以 HEAD(即git rebase -Xours)的方式解决这些冲突。但新的 headM和位于顶部的功能提交之间可能还存在其他冲突。我不知道要以哪种方式解决这些问题,我想检查一下它们。

这让我想知道,在进行交互式 rebase 时,是否有办法针对一组特定的冲突决定策略。比如

git rebase --continue -Xours

这将解决这组冲突并跳过历史记录。我看不出有什么办法可以做到这一点(我试过上面的命令,但没有用)。

答案1

可以重新运行当前的变基步骤(选择),即当遇到冲突时:

  1. 放弃任何更改或冲突状态
git reset --hard

或者

git checkout -f

前一个命令有一个缺点。它会改变 ORIG_HEAD。而后一个命令则不会。

  1. 使用任意策略重新运行最后一步:
git cherry-pick -n -s... -X... REBASE_HEAD

相关内容