Github如何删除掉一个commit

写完了一个脚本,里面使用了阿里云的api,那自然也有公司的阿里云ak\sk,在调试的时候发现没问题,于是就上传到github上。传完之后一看,发现脚本里忘了删除敏感字段,连通公司的ak\sk一起被提交上去了…
akb48

卧槽,这还得了?要是这个commit被人发现并且拷贝走了,岂不是得到了公司的ak\sk,后果不堪设想啊。但是如何在github远端删除掉一个commit呢?

先记录下这次commit之前一次正常的版本号,查询版本号也可以通过命令git log -5(查询最近5次提交历史):
akb48

得到上一次的版本号是051ebceaedd6b64801aada354f921d6ea7ef0622,然后git reset --hard 051ebceaedd6b64801aada354f921d6ea7ef0622

然后再git push origin HEAD --force即可。整个过程如下:
akb48

此时再去github上刷新commit的历史页面,发现记录已经回滚到051ebce(版本号前面7位)了,如图:
akb48

但是要注意!如果你的代码是两个地方在上传github,比如含敏感词汇的文件是通过windows客户端上传的,但是你在某个linux服务器上进行了删除commit的操作,那么如果windows继续commit的话,是会再次提交所有的commit的(含带有机密字段的commit),所以要把源头也就是windows里的commit也要用这个方法干掉,这样才算彻底删除。

akb48

感谢您请我喝咖啡~O(∩_∩)O,如果要联系请直接发我邮箱chenx1242@163.com,我会回复你的
-------------本文结束感谢您的阅读-------------