它的缺点类似于包括生成的代码,如项目本身产生的二进制文件; 任何更新软件包的人现在都会有一堆提交要做,这可能与更新软件包的其他人所做的事情相冲突,而且零收益可能会非常混乱.
我通常在.NET项目的.gitignore中有以下内容:
packages/**/*
!packages/repositories.config
Run Code Online (Sandbox Code Playgroud)
也就是说,它忽略了名为"packages"的任何文件夹的所有内容,除了repositories.config,它包含在repo中,因此任何克隆的存储库都需要从nuget恢复所需的包.