【问题标题】:TFS/Git extensions seems to ignore .gitignoreTFS/Git 扩展似乎忽略了 .gitignore
【发布时间】:2013-09-08 06:01:24
【问题描述】:

我正在运行带有“Visual Studio Tools for Git”扩展的 VS 2013 Update 3。此扩展适用于团队资源管理器和 Git 的用户,我没有安装和运行其他与 Git 和 TFS 相关的扩展。我使用Microsoft's TFS Cloud service 来备份和分享我的工作。

几个月来一切都按预期工作。我希望能够再次使用这个 VS 扩展,但问题是默认包含 .gitignore 应该忽略的文件。从命令行查看时,同一个 Git 存储库没有此问题,并且按预期工作。

可能很重要:我曾经在中途设置了一个直接在线 TFS 帐户,但从未在本地使用它,并且与我在这里提到的任何问题都没有关联。另外,很久以前,我不得不按照另一篇帖子中的建议从版本控制中删除这些二进制文件,因为我添加 .gitignore 文件太晚了。由于命令行没有这个问题,我认为还有其他东西在起作用,而且 --hard reset 实际上按预期工作。

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/

【问题讨论】:

  • 你能告诉我们你的.gitignore吗?未被忽略的文件的路径是什么?当你说“不被忽视”时,你到底是什么意思?文件是否显示在“包含的更改”列表中?
  • ## 忽略 Visual Studio 临时文件、生成结果和 ## 由流行的 Visual Studio 加载项生成的文件。 # 用户特定文件 *.suo *.user *.sln.docstates # 构建结果 [Dd]ebug/ [Rr]elease/ x64/ build/ [Bb]in/ [Oo]bj/
  • @EdwardThomson 该文件太大而无法完整显示。以上是一些示例行。如您所见,“[Bb]in/”位于 .gitignore 文件中,但“包含的更改”均来自“Bin/”目录。
  • 这听起来类似于此版本的 Git 提供程序中存在的错误。如果您明确列出二进制文件(而不是 bin/ 目录),它是否有效? (这应该在下一个版本中修复,对不起!)
  • 我看到了同样的症状,我不知道怎么解释。我有一个包含 20 个项目的解决方案,其中 2 个是网站。我需要包含 *.refresh 文件,所以我修改了我的 gitignore 文件以注释掉“[Bb]in/”,并添加了“**/[Bb]in/**”和“!**/[Bb]在/*. 刷新”。自从我这样做以来,.refresh 文件引用的 DLL 文件,并且只有那些文件,在我构建时被添加到 git - 其他不是网站项目的项目中的 DLL 文件不在源代码控制之外,所以我怀疑它是.gitignore 的问题。 VS 的 git 实现存在严重问题。

标签: git visual-studio-2013 tfs version-control


【解决方案1】:

我们最近遇到了与 VS2013 git 提供程序相同的问题,它仅对少数文件忽略了 .gitignore。原来,.git 文件夹中有ms-persist.xml,其中有两个相关部分<TrackedFiles><IgnoredFiles>

正如a blog post by Eric Nelson 中的建议关闭VS,删除文件并再次重新启动VS 解决了问题。

【讨论】:

  • 今天无法访问 Eric 的博客,但这个提示对我有用。谢谢!
  • @DanM 目前该网站似乎已经启动,如果它最终永远关闭,仍然有the archived version on archive.org
【解决方案2】:

你说你使用的是 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-03
    • 2012-07-12
    • 2021-10-28
    • 2016-09-30
    • 2016-03-16
    • 2014-02-03
    • 2012-03-11
    • 2013-09-07
    相关资源
    最近更新 更多