我们可以"藏匿" git rebase正在进行中

时间:2017-10-05 09:09:34

标签: git git-rebase

目前正在进行git rebase分支到另一个分支(需要一些调整和大部分时间),我们需要在生产(另一个分支)上做一个修补程序。

有办法:

  1. 检查生产分支而不放弃在此rebase过程中完成的所有工作?
  2. 在生产分支+提交
  3. 上完成工作
  4. 跳回到要完成的rebase过程?

2 个答案:

答案 0 :(得分:1)

我按原样离开了项目,并将其git clone放到另一个文件夹中。我将编码并将修补程序提交到该新文件夹的生产分支中,并在准备好后将它们推回原始项目文件夹。

答案 1 :(得分:0)

简短的回答是否定的。某些项目(例如索引,HEAD和正在进行的rebase信息)存储在工作树中或与工作树相关联。

你可以像你在自己的答案中所建议的那样,制作一个新的克隆;或者,使用Git 2.6或更高版本,使用git worktree add。 (git worktree功能出现在2.5中,但是有一些简短的修复,接着是更长时间的小修复,所以这在最新的Git版本中效果最佳。)

git worktree add所做的是使用现有存储库创建其他工作树。这与创建新克隆类似,只是直接共享基础.git存储库。每个添加的工作树都有自己独立的索引,因此, 工作树的 索引不是 索引 > per 工作树。而不是 HEAD,每个工作树只有一个HEAD,依此类推。

git worktree add有一个严格限制:每个工作树必须位于一个单独的分支中。因此,如果您的主要工作树(即您正在进行重新定位的工作树)位于分支develop上,则您添加的工作树也不能位于分支develop上。如果您需要或需要,请继续使用单独的克隆。 (你实际上从来没有需要它,但是这方面的细节变得棘手。)