2

是的,我知道我知道嘿嘿。分布式版本控制系统没有中央存储库,任何人都可以获取任何存储库的版本,因为这不是集中式 VCS。然而在办公室的现实生活中,老板们往往想成为一切的主人,所以我来这里看看是否有人对我的情况有好的方法。

在我的办公室,我们已经开始使用 GIT,我们有这样的东西:

<SERVER>
---->../apache/htdcos/All_Proyects [Bare repository]
-------->/Proyect_A [Repository]~~~ Developer 1 [Git Repo], Developer 2 [Git Repo]
-------->/Proyect_B [Repository]~~~ Developer 3 [Git Repo], Developer 4 [Git Repo]
-------->/Proyect_123 [Repository]~~~ Developer 5 [Git Repo], Developer 6 [Git Repo]

这个想法是每个项目都有自己的 GIT 存储库,并且在 All_Projects 文件夹中它可以有一个裸存储库,然后是“主存储库”,因此所有项目都推送到它;该裸存储库将类似于 master 存储库的主人(这真的是首先是一个好方法???)

使用这种方法,我有一些疑问......

我怎样才能拥有用户/存储库的层次结构?因此,例如,开发人员 5 不能从/向 Proyect_A 推送/拉取/提交,但他可以对他自己的 Proyect_123 执行此操作?

我可以有一个像这样的层次结构系统吗?:开发人员推送到 Boss 存储库,Boss 推送到项目存储库,服务器自动(可能是 cron)从每个项目存储库拉到主存储库的裸主。(开发人员不能直接推送到裸存储库)。

我怎么能做这样的事情?谢谢!

4

1 回答 1

1

父 repo 引用的 repos 正是子模块的原因。

如果您已将Gitolite添加到您的主 Git 存储库服务器(参见安装页面),则用户和项目的保护是可能的。
它是一个小的 Perl 脚本集合,它将拦截任何 Git 命令,并将根据配置文件验证所述命令,该配置文件指定哪个用户可以在哪个 repo 上执行什么操作。

于 2012-09-22T08:20:55.047 回答