彻底清除Github上某个文件的历史(针对误上传密码文件等情况)
2016-11-28 20:11
288 查看
这几天用JDBC写一个开源项目玩,测试的时候为了方便连接数据库就直接把root密码都写进代码文件了,然后Commit再Sync,成功把密码暴露到Github上。
大家肯定不想自己数据库所在服务器的IP和密码暴露,所以这里提供3个办法:
1. 把Github上整个项目删了重新创建并上传不含密码的代码,这个对已经维护过很久的项目是致命的,此乃下策;
2. 直接把数据库密码改了,暴露就暴露呗,别人看见了也连不上,此乃中策;
3. 上策也就是我们今天要说的了,Github for Windows/Mac桌面应用以及网页版都没有提供清除某个文件操作记录的功能,就是说即便你删了这个文件重新Push,那么别人依然可以查看你上一个版本。所以我们需要的是把和这个文件有关的所有Commit等记录全部删掉当然也包括文件本身。
首先在Git Bash或者CMD或者PowerShell中cd进入到你的本地项目文件夹,然后依次执行下面6行命令即可:
(注意上面的FILE_PATH要是路径而不只是文件名字,
例如src/main/java/com/ysy/demo/filename.java)
上述方法亲测有效。
参考资料:
https://help.github.com/articles/remove-sensitive-data/
大家肯定不想自己数据库所在服务器的IP和密码暴露,所以这里提供3个办法:
1. 把Github上整个项目删了重新创建并上传不含密码的代码,这个对已经维护过很久的项目是致命的,此乃下策;
2. 直接把数据库密码改了,暴露就暴露呗,别人看见了也连不上,此乃中策;
3. 上策也就是我们今天要说的了,Github for Windows/Mac桌面应用以及网页版都没有提供清除某个文件操作记录的功能,就是说即便你删了这个文件重新Push,那么别人依然可以查看你上一个版本。所以我们需要的是把和这个文件有关的所有Commit等记录全部删掉当然也包括文件本身。
首先在Git Bash或者CMD或者PowerShell中cd进入到你的本地项目文件夹,然后依次执行下面6行命令即可:
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch FILE_PATH' --prune-empty --tag-name-filter cat -- --all git push origin master --force rm -rf .git/refs/original/ git reflog expire --expire=now --all git gc --prune=now git gc --aggressive --prune=now
(注意上面的FILE_PATH要是路径而不只是文件名字,
例如src/main/java/com/ysy/demo/filename.java)
上述方法亲测有效。
参考资料:
https://help.github.com/articles/remove-sensitive-data/
相关文章推荐
- 彻底清除Github上某个文件的历史(针对误上传密码文件等情况)
- 项目上传github前清除敏感文件的历史防止隐私泄露
- 彻底清除Github上某个文件以及历史
- VC VB Delphi 清除IE缓存 internet临时文件 cookie 历史记录 表单记录 上网密码
- springmvc+ajaxFileUpload上传文件(前后台彻底分离的情况下)
- Delphi 清除IE缓存 internet临时文件 cookie 历史记录 表单记录 上网密码[转]
- 彻底清除Windows共享登录的用户名和密码
- 改进文件上传的进度条,"实时"反映上传情况
- 删除SAM文件,清除Administrator账号密码
- 彻底搞定java文件上传
- 彻底解决Moodle上传文件中文文件名乱码解决方法
- 彻底清除已删除的文件
- *自创*可变长度随机数字/字母的生成小结(针对文件上传及验证码)
- [JAVA]彻底抛弃 jspSmartUpload,使用 common-fileupload 实现文件上传
- winRAR 密码暴力破解/清除压缩文件密码工具
- 【转】PHP上传文件类型彻底判断方案及PHP+nginx上传大小彻底控制方案
- javascript清除上传文件控件的值
- [ZT]彻底搞定java文件上传zz
- 彻底搞定java文件上传
- [紧急求助]如何用程序实现外部提交?针对用asp实现的文件上传程序...内网程序