我可以将“ git rebase”表示为一系列的樱桃小食吗?

时间:2019-05-13 18:34:29

标签: git git-rebase git-cherry-pick

“ git rebase”似乎还具有其他后备逻辑来处理合并失败:

setThrowUnavailableOnStartupException(true)

它在那里做什么,我将如何调用我的樱桃签以获得相同的行为?

可能正确的解决方案是不尝试将一个rebase表示为一系列的樱桃小贴士,但是如果可以的话,那将是很好的,因为我可以使用相同的方法处理rebase和任意更改集合流。

1 个答案:

答案 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选项。