.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
正确的做法是在每个clone下来的仓库中手动设置不要检查特定文件的更改情况。
这里假设要忽略已被纳入版本管理中的 /home/www/phpernote/config.php 文件,则执行命令:
git update-index --assume-unchanged /home/www/phpernote/config.php
然后在.gitignore文件里添加要忽略的文件或文件夹就行了。
注意:经实测以上方法只能临时将该文件加入忽略,如果执行了类似 git checkout -- . 的命令后,该文件的改动会恢复成之前在版本管理中的内容,因此彻底的处理方法如下:
例如我们现在要忽略已经加入到了版本控制库的目录 uploadfiles 或者文件 phpernote.jpg ,则操作如下:
1. 先清除缓存:
$ git rm -r --cached uploadfiles #如果是文件则: git rm --cached phpernote.jpg
2. 然后将该目录或文件添加到 .gitignore 文件中去:
$ echo '/uploadfiles' >> ./gitignore #如果是文件则: echo '/phpernote.jpg' >> ./gitignore
3. 然后提交更改:
$ git add . $ git commit -m '添加忽略文件' $ git push