我已经陷入了一种似乎相当不寻常的情况,并且本质上希望将我的工作状态分成两个提交。一个是合并提交,另一个是它自己的实质提交。
以下是发生的事情:
git stash
git rebase master
git stash pop
请注意,我忘了为合并冲突提交修复程序,因此这些文件仍然标记为冲突。但他们也有我不想要的局部变化。
一个提交来解决合并冲突,一个提交我的本地更改。如何将当前(冲突)状态拆分为这两个提交?
答案 0 :(得分:1)
在我的头顶,并没有处于类似状态的回购,最好的计划可能是git stash
当前状态(合并进行加上新工作),然后{{1在合并之前回到。然后重做合并,并记住提交。然后git reset
,但你可能最终得到合并冲突的反转,以便在你这样做时进行整理。
除非您能够通过git stash pop
et专门挑选合并后的块与您的额外工作。 al。,或者如果合并或额外的工作不足以折腾并重新开始......
答案 1 :(得分:1)
你可以制作一个git rebase --abort
(因为你正在做一个变形),再一次git stash
,然后再次尝试git rebase
,并用git mergetool
解决冲突。完成冲突后,git rebase --continue
。
答案 2 :(得分:1)
我找到了自己的解决方案,因为我的更改是差异中的单独块。这是我做的:
git add
所有未合并的文件,它将我的工作树置于可用状态git reset
取消暂存这些文件git add --patch
此解决方案的缺点是第一次提交没有任何关于导致它的合并冲突的自动元数据。