.gitignore NuGet排除软件包/包含软件包/ repositories.config

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

\packages/* !packages/repositories.config 

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

 packages/ !packages/repositories.config 

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

我究竟做错了什么?

 /packages/ !packages/repositories.config 

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

 * !repositories.config !.gitignore 

我面临同样的问题。

上述解决scheme都不适合我。 我认为这是一个糟糕的解决scheme来维护多个.ignore文件。

这就是我解决它的方法。

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

合并两个星号将匹配任何string的文件夹。 我以为留下星号会有相同的效果,但显然我(我们)是错误的,因为它似乎不工作。

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

 # 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文件:-)

这对我有用。

 #NuGet packages !packages/repositories.config 

(和@ manojlds的答案一样,除了删除了第一行中的星号,这对我没有任何作用。)

我发现这个简单的模式的作品。

 /packages/*/ 

它应该忽略根包目录中的所有目录,但在其中包含所有文件。 不知道除了repositories.config以外还有哪些其他文件可能会出现,或者它们是否应该包含在存储库中。

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