【问题标题】:.gitignore NuGet exclude packages/ include packages/repositories.config.gitignore NuGet 排除包/包含包/repositories.config
【发布时间】:2012-05-28 04:27:00
【问题描述】:

我正在尝试为使用 NuGet 的 Visual Studio 项目创建一个 .gitignore。它目前包含:

\packages/*
!packages/repositories.config

这不会忽略文件夹中的任何内容。一切都在添加上演。我也试过:

packages/
!packages/repositories.config

这会忽略 packages 文件夹中的所有内容,并且不包括 packages/repositories.config。

我做错了什么?

【问题讨论】:

    标签: git nuget gitignore


    【解决方案1】:
    /packages/
    !packages/repositories.config
    

    您还可以在包文件夹中添加.gitignore

    *
    !repositories.config
    !.gitignore
    

    【讨论】:

    • 如果.gitignore 忽略了自己,那很遗憾。 +1
    • 第一个块对我不起作用(git 版本 1.8.4.msysgit.0)。我认为第一行应该只是 packages 没有星号。
    • 我发现 Visual Studio 仍然显示包文件夹。我必须从 .git 文件夹中删除 ms-persist.xml 才能尊重 .gitignore 文件。有关更多信息,请参阅ericnelson.wordpress.com/2014/06/21/…
    • 我不知道你在哪个版本上试过这个,但/packages/ 不适合我。相反,我发现this answer 非常有帮助。简而言之,packages/* 成功了。 Git 版本 2.6.1
    【解决方案2】:

    我遇到了同样的问题。

    以上解决方案都不适合我。而且我认为维护多个 .ignore 文件是一个糟糕的解决方案。

    我就是这样解决的。

    **/packages/*
    !**/packages/repositories.config
    

    组合两个星号将匹配任何文件夹字符串。我认为省略星号会产生相同的效果,但显然我(我们)错了,因为它似乎不起作用。

    官方.gitignore template for Visual Studio推荐以下解决方案:

    # NuGet Packages
    *.nupkg
    # The packages folder can be ignored because of Package Restore
    **/packages/*
    # except build/, which is used as an MSBuild target.
    !**/packages/build/
    # Uncomment if necessary however generally it will be regenerated when needed
    #!**/packages/repositories.config
    

    编辑:您可以使用https://www.gitignore.io 为您喜欢的项目生成 .ignore 文件 :-)

    【讨论】:

    • 这是唯一对我有用的变体,因为我在存储库中有多个项目,每个项目都有包文件夹。谢谢。
    • 效果不错的是推荐的Visual Studio官方模板+取消最后一行的注释。
    • 这其实有点冒险。它忽略任何名为“包”的文件夹,而不仅仅是解决方案级别的文件夹。我发现我的一些模型类从未成为存储库的一部分,为时已晚。
    • 现已更新:#NuGet Packages .nupkg #packages 文件夹可以忽略,因为Package Restore **/packages/ # 除了build/,它使用作为 MSBuild 目标。 !**/packages/build/ # 如有必要取消注释,但通常会在需要时重新生成 #!**/packages/repositories.config # NuGet v3 的 project.json 文件会生成更多可忽略的文件 *.nuget.props *.nuget。目标
    • 除了!**/packages/build/ 对我不起作用,使用给定的解决方案...构建文件夹未提交
    【解决方案3】:

    这对我有用。

    #NuGet
    packages
    !packages/repositories.config
    

    (与@manojlds's answer 相同,只是删除了第一行中的星号。这对我不起作用。)

    【讨论】:

      【解决方案4】:

      我发现这个简单的模式很有效。

      /packages/*/
      

      它应该忽略根包目录中的所有目录,但包括那里的所有文件。不确定 repositories.config 之外的其他文件可能会出现在那里,或者它们是否应该包含在存储库中。

      另见.gitignore Syntax: bin vs bin/ vs. bin/* vs. bin/**

      【讨论】:

        【解决方案5】:

        只有这对我有用:

        **/packages/**

        【讨论】:

          【解决方案6】:

          如果您想正确处理 ALL NUGET Temp 工件

          将此代码添加到您的.gitignore


          # Ignore all my NuGet temp Packages
          *.nupkg
          # NuGet Symbol Packages
          *.snupkg
          # The packages folder can be ignored because of Package Restore
          **/[Pp]ackages/*
          # except build/, which is used as an MSBuild target.
          !**/[Pp]ackages/build/
          # Uncomment if necessary however generally it will be regenerated when needed
          #!**/[Pp]ackages/repositories.config
          # NuGet v3's project.json files produces more ignorable files
          *.nuget.props
          *.nuget.targets
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-11-18
            • 1970-01-01
            • 2011-11-09
            • 1970-01-01
            • 2013-01-04
            相关资源
            最近更新 更多