2周前,我提交了我的应用程序的配置,其中包含我的密码,它不是很有用。 如何从提交历史记录中删除该文件并确保它不会重新提交?
我想从所有提交树中删除该文件,因为它包含我的密码。
答案 0 :(得分:19)
你可以
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
”下的说明操作。答案 1 :(得分:1)
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 :(得分:0)
答案 3 :(得分:0)
将文件名添加到.gitignore文件中。