我目前正在将origin / master重新定位到一段时间之前从origin / master创建的分支上,并且目前无法使用在分支上工作的开发人员。
我已经在功能分支的第一次提交中解决了一些冲突,但是我必须等待开发人员知道如何最终确定rebase。
有没有办法保持我已经做过的冲突解决(约30分钟),以便我可以继续进行另一项任务?
答案 0 :(得分:3)
git stash
所做的就是提交。 (好吧,两次提交,但是在这一点上并不重要。提交git stash
使得没有分支,并且构造奇怪,但关键是它提交。这是因为提交是在Git中保存文件的方式。即使是Git的git notes
也是提交!就像存储,它们不在分支上,但它们确实保存了文件,所以它们是提交。)
如果您可以使用git stash
进行提交,则可以使用git commit
进行提交。
如果没有 - 如果你还没有完成合并冲突的解决方案 - 你基本上被卡住了。您必须解决所有冲突才能提交。有关这方面的更多信息,请参阅How can I save a git "rebase in progress"?。
请注意,如果您拥有足够新的Git git worktree add
,则可以设置多个工作树,每个工作树位于不同的分支上。每个工作树都有自己的索引(请参阅其他问题和答案,了解其重要性),因此可以在&#34中保留包含合并冲突的正在进行的rebase ;所述"索引并切换到另一个工作树中的另一个分支并进行普通工作。换句话说,""" index现在是一个per-work-tree索引,因此合并冲突在"""索引"锁定"那个工作树,但不是任何其他工作树。
答案 1 :(得分:0)
将来,您可以使用rerere,它将记录您的分辨率。这不会立即让你回到30分钟进入篮板,但它应该有很多帮助,基本上你只是确认你的分辨率到你停止的地步。我不知道为什么rerere不是Git的标准,它非常有用。
答案 2 :(得分:0)
另一个脑死亡的简单解决方案是简单地复制包含git存储库mid-rebase的整个文件夹。这应该始终有效。完成后(重新定位和推送)删除该文件夹可能是一个好主意。
答案 3 :(得分:0)
或者另一个想法是提交并在mid-rebase中创建一个分支,然后git cherry-pick稍后保留未重新提交的提交。