方式1
项目中的某个文件(比如stupid.txt)已经被commit,并push到server了,这时发现stupid.txt不应该被git管理,同步到团队每个开发人员那里,这时在.gitignore文件里面添加"stupid.txt"已经不起作用了。因为.gitignore只对从来没有commit过的文件起作用。这时可以
- git rm --cached stupid.txt //从版本库中rm 文件,working dicrectory中仍然保留,如果要删除目录下所有文件包括子目录中的 git rm -r --cached directory_name
- 在.gitignore中添加要忽略的文件
- commit
- push
- 其他成员pull,working directory中对应的文件会删除,所以如果文件重要,要提前备份。
方式2
如果只是自己这里不想把stupid.txt的改动继续commit,
'git update-index --assume-unchanged logs/*.log'
这个文件修改之后,git status不会显示这个文件有变化。