我想我把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 ."?这里尝试过解决方案,但没有帮助。
答案 0 :(得分:1)
这将使您提交更改。但是,如果您有未提交的更改,除非在非常特殊的情况下,否则您基本上无法收回它们。
步骤:
转到git reflog
并找到原始提交:"v0.2.1"
。我建议您要么使用git标签,要么为提交提交不同的消息,以便于跟踪。
找到后,请使用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
一切都应该恢复正常!