本地代码丢失
今天在上传项目代码到github上面时,由于一系列的操作问题,导致本地代码被清空了,核心问题就在使用了git pull 命令拉取了一个空的分支(这里建议在对分支操作时千万要小心谨慎,血泪教训),导致本地代码被空分支覆盖,直接丢失了所有代码,急得要爆炸了,
回退git操作
在网上找了很久解决方法,终于找到一个回退的操作,以下是我解决问题的过程,
注意:这个时候千万不要再去动本地的其他文件,以防关键的文件丢失
先找到项目文件夹,打开git bash 然后输入命令
git reflog
此时可以看到最近的git执行记录,注意前面的黄色数字,这个表示git操作的唯一id,
找到要回退的git操作,然后输入命令
git reset --hard <id>
id就是要回退操作的哪个数字,比如我这里要回退到 46e27e8,也就是commit提交‘修复上传冲突’的这一步(git commit -m '修复上传冲突')
这样所有的代码都会回到执行这个git操作的状态,
总结
一共执行两步操作:
- git reflog 找到要回退的操作id
- git reset --hard <id> 回退代码到此处
最后不得不感叹,虽然代码是用git命令时丢失的,但这个回退的git操作可以将代码随意回退到指定的状态,git的代码管理功能确实很强大,不过千万千万不要乱动git的文件夹,损坏了可能就回退不了代码了