未跟踪的文件仍以git状态显示

时间:2013-08-16 10:57:11

标签: git

我使用.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

所以我得出结论,我可能会误解某些事情或做错事。好吗?

3 个答案:

答案 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