“ git rebase”似乎还具有其他后备逻辑来处理合并失败:
setThrowUnavailableOnStartupException(true)
它在那里做什么,我将如何调用我的樱桃签以获得相同的行为?
可能正确的解决方案是不尝试将一个rebase表示为一系列的樱桃小贴士,但是如果可以的话,那将是很好的,因为我可以使用相同的方法处理rebase和任意更改集合流。
答案 0 :(得分:5)
大多数git rebase
命令实际上要做运行git cherry-pick
。
您看到的后备广告来自git rebase
的一种形式,出于历史原因,不使用git cherry-pick
。当您调用 non -interactive git-rebase
且不使用使它使用经过改进的新基准的任何选项时,将使用一种形式调用方法。
旧形式通常会产生相同的效果。它包括使用git format-patch
将每个提交变成一个补丁,然后使用git am --3way
应用所有格式化的补丁。 --3way
选项告诉git am
,如果无法盲目应用补丁,则应使用每个格式化补丁中的index
行来实现git cherry-pick
的一部分。会自动完成。
如果您希望变基直接使用git cherry-pick
,则可以:
-k
选项,或-m
选项,或-s strategy
选项,或-X extended-option
选项,或-i
或--interactive
),或--autosquash
选项,或-p
或(Git 2.18+)-r
选项。