我意外地跑了:
git push origin +master
在尝试将文件推送到我的Github仓库时.此命令重置所有提交历史记录并删除了一些文件.
我想知道是否有办法将我的repo重置为具有哈希94b90dc1121ce477131fa60ffdc234591554b6c8
的某个提交.
git checkout master git reset --hard 94b90dc1121ce477131fa60ffdc234591554b6c8 git push -f origin master
这是对命令的解释......
首先,让我们确保你在master分支上,所以使用checkout
命令让你的HEAD指向master.
什么是HEAD
?它基本上是Git维持指向你当前在Git树中的位置的指针.
实际上,大多数这些概念(如HEAD和分支)只是指向树中不同点的指针.gitk
从命令行执行a 以良好的图形格式查看树.
接下来,让reset
你的HEAD指针指向原始问题中的确切提交.这基本上会使文件系统上的文件与提交相匹配.
但要小心reset --hard
......如果你有出色的工作,或者尚未推送到服务器的提交,这可能会使它们"无法访问"(再次考虑那棵树)...如果你"失去"这个命令的提交你通常可以通过使用reflog
虽然让他们回来.
最后,将主分支的本地状态推送到GitHub的主分支.-f是因为你正在重写分支的历史,所以你需要告诉Git"强迫"它.