91

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

\packages/*
!packages/repositories.config

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

packages/
!packages/repositories.config

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

我究竟做错了什么?

4

6 回答 6

117
/packages/
!packages/repositories.config

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

*
!repositories.config
!.gitignore
于 2012-05-28T14:08:51.187 回答
40

我遇到了同样的问题。

以上解决方案都不适合我。而且我认为维护多个 .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 文件 :-)

于 2015-03-06T23:04:36.487 回答
12

这对我有用。

#NuGet
packages
!packages/repositories.config

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

于 2014-03-14T20:59:43.440 回答
8

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

/packages/*/

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

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

于 2015-02-17T19:16:05.430 回答
0

如果您想为所有 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
于 2021-04-06T14:31:39.260 回答
0

对我来说只有这有效:

**/packages/**

于 2020-06-25T12:10:42.667 回答