弃掉Git Stash Pop

时间:2013-11-18 00:25:33

标签: git

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

3 个答案:

答案 0 :(得分:171)

这已经在stackoverflow上被询问和回答(参见How to revert Git repository to a previous commit?),但简单的答案是:

git reset --hard HEAD

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

请注意,如果存在冲突,则会保留存储。来自stash docs

  

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

答案 1 :(得分:4)

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

git reset HEAD <filename>...

虽然您无法重置文件。但是你可以在结账后恢复更改:

git checkout -- <filename>...

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

如果您不想丢失未提交的本地更改,这非常有用。

答案 2 :(得分:0)

如果您再也不想在弹出的藏匿处看到作品,这就像硬重置一样简单:

git reset --hard HEAD

这告诉git忽略你的工作目录中有未提交的更改这一事实,并设置工作目录,暂存区域和前往你指定的提交 - 在这种情况下,现有的HEAD包含所有你刚刚承诺的工作。