合并冲突期间的`git stash`

ste*_*moy 25 git merge git-stash git-merge merge-conflict-resolution

我们做得不好.

我们git stash save在合并冲突期间运行,现在我们无法恢复工作.

我们尝试过的事情:

git pull -Xours origin master
git stash apply --index
Run Code Online (Sandbox Code Playgroud)

和:

 git pull origin master
 git stash save --keep-index "merge conflicts"
 git stash apply stash@{1}
Run Code Online (Sandbox Code Playgroud)

请帮忙!

Eva*_*all 27

问题似乎是git stash不保存对您尝试合并的分支的引用.在合并期间,它存储在名为的ref中MERGE_HEAD.

要修复它并返回到之前的状态,您需要找到您尝试合并的修订版(让我们假装它是d7a9884a380f81b2fbf002442ee9c9eaf34ff68d),并在应用存储后将MERGE_HEAD设置为它.

然后你可以应用存储(使用--index重新播放之前暂存的所有内容),并设置你的MERGE_HEAD:

git stash apply --index
git update-ref MERGE_HEAD d7a9884a380f81b2fbf002442ee9c9eaf34ff68d
Run Code Online (Sandbox Code Playgroud)


man*_*lds 1

当您处于冲突状态(索引和工作目录)时,您将无法执行此操作git stash - 它将给出一个错误,说明未合并的条目。

确保你确实做了藏匿。查看git status和的输出git stash show