我使用.git / info / exclude:
取消了一些文件夹和文件doc
*.txt
doc/*.txt
doc/somefile.txt
但是git状态表示它仍然被跟踪:
$ git st
# On branch dev
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: doc/somefile.txt
其他奇怪的事情是ls-files
显示它未被跟踪:
$ git ls-files --ignored --exclude-from=.git/info/exclude
doc/somefile.txt
$ touch /tmp/xxx
$ git ls-files --ignored --exclude-from=/tmp/xxx
$
我正在使用git版本1.8.1.5
所以我得出结论,我可能会误解某些事情或做错事。好吗?
答案 0 :(得分:6)
由于你在本地忽略了存储库中的文件,你需要告诉git你忽略它们
git update-index --assume-unchanged <files to forget>
答案 1 :(得分:3)
您需要git rm --cached <file>
。这不会从您的工作目录中删除该文件,但会将其从git cache
中删除,因此它现在将包含在。gitignore
中。
答案 2 :(得分:0)
由于目前正在跟踪文件),您需要告诉git
在忽略它们之前忘记它们。
git rm --cached doc/somefile.txt