我有一个大型的闭源项目,我不时雇用自由职业者来处理其中的一部分。
这些自由职业者是高度专业化的,通常,没有什么好处可以让他们访问整个项目。有些人会对复杂性感到恐惧,有些人会稍微感到困惑,而大多数人会在某些时候浪费时间看待与他们无关的事情。
我是否可以使用私有存储库,分支,子模块,子树合并等组合,以便个别自由职业者只接触项目的某些部分,但是所有者(我)有一个方便的集中方式执行合并,构建等?
我看过github,gitorious和gitlab。我更喜欢支付github用于私人仓库而不是在我自己的服务器上设置其他两个中的一个。但是,实际的git设置和项目结构是什么让GitHub私有仓库能够用于上述用例呢?
更新
我想知道我是否可以使用git filter-branch
。这就是我的想法:
我在GitHub上设置一个私人仓库作为我的主存储库,一个包含整个项目所有分支的完整历史记录。除了我,没有人可以访问这个第一个回购。
然后,每当为一个任务分配一个新的自由职业者时,我就会使用git filter-branch
来生成一个较小的分支(一小组文件的主分支的完整历史记录),然后我将其推送到第二个GitHub私人仓库,并授予他们访问权限。
现在是棘手的部分。有没有办法在第一和第二个回购之间执行操作,基本上将第二个回购视为第一个回购的分支?大多数情况下,我希望在这两个存储库中进行比较,合并和重组。有可能吗?
答案 0 :(得分:0)
在StackOverflow上传递几个线程。希望它有所帮助。
从过去的经验来看,你应该保持简单和映射 与Git合作。
答案 1 :(得分:0)
鉴于您设定的目标,我将假设您的项目实际上是可以独立处理的小型项目的集合,因此具有自己的生命周期。 在这种情况下,我建议创建N个存储库,每个存储库包含一个这样的小项目。这样,您可以轻松地在子项目级别共享,并在该级别管理合并。
至于你自己,你想要设置一个超级项目,聚合所有这些,形成只有你需要看到的大局。您是否选择使用子模块或子树合并来实现完全取决于您。