如何让Git忽略已提交推送的config.cfg文件?
解决Git忽略已追踪文件的问题
首先得说清楚为什么你加了.gitignore却没用——Git的.gitignore只对从来没被Git记录过的文件生效,一旦文件已经被提交到仓库,Git就会一直盯着它的变化,不管.gitignore里有没有写它。
不过有两种方法能解决你的烦恼,看你需求选:
方案一:让仓库彻底停止追踪该文件(推荐长期使用)
这种方法会把仓库里的config.cfg移除,但你本地的个人配置会完好保留:
- 先执行这个命令:
git rm --cached config.cfg划重点:
--cached参数很关键,它只会让Git取消对这个文件的追踪,不会删除你本地的config.cfg,你的个人配置数据一点都不会丢。 - 检查你的
.gitignore,确保里面已经有config.cfg这一行,没有的话补上。 - 提交并推送修改:
git add .gitignore git commit -m "Stop tracking config.cfg and add to .gitignore" git push - 之后你本地改
config.cfg,Git完全不会管,git add .也不会把它加进去。另外建议你在仓库里放一个config.cfg.example文件,把配置的示例格式写进去,这样其他用户克隆仓库后,直接复制这个文件改名为config.cfg就能用,比留空文件更友好。
方案二:本地临时忽略文件修改(不想改动仓库时使用)
如果你想保留仓库里的空config.cfg,只是自己本地不想让Git检测它的变化,就用这个方法:
- 执行命令:
git update-index --assume-unchanged config.cfg - 这个命令是告诉Git“假装这个文件没被修改”,之后你改
config.cfg,Git不会把它标为已修改,git add .也不会包含它。 - 注意:这个设置是本地专属的,只会对你的仓库生效,其他用户克隆后还是会看到仓库里的空文件;如果之后你想恢复追踪这个文件,执行
git update-index --no-assume-unchanged config.cfg就行。
内容的提问来源于stack exchange,提问作者dabljues
相关产品推荐
相关产品推荐

