我做了一个git stash pop,现在我有很多冲突。我已经在git stash pop
之前提交了我最近的所有代码,那么有没有办法回到最后一次提交并摆脱所有冲突并编写git stash pop
注入的代码?
答案 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包含所有你刚刚承诺的工作。