git - 一次提交上的多个构建

标签 git svn version-control teamcity

我们之前使用 SVN,但最近迁移到 Git。

我们有一个用于企业应用程序的整体存储库,并且其中有作为文件夹的子应用程序。

我们为每个子应用程序都有多个 teamcity 项目,并且在我们使用 SVN 之前这一切都运行良好,因为我们可以在存储库 URL 中指定文件夹。但是,Git 不允许在存储库 URL 中包含文件夹,因此每当在一个子应用程序中提交某些内容时,也会构建所有其他子应用程序。

一种方法是将子应用程序作为新的存储库,但这一举措需要时间。还有其他解决办法吗?

最佳答案

您永远不应该将 SVN 与 Git 进行比较。这导致了这种困惑。 SVN 是基于目录的,而 Git 是基于项目的,这意味着无法部分提交/更新项目。尽管如此,还是有一个解决方案,但您认为它很耗时(尽管我真的认为这将是一项很好的投资),即子模块。 您可以阅读更多here ,但其 Gist 如下:

It often happens that while working on one project, you need to use another project from within it. [...] Git addresses this issue using submodules. Submodules allow you to keep a Git repository as a subdirectory of another Git repository. This lets you clone another repository into your project and keep your commits separate.

Here是完整的文档。

我强烈建议您和您的团队永远不要比较 SVN 和 Git。尽管它们有着共同的目标,但它们的用法、原理和工作方式,无论是内部还是外部,都使它们无可比拟,而且弊大于利。

关于git - 一次提交上的多个构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48706599/

相关文章:

git - 如何创建像 develop/user1/issue1 这样的 git 分支

python - 在预提交 Hook 中 - 如何访问/比较当前和以前版本的文件

svn-externals 与自己的 svn-externals : how to recursively checkout?

c# - 颠覆以更新文本文件中的版本

python - 懦弱地拒绝安装带有 `core.hooksPath` 集的钩子(Hook)

git - 有没有办法将 Mercurial 存储库用作 Git 子模块?

svn - 如何在 VBA 代码中使用版本控制?

database - 代码控制下数据库脚本的最佳实践是什么

git - 为 git-log 和 git-show 进行不同的 `pretty` 设置

php - 提交时进行 SVN 生产部署