我刚刚完成了一个非常困难的 merge ,但在 merge 期间的某个时候我做了一些导致 git 失去对我正在 merge 的事实的跟踪(我可能做了 git reset
或其他事情)。
现在我在本地拥有的所有文件都已正确 merge ,但我无法完成 merge ,因为 git 不知道我正在 merge 。知道如何摆脱这个问题吗? merge 花了很长时间,所以我不想手动再做一次。基本上我想保持本地状态不变,但只是通知 git 它应该创建一个 merge 提交(从当前分支和特定的其他分支)而不是常规提交。
最佳答案
Git 寻找 reference调用 MERGE_HEAD
1 来确定下一次提交是否应该是 merge 提交。此引用应指向分支的尖端以 merge 到当前分支(即 target 分支)。
在您的情况下,您可以使用 update-ref
自己创建 MERGE_HEAD
命令:
git update-ref MERGE_HEAD $(git rev-parse <target-branch>)
git merge --continue
MERGE_HEAD
在 merge 操作结束时自动删除,无论它是完成还是中止。
1 这只不过是一个 text file在 .git
目录中,真的。
关于Git 忘记了我正在 merge 的事实,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63578340/