.gitignore NuGet排除packages/include packages/repositories.config

Dip*_*esh 85 git gitignore nuget

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

\packages/*
!packages/repositories.config
Run Code Online (Sandbox Code Playgroud)

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

packages/
!packages/repositories.config
Run Code Online (Sandbox Code Playgroud)

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

我究竟做错了什么?

man*_*lds 112

/packages/
!packages/repositories.config
Run Code Online (Sandbox Code Playgroud)

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

*
!repositories.config
!.gitignore
Run Code Online (Sandbox Code Playgroud)

  • 如果`.gitignore`忽略了它,那将是一种耻辱.+1 (12认同)
  • 第一个块对我不起作用(git版本1.8.4.msysgit.0).我认为第一行应该只是没有明星的"包". (2认同)

Ali*_*dar 34

我遇到了同样的问题.

上述解决方案均不适合我.我认为维护多个.ignore文件是一个糟糕的解决方案.

这就是我解决它的方式.

**/packages/*
!**/packages/repositories.config
Run Code Online (Sandbox Code Playgroud)

组合两个星号将匹配任何文件夹字符串.我认为遗漏星号会有同样的效果,但显然我(我们)错了,因为它似乎不起作用.

Visual Studio的官方.gitignore模板推荐以下解决方案:

# 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
Run Code Online (Sandbox Code Playgroud)

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

  • 这是唯一适用于我的变体,因为我在存储库中有多个项目,每个项目都有packages文件夹.谢谢. (2认同)
  • 它现在已经更新:#NuGet Packages*.nupkg#可以忽略packages文件夹,因为Package Restore**/packages/*#除了build /,它用作MSBuild目标.!**/packages/build /#如果需要取消注释,但通常会在需要时重新生成#!**/packages/repositories.config#NuGet v3的project.json文件生成更多可忽略的文件*.nuget.props*.nuget.目标 (2认同)

Gra*_*ier 12

这适合我.

#NuGet
packages
!packages/repositories.config
Run Code Online (Sandbox Code Playgroud)

(与@ manojlds的答案相同,除了删除第一行中的星号.这对我不起作用.)


ygo*_*goe 8

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

/packages/*/
Run Code Online (Sandbox Code Playgroud)

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

另请参见.gitignore语法:bin vs bin/vs. bin/*vs. bin/**