弃掉Git Stash Pop

jdo*_*dog 128 git

我做了一个git stash pop,现在我有很多冲突.我之前提交了所有最近的代码git stash pop,所以有没有办法回到最后一次提交并摆脱所有冲突并编写git stash pop注入的代码?

小智 180

这已经在stackoverflow上被询问和回答了(参见如何将Git存储库恢复到之前的提交?),但简单的答案是:

git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)

这应该照顾你的问题.请注意,这将从存储库中删除所有未提交的更改.

请注意,如果存在冲突,则会保留存储.从藏匿文档:

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

  • 但这会让你的藏匿物丢失 (26认同)
  • 实际上,你不会失去你的藏匿 - 请参阅编辑. (24认同)
  • @ K.Weber如果`git stash pop`导致冲突,隐藏将不会从隐藏列表中删除. (15认同)
  • 没有太多的解决方案imho,因为它指出你将失去未经修改的变化. (4认同)
  • 我不知道谁是upvoting的“其实你不会失去你的藏匿”,我只是失去了我的 (2认同)

小智 5

也可以对特定文件调用重置:

git reset HEAD <filename>...
Run Code Online (Sandbox Code Playgroud)

但是,您不能硬重置文件。但是您可以在之后通过 checkout 恢复更改:

git checkout -- <filename>...
Run Code Online (Sandbox Code Playgroud)

正如 Luke 在 MichaelMilom 的回答中指出的那样,您的藏匿物将被保留。

当您不想丢失未提交的本地更改时,这很有用。