无法为git中的某些文件提交本地更改

时间:2013-08-16 15:01:32

标签: git gitignore

我对远程存储库的文件.classpath进行了一些本地更改。 (是的,我知道我不应该在共享仓库中拥有类路径文件,但这是另一回事。)

这证明存在一些局部变化:

$ git checkout master
error: Your local changes to the following files would be overwritten by checkout:
    PhotoFeed/.classpath
Please, commit your changes or stash them before you can switch branches.
Aborting

但是,它们没有出现在git状态:

$ git status
# On branch release-1.5.1
nothing to commit, working directory clean

此文件不在 .gitignore 中,因为此命令证明:

$ git status --ignored
# On branch release-1.5.1
# Ignored files:
#   (use "git add -f <file>..." to include in what will be committed)
#
#   .metadata/
#   PhotoFeed/.settings/
#   PhotoFeed/bin/

我也尝试将其从assume-unchanged中删除,但它不会改变任何内容:

$ git update-index --no-assume-unchanged PhotoFeed/.classpath

无法添加到临时区域。我可以git add -f对它进行git commit,但git rm一直说没有什么可以承诺的。

如何让这个文件再次“正常”?我希望能够对它进行区分,提交它,或者只是{{1}}它。也就是说,其他git配置文件/标志/属性可能隐藏了这个文件?

1 个答案:

答案 0 :(得分:1)

还有另一个用于忽略文件的git配置文件:.git/info/exclude

文件exclude.gitignore之间的区别在于前者未经过版本控制,仅供您个人使用。例如,要从IDE或操作系统中排除文件。