Git - 删除并排除配置文件
问题描述:
2个星期前,我提交了我的应用程序的配置,其中有我的密码,这不是很有用。 如何从提交历史记录中删除文件并确保它不会被重新提交?Git - 删除并排除配置文件
我想从所有提交树中删除文件,因为它包含我的密码。
答
可以
git rm myConfigFile
echo myConfigFile > .gitignore
git add .gitignore
git commit -m "from now on, no more myConfigFile"
另一个极端的做法(危险的,特别是如果你已经推你的回购到远程的)将完全从上述回购的历史记录中删除该文件:
git filter-branch --index-filter 'git update-index --remove myConfigFile' HEAD
(小心使用,并与先备份)
问题How do I remove sensitive files from git’s history对这个敏感话题有更多的了解。
在这个过程中的问题是双重的:
- 如果您的回购已经被克隆,你永远无法保证机密信息将会从所有其他回购真的“水涨船高”。
- 当其他人尝试在此之后拉下您的最新更改时,他们会收到一条消息,指出无法应用更改,因为这不是快进。
要解决此问题,他们必须删除其现有存储库并重新克隆它,或者按照git-rebase
manpage中的“RECOVERING FROM UPSTREAM REBASE
”下的说明进行操作。
在这两种情况下,您的机密信息不会被“悄悄”更换或删除...
+0
。黄金,谢谢! 。 – IvRRimUm 2016-12-13 14:50:08
答
cp my-config config.tmp
git rm my-config
git commit -m 'removed config'
mv config.tmp my-config
echo my-config >> .gitignore
git add .gitignore
git commit -m 'ignore config'
究竟是你想做些什么?你想恢复2周前发生的单一提交吗? – BastiBen 2009-12-07 19:18:08