Git Push提交了敏感信息后的解决方法

技术渣 2021年06月02日

今天在更新仓库代码后没注意看直接Push到GitHub上面,后审阅代码才发现包含了敏感信息。无奈忘记了版本回退,直接删除了Repository,rm -rf .git,代码更新记录丢失不说,还引发了拒绝Push等的问题。
因此记录Git Push提交敏感信息后的解决方法。

备份本地代码

将已经修改的代码进行全部保存。

版本回退

以下也可以通过一些有图形化界面的控制工具进行操作:

git log # 查看历史版本记录
git reset --hard HEAD~1(或者哈希值)        # 硬回滚

回退远程库上的版本

主要的方法就是将本地和远程的分支都删除,然后在本地将回退的版本设置成主分支并上传,实现将之前有敏感信息的版本记录删除。

git push origin --delete master   # 删除远端主分支
git branch -d master              # 删除本地主分支
git checkout -b master            # 新建主分支并切换到主分支
git push origin master            # 提交主分支

或者使用下面的命令

git push -f origin master

在安全的版本上进行修改

这时候之前备份的代码就派上用场了。

添加gitignore

不添加,一切白搭。
GitHub官方gitignore模板

使用idea的话可以添加:

/.idea/
/out/

上述第一个泄露了我进行remote tomcat时候的ip地址。
第二个是编译完成后的字节码和war包,没有上传必要。

Push修改后的版本并删除临时分支

大功告成。