我正在尝试为使用 NuGet 的 Visual Studio 项目创建一个 .gitignore。它目前包含:
\packages/*
!packages/repositories.config
这不会忽略文件夹中的任何内容。一切都在添加上演。我也试过:
packages/
!packages/repositories.config
这会忽略 packages 文件夹中的所有内容,并且不包括 packages/repositories.config。
我究竟做错了什么?
/packages/
!packages/repositories.config
您还可以.gitignore
在包文件夹中添加一个:
*
!repositories.config
!.gitignore
我遇到了同样的问题。
以上解决方案都不适合我。而且我认为维护多个 .ignore 文件是一个糟糕的解决方案。
这就是我解决它的方法。
**/packages/*
!**/packages/repositories.config
组合两个星号将匹配任何文件夹字符串。我认为省略星号会产生相同的效果,但显然我(我们)错了,因为它似乎不起作用。
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
编辑:您可以使用https://www.gitignore.io为您喜欢的项目生成 .ignore 文件 :-)
我发现这个简单的模式有效。
/packages/*/
它应该忽略根包目录中的所有目录,但包括那里的所有文件。不确定 repositories.config 之外的其他文件可能会出现在那里,或者它们是否应该包含在存储库中。
如果您想为所有 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
对我来说只有这有效:
**/packages/**