为什么Git会在(理论上)忽略的文件(路径)上向我建议“更改”?

时间:2017-03-10 08:04:49

标签: git github visual-studio-2015

我正在使用VS2015 GitHub扩展,在我拥有的存储库(分叉,真的)。 在.gitignore文件中,在某些时候我就是这个(取自fork,我没有自己添加ignore):

...

VST3_SDK/*

...

但是在VS2015上似乎建议该文件夹中的文件已被“编辑”,需要上演:

enter image description here

我当然不想要这个。这些文件/路径应该从版本控制中“忽略”。

我哪里错了?

编辑:我不希望“解决方法”忽略它。我不想再把它搞砸了......

4 个答案:

答案 0 :(得分:8)

该文件似乎已经提交一次(也许在它被忽略之前,可能有人强迫Git开始跟踪它。)

您可以使用

从Git(但不是您的硬盘)中删除该文件
git rm --cached VST3_SDT/base/win/base_vc10.vcxproj.user

之后,而不是"修改"该文件将显示为"已删除"。这是预期的,应该提交(此提交也将解决此项目中所有其他开发人员的问题)。之后Git会为你和其他人忽略该文件。

答案 1 :(得分:6)

.gitignore 适用于尚未 部分项目的文件。如果一个文件已经是项目的一部分(它已经是HEAD的一部分)那么。文件是.gitignore的一部分并不重要。如果此文件已经是项目的一部分,并且您仍然不想将其视为已修改(很奇怪,但可能),那么您必须使用 git update-index 来告诉git不关心它。

答案 2 :(得分:0)

您可以忽略目录及其内部/下方的所有内容:

VST3_SDK/

最后不要使用*

答案 3 :(得分:-1)

VS2015(和VS2013)中存在一个错误,导致某些.gitignore规则无法遵守。

解决方案1:

尝试在解决方案目录中搜索文件.git\ms-persist.xml并将其删除(您可能必须确保可以看到隐藏的文件和文件夹)。重新启动Visual Studio后,它将重新读取您的.gitignore(重新生成ms-persist.xml),并应停止跟踪被忽略的文件。

解决方案2 解决方法:

如果这不能解决您的问题,下一步就是明确声明您不希望在.gitignore中跟踪的文件:

...
VST3_SDK/*
VST3_SDK/base/win/base_vc10.vcxproj.user
...