主分支上的Git stash pop

时间:2015-06-15 13:57:31

标签: git github git-stash

我有两个分支机构和开发。我盯着主人,例如。

git stash
git checkout development

现在,我在开发分支机构,但错误地我弹出了藏匿处

git stash pop

现在它显示了冲突。我使用这个重置git:

git reset HEAD

但它仍然显示出冲突。我也需要我在主分支中的藏匿处。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

git reset HEAD无法触及工作树,只触及索引。实际上,它只是取消暂存分阶段文件,因为HEAD无论如何都是您当前分支的位置(这是HEAD的定义)。

git reset --hard HEAD会修复工作树以反映HEAD

如果git pop没有干净利落,那么应该保留藏匿点。

来自man git-stash:

  

应用状态可能会因冲突而失败;在这种情况下,它不会从隐藏列表中删除。您需要手动解决冲突,然后手动调用git stash drop。

所以就这样做:

git checkout master
git stash pop 
#or `git stash apply` if you don't want to drop the stash even if it does apply cleanly

答案 1 :(得分:1)

尝试使用

查看 git stash手册
git stash --help

它有一个部分,说明如果您意外清除/丢弃存储器该怎么办。这将有助于理解在这种情况下要做什么。

Recovering stashes that were cleared/dropped erroneously
   If you mistakenly drop or clear stashes, they cannot be recovered through the normal safety mechanisms. However, you can try the
   following incantation to get a list of stashes that are still in your repository, but not reachable any more:

       git fsck --unreachable |
       grep commit | cut -d\  -f3 |
       xargs git log --merges --no-walk --grep=WIP