方式1
項目中的某個文件(比如stupid.txt)已經(jīng)被commit,并push到server了,這時發(fā)現(xiàn)stupid.txt不應該被git管理,同步到團隊每個開發(fā)人員那里,這時在.gitignore文件里面添加"stupid.txt"已經(jīng)不起作用了。因為.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的改動繼續(xù)commit,
'git update-index --assume-unchanged logs/*.log'
這個文件修改之后,git status不會顯示這個文件有變化。