今天在更新仓库代码后没注意看直接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修改后的版本并删除临时分支
大功告成。