TFS/Git扩展似乎忽略了.gitignore文件。

25

我正在运行带有“Visual Studio Tools for Git”扩展的VS 2013 Update 3。该扩展适用于团队资源管理器和Git的用户,我没有安装和运行其他Git和TFS相关扩展程序。我使用Microsoft的TFS云服务来备份和共享我的工作。

几个月来一切都按预期工作。我想再次使用此VS扩展,但问题是应该被.gitignore忽略的文件默认情况下被包括在内。当使用命令行查看相同的Git存储库时,不会出现此问题,并且按预期工作。

可能很重要的是:我曾经在网上设置过一个TFS账户,但从未在本地使用过它,也从未与我在这里提到的任何问题相关联。另外,很久以前,我不得不遵循另一篇文章中的建议,从版本控制中删除这些二进制文件,因为我添加了.gitignore文件太晚。由于命令行没有这个问题,我认为还有其他问题存在,而--hard重置实际上起作用了。

VS的问题在哪里?是否有某种方法可以更改设置或通常纠正忽略Git目录中.gitignore文件中的文件但不忽略.gitignore文件的疏漏?

为了避免一些潜在的问题:我通过观察所有更改被添加到Git/TFS和Posh Git以及Git Bash和我尝试过的所有其他Git接口来确认目录和分支在两个界面上都是相同的。唯一的问题是应该被忽略的其他文件在VS扩展中没有被忽略。

这是一个示例.gitignore文件的样本,由VS生成:

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.

# User-specific files
*.suo
*.user
*.sln.docstates

# Build results

[Dd]ebug/
[Rr]elease/
x64/
build/
[Bb]in/
[Oo]bj/

在此输入图像描述


忽略Visual Studio临时文件、构建结果以及流行的Visual Studio插件生成的文件。

用户特定文件

*.suo *.user *.sln.docstates

构建结果

[Dd]ebug/ [Rr]elease/ x64/ build/ [Bb]in/ [Oo]bj/
- Justin Hale
@EdwardThomson 文件太大了,无法完整显示。上面是一些示例行。正如您所看到的,'.gitignore'文件中包含'[Bb]in/',但是'Included Changes'都来自于'Bin/'目录。 - Justin Hale
1
这听起来很像是 Git 提供程序版本中存在的一个 bug。如果你明确列出二进制文件(而不是 bin/ 目录),它是否能正常工作?(这个问题应该在下一个版本中得到修复,抱歉!) - Edward Thomson
@EdwardThomson,所以我尝试了几种方法来指定可能被称为完整路径的内容,包括D:\Full\Path\Bin\、Root\Git\Repo\Path\Bin\和Root/Git/Repo/Path/Bin/(带或不带星号),认为在Windows上使用的扩展可能会对斜杠方向等问题挑剔。但是当我按下Team Explorer更改面板上的刷新按钮时,似乎没有任何一种方法起作用。谢谢您让我知道状态。我可以尝试根据octacat的建议编辑排除存储库:https://help.github.com/articles/ignoring-files - Justin Hale
1
我看到了相同的症状,但无法解释。我的解决方案有20个项目,其中2个是网站。我需要包含*.refresh文件,所以我修改了我的gitignore文件来注释掉"[Bb]in/",并添加了"**/[Bb]in/**"和"!**/[Bb]in/*.refresh"。自从我这样做以来,只有被.refresh文件引用的DLL文件被添加到git中,其他不是网站项目的项目中的DLL文件仍然在源代码控制之外,因此我怀疑这不是.gitignore的问题。VS的git实现出了严重的问题。 - MisterZimbu
显示剩余11条评论
2个回答

13

我们最近在使用VS2013的git提供程序时遇到了与.gitignore文件仅忽略少数文件的相同问题。原来,在.git文件夹中有ms-persist.xml文件,其中包含两个相关部分和。

正如Eric Nelson的博客文章所建议的那样,关闭VS,删除该文件,然后重新启动VS即可解决问题。


Eric的博客今天无法访问,但这个技巧对我很有用。谢谢! - DanM
1
@DanM 目前该网站似乎正常运行,如果它最终永久关闭,仍然可以在archive.org上找到存档版本。 (https://web.archive.org/web/20140910055712/http://ericnelson.wordpress.com/2014/06/21/is-visual-studio-2013-ignoring-your-gitignore-file/) - mbx

1
如果您正在使用VS 2013,那么您不需要额外的git工具。我没有在我的VS 2013上安装它们,可以很好地使用TFS和GIT,并且我不会遇到.gitignore被忽略的问题。您甚至可以通过IDE GUI管理.gitignore,因此格式应始终符合TFS / VS所需的格式:http://msdn.microsoft.com/en-us/library/vstudio/hh967655.aspx#ignore。如https://visualstudiogallery.msdn.microsoft.com/abafc7d6-dcaa-40f4-8a5e-d6724bdb980c中所述的要求。
注意:Visual Studio 2013默认包含Git工具,因此不需要这些工具。在MSDN上了解更多信息:http://msdn.microsoft.com/en-us/library/vstudio/hh850437.aspx

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