辛辛苦苦写了个脚本,一个兴奋就给推送到GitHub了,然后才反应过来脚本里好像硬编码了帐号密码;根据某某SDK写了个客户端,一下子推送上去发现API Key忘了抹;更有甚者直接把SSHKey推送上去了……
回退?
No!
不要忘了Git是优秀的版本穿梭系统,你改了什么东西,都是看得到的。
最直接的方法就是删库。
不要问我为什么。
你要问其他方法,有是有,但是很烦。
第一个办法:改指针头(第一个办法已作废,看第二个办法)
首先,我建议你先备份一下现有的代码,接着:
git reset --hard acb28f2114413378d48ae3b257dca62a1cd29d0f【想要恢复到的版本commit id】
然后让你的库还原到这个commitId的状态:
git push origin HEAD --force
这两个指令你操作完之后,你会发现你本地文件被更改了,还原成了以前的。
然后呢,你再把最新的改动,提交上去吧。
第二个办法:
git reset --hard acb28f2114413378d48ae3b257dca62a1cd29d0f【想要恢复到的版本commit id】
然后正常提交:
git push -u origin master
这样你新提交的Commits就不见了。(这个时候你的本地代码库是没有变化的)
原理是你改了指针,然后再把现在的覆盖了原来的。
参考来源: