git忽略了仍在跟踪的文件

时间:2016-04-19 09:04:51

标签: git

git跟踪了2个文件。

config/template.json
config/test.json

我修改了它们并希望永远忽略它们。我尝试将它们添加到根.gitignore

/config
config/template.json
config/test.json

由于它不起作用,也适用于config .gitignore

template.json
test.json

问题:当我git pull时,它说:

error: Your local changes to the following files would be overwritten by merge:
    config/template.json
    config/test.json
Please, commit your changes or stash them before you can merge.
Aborting

我希望我的更改保持在本地并发送到远程仓库。发生了什么事?我没有忽略这些文件吗?怎么办?

2 个答案:

答案 0 :(得分:3)

documentation

的第一段解释了这一点
  

gitignore文件指定Git应忽略的故意未跟踪文件。 Git已经跟踪的文件不受影响。

将文件添加到.gitignore时,您还必须使用以下命令将其从存储库中删除:

git rm --cached filename

答案 1 :(得分:1)

一旦将文件提交给git,即使您稍后忽略它们,也会对它们进行跟踪。 处理这个问题的实用方法是隐藏变化,然后根据需要推/拉/等弹出变化。

永久的解决方案是从源代码控制中删除所有文件,并将它们保存在.gitignore中,以免再次添加。