【问题标题】:How to recover the lost git file after git-stash popgit-stash pop后如何恢复丢失的git文件
【发布时间】:2019-11-13 19:38:39
【问题描述】:

我有 2 个分支。我最近在第一个分支上做了git stash,然后搬到了另一个分支。我在第二个分支中做了一些更改。我想搬到第一个分支,所以我在第二个分支中再次做了git stash 并搬到了第一个分支。 但是在我做了git stash pop 之后,它合并了几个文件,并且在上次提交后我丢失了所有更改。 git stash pop 后收到以下消息

git stash pop Auto-merging src/settings.jsx CONFLICT (content): Merge conflict in src/settings.jsx Auto-merging public/css/index.css

我希望恢复在git stash pop 之后丢失的所有文件 我是 git 新手。任何帮助将不胜感激。提前致谢。

【问题讨论】:

  • 你能做 git status 看看有哪些文件吗?
  • 你确定你“弹出”了正确的存储状态...。做一个git stash list 来查看你的存储的排序。您可能将错误的存储状态应用于您的分支。然后您可以使用例如git stash apply stash@{2} 应用它。 git stash pop 只是弹出最新的隐藏状态......如果你隐藏在另一个分支上,也许你应用了错误的。
  • 要撤消/恢复更改,您可以查看git reflog

标签: git github recovery git-stash


【解决方案1】:

Pop 只会返回最后一个 git stash 文件。所以这是你应该做的-

  1. 获取所有存储的列表:
$ git stash list

它会返回类似的东西:

stash@{0}: WIP on develop: 049d071 added the index file
stash@{1}: WIP on develop: j264053 Revert "added file_size"
stash@{2}: WIP on develop: 21t80a4 added number to log
  1. 现在您可以应用您想要应用的任何存储:
git stash apply stash@{2}

或者

git stash apply 2

Apply 不会像 pop 一样删除您的存储,因此您以后仍然可以重新访问它。

【讨论】:

  • 我试过 git stash list 然后git stash apply stash@{1} 但它给了我一个错误。我尝试了以下方法:git stash list stash@{0}: WIP on range-slider: 7ca64b9 remove tests from commit hook stash@{1}: WIP on radiobutton: c15e246 WIP: radiobutton test-cases ` git stash apply stash@{1} 未知选项:-encodedCommand `
  • 您在应用 git stash 时是否使用了某些选项(-encodedCommand)?
  • 没有。我通过使用“git stash apply 2”解决了这个问题我恢复了丢失的文件,但是我在另一个分支中创建的一个新文件在git stash apply之后合并到了这个分支中
  • 太棒了!是的,你也可以使用它。
  • 很好,你写了我上面评论的答案,但这并没有回答问题,因为问题是“如何在 git-stash pop 后恢复丢失的 git 文件”
猜你喜欢
  • 2012-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-28
  • 2016-04-09
  • 2017-11-25
  • 2013-02-23
相关资源
最近更新 更多