我做了什么。
git add .
git commit -m "Screwed Up"
git branch -m experiment
git checkout 62b5 (SHA1 of previous commit)
git checkout -b master
git branch -D experiment
我认为必须有更好的方法来恢复之前的提交。
当我尝试git reset HEAD
时,当我执行git status
时,它仍会显示未提交的更改。
如果有更好的方法,那么它是什么?或者我应该使用不同的工作流程来避免这种情况吗?
答案 0 :(得分:3)
您可以git reset --hard
恢复之前的提交。
--hard
将重置索引和工作树。自上次提交以来对工作树中跟踪文件的任何更改都将被丢弃。
答案 1 :(得分:1)
如果可能,请勿reset --hard
。如果您有未跟踪或未分阶段的更改,则可以撤消。使用
git stash -u
安全。您将再次获得一个干净的工作目录。如果你错误地丢弃了你的更改,你总是可以通过git stash命令将它们恢复。
隐藏的更改不会被推高,所以它不会搞砸/膨胀其他回购,但会给你一点安全网。所以,如果你再次戒掉,你将失去你的存储。所以重新克隆以解决你的回购问题也是一个坏主意 - 你也可能失去你的rerere录音,reflog等。