版本控制——在Git中对单个项目进行多个流



我浏览了关于Git最佳实践模型的博客。由于我们打算让Git作为我们组织中即将到来的项目的SCM的主要负责人,我有一些疑问,关于他们无法在互联网上找到更多的信息。

我们的项目架构是:我们只有一个Main-Project,在这个项目中我们有8-10个子项目,比如SP1, SP2…SP8。所有这些项目都属于他们的个人小组成员,他们与任何其他子项目无关。
我们也希望有一个主分支,一个测试分支和一个发布分支为我们的主项目。

First:如果我们遵循这种情况,那么在克隆时每个人都应该从Git获得所有的MainProject,但组成员不需要任何其他子项目。我们如何通过Git实现这一点?Git中有类似流的概念吗?

第二:如何设置子项目的用户认证权限,使其他子项目成员不能拉,推或克隆到其他子项目。

这些在Git中是可能的吗?

我的建议是将每个"子项目"保存在自己的Git存储库中。它们彼此无关,有单独的认证需求,等等。此外,在单个存储库中保留单独的代码库可能会导致大量虚假的合并提交,其中合并的一边是对项目a的更改,另一边是对项目B的更改,从而产生大量噪音。

"stream-like concept"?我在ClearCase或RTC (Rational Team Concert)中看到过。

不,没有流,你可以在其中定义你想要使用的"组件"列表。

但是有分支:在每个分支中,你可以添加或删除你需要看到或忽略的子模块。参见"如何删除Git子模块?"

所以你可以实现与流中类似的配置,分支只包括你需要的子模块。

关于ACL(访问控制列表),最完整的解决方案是gitolite,这是一个由Git服务器(apache或ssh,它们正在进行身份验证)调用的perl脚本,它将执行授权。

相关内容

  • 没有找到相关文章

最新更新