我有两个分支机构和开发。我盯着主人,例如。
git stash
git checkout development
现在,我在开发分支机构,但错误地我弹出了藏匿处
git stash pop
现在它显示了冲突。我使用这个重置git:
git reset HEAD
但它仍然显示出冲突。我也需要我在主分支中的藏匿处。我该如何解决这个问题?
答案 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