无法在git中提交特定文件的本地更改

3
我在一个文件中(.classpath)对于远程代码库有一些本地修改。(是的,我知道不应该将 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/

我也尝试将其从“假定未更改”中移除,但没有任何变化:
$ git update-index --no-assume-unchanged PhotoFeed/.classpath

无法将其添加到暂存区。我可以对它执行git add -f,但是git commit一直说没有要提交的内容。
我该如何使这个文件恢复正常?我想要能够对其进行差异比较,提交它,或者只需git rm它。也就是说,还有哪些其他的git配置文件/标志/属性可能隐藏了这个文件?
1个回答

1

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

exclude.gitignore文件的区别在于前者不版本化,仅供个人使用。例如,从您的IDE或操作系统中排除文件。


好的观点(我没有考虑到),但它仍然不能解决它:不幸的是,我在.git/info/exclude中没有这些文件。 - espinchi
@espinchi,你能分享一下你的代码库吗? - Andres
很遗憾,这是一款正在私人公司内开发的产品。 - espinchi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接