如何从源代码管理中排除 NuGet 内容

Posted

技术标签:

【中文标题】如何从源代码管理中排除 NuGet 内容【英文标题】:How to Exclude NuGet Content from Source Control 【发布时间】:2016-04-09 22:18:56 【问题描述】:

我知道 NuGet 包(至少现在是这样)不应该包含在版本控制中。我应该如何排除一个包添加到我的项目中的文件?

例如:我有一个使用引导 NuGet 包的 .NET MVC 项目。它将一些 CSS、JS 和字体文件分别添加到内容、脚本和字体中。这些文件是否应该包含在我的源代码管理中?如果不是,那么忽略它们的最佳方法是什么? (我在这个特定项目中使用 GIT。)

【问题讨论】:

【参考方案1】:

一般而言,您的源代码管理工具不应跟踪生成的文件。 Here 是一个很好的问题,它解决了这样做的利弊。

您可以通过在存储库的根目录创建 .gitignore 文件来忽略这些文件和目录。

按照上面的示例包,您可以通过将其添加到您的 .gitignore 文件来忽略该内容:

Content
Scripts
fonts

Here 是更多关于使用 Git 忽略文件的文档,.gitignore

您还可以根据 VisualStudio project uses 的内容填充您的 .gitignore。

【讨论】:

几乎正是我想要的。我将在我想要包含在我的版本控制中的内容和脚本中包含非引导文件。您能否更新或增加您的答案来解决这个问题? @ricksmt 这可能会变得很棘手,因为您需要编写一个聪明的模式来仅包含这些目录中的某些文件。在此处查看“模式格式”部分:git-scm.com/docs/gitignore。您是否考虑过将您的独特内容放在单独的目录路径中,然后在运行时将它们组合在一起? 我认为这是可行的,但它将开发置于非传统的地方,我想避免这种情况。 我要添加一条评论(主要是为我自己):我手动更改了 .gitignore 文件,但 Visual Studio 没有它。 This link 表示关闭 Visual Studio 并从 .git 文件夹中删除 ms-persist.xml,这样就解决了问题。【参考方案2】:

您应该将其添加到您的 .gitignore 文件中。

你有这个存储库:https://github.com/github/gitignore

这是许多平台和语言的被忽略文件的官方 git 存储库。

您也可以使用本网站为您生成文件:

【讨论】:

以上是关于如何从源代码管理中排除 NuGet 内容的主要内容,如果未能解决你的问题,请参考以下文章

从源代码管理中排除 app.config?

如何从 Spring Security 中的会话管理(超时/并发检查)中排除某些页面?

如何从通过 Jenkins 使用 Octopack 构建的 NuGet 包中排除目录和文件?

当我们在TFS中获得最新版本的排除文件时会发生什么?会更新吗?

为啥我应该将 NuGet 包 dll 添加到源代码管理?

如何从屏幕截图中排除叠加层?