团队之间共享的库的单个或多个Git存储库

Dav*_*veC 8 svn git version-control

我正在研究如何/如果我应该从svn切换到git.

我目前在svn中有一组多层项目,这些项目是分层的,D使用C,它使用B使用A.实际部署的项目如X,Y,Z使用任何公共库AD.目标是让未来的项目和其他团队共享基础库(AD)并实现更好的分支控制.

在svn中,如果我们希望允许其他团队使用库C而不涉及X,Y,Z那么它很简单,他们只是检查svn树的C位,如果这导致他们想要修补B,那么同上.他们从不接触X,Y,Z,即使他们在同一个实际的回购中.用git发生的事情并不那么明显.

如果我想用git设置一些内容,你会建议我如何设置它以及你建议的设置有什么好处/缺点.

我正在寻找的功能是:

  1. 简单标记(如果可能的话)可以轻松标记整个代码库的状态(使用常见的svn root或单个git repo简单)
  2. 易于其他人集成/重用公共库AD
  3. 很容易让他们回复我们可以选择采取或忽略的建议修补程序/补丁(我想从git中获取的主要内容之一).
  4. 团队可以为共享库提供有效的私有功能(因此他们可以标记它们并在自己的时间轴上自行修复)

Git似乎提供了我想要的东西,我只是不确定如何处理单个与多个回购问题.

Fak*_*hid 2

如果我想使用 git 设置一些东西,你建议我如何设置它 [...]

只需使用多个 git 存储库(它们非常便宜,并且类似于许多小船而不是泰坦尼克号——换句话说,我发现它们很灵活,而且我喜欢灵活性)。

有时我会协助一个结构如下的项目

foo/server
foo/client
foo/docs
foo/tools/
Run Code Online (Sandbox Code Playgroud)

“服务器”、“客户端”、“文档”和“工具”中的每个文件夹都是单独的 git 存储库。这使得专业团队成员能够克隆并完成他们想要做的事情。

更不用说,如果我们只想拉入所有内容,我们可以克隆 foo (它将其余部分作为子模块拉入)。

git 允许你做到这一点真是太棒了,为什么不利用它呢?

[...]以及您建议的设置的优点/缺点是什么。

我的建议实施起来可能有点复杂。