【问题标题】:Git stash and unstash deleted my stash without adding it to the versionGit stash 和 unstash 删除了我的 stash 而不将其添加到版本中
【发布时间】:2020-06-01 15:41:58
【问题描述】:

这个工作流程的哪一部分出错了: 我试图推动,被告知我不能因为没有拉动更改。 我试图拉,被告知我不能因为冲突。 我隐藏了所有更改并使用 git reset --hard 重置到 repo。 我用 git stash pop 取消了我的更改

结果是我的存储已被删除,但没有被取消存储。

【问题讨论】:

  • 您确定您按照描述的顺序执行了这些命令吗?您描述的行为听起来像:# git stash && git pop && git reset --hard 这将删除存储基本上删除您的更改。我建议在 pop 上使用“git stash apply”。 (你可以选择你的存储号码,然后明确地删除它们。)
  • 这就是我的想法!可悲的是,我按此顺序执行了此操作,并且损失了一天的工作量。
  • 以上链接的问题可能会为您提供有关如何恢复丢弃的存储的提示。如果这不起作用:根据您的 IDE,您可能有权访问本地历史记录或根据您的操作系统,您可能有一台时间机器来恢复您的工作。

标签: git


【解决方案1】:

你很可能没有按顺序执行命令。

你打算这样做:

git stash && git pull && git stash pop && git add {your-files} && git commit -m "your message" && git push

但你很可能最终会这样做:

# git stash && git pop && git reset --hard

由于git pop 基本上是git apply stash@{0} && git drop stash@{0} 的快捷方式,因此您应用了更改,然后删除了应用的存储。通过# git reset --hard 重置 repo,您​​删除了您的工作。

我建议使用git stash apply over drop。您基本上可以拥有无​​限量的存储空间,并可以反复浏览、应用它们,并随时删除它们。

你可以recover your dropped git stash或者恢复

【讨论】:

  • 好的,简而言之,我在问题中描述的方式是否正确?
  • @AlesiRowland 我真的不明白为什么您认为需要# git reset --hard,因为这基本上会破坏您所有的本地更改。我很少用那个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-26
  • 1970-01-01
  • 2014-03-11
  • 2017-11-25
  • 2013-02-23
相关资源
最近更新 更多