git恢复本地未提交的更改

时间:2020-02-28 02:18:05

标签: git

我想我把git弄乱了,尽管我不知道到底发生了什么:) 因此,最初,虽然不在data目录中(我以为我在项目的根目录中),但这是我的命令历史记录:

 git add .
 git commit -m "v0.2.1"
 git push origin master
 git add .
 git commit -m "v0.2.1"
 git rm -r data
 git rm  data
 git rm data/file.txt
 git rm 
 git rm .
 git rm . -r
 cd ../
 git rm -r data
 git rm -r data/
 git rm -r .data
 git rm -r ./data
 git add .
 git commit -m "v0.2.1"
 git push origin master
 git reset --hard HEAD~1
 git push --force

我只是想提交更改,然后忘记从这些更改中删除data目录。最后,主项目目录中的许多工作丢失了-文件恢复到上一次提交时的状态(此后做了很多工作)。我想是因为git reset --hard HEAD~1发生了,这可能是错误日志的建议,因为存在一些问题。很着急,这是结果。

以任何方式我可以将一些本地文件还原到发生这种情况之前的状态?从How to revert a "git rm -r ."?这里尝试过解决方案,但没有帮助。

1 个答案:

答案 0 :(得分:1)

这将使您提交更改。但是,如果您有未提交的更改,除非在非常特殊的情况下,否则您基本上无法收回它们。

步骤:

1。查找原始提交

转到git reflog并找到原始提交:"v0.2.1"。我建议您要么使用git标签,要么为提交提交不同的消息,以便于跟踪。

2。恢复该提交

找到后,请使用sha还原所有内容:

SHA-of-the-commit-you-want-to-restore (HEAD -> master) HEAD@{1234}: commit: v0.2.1 - the commit before everything was screwed up.

git reset --hard SHA-of-the-commit-you-want-to-restore

一切都应该恢复正常!

相关问题