我是Git的新手。我在linux服务器上创建了一个主存储库。同一台服务器将由5组,每组3个用户使用。我想为每个组创建一个本地存储库。然后,组成员应为每个组件创建一个本地存储库,使用内容并将修改提交到组的本地存储库。
我该怎么做呢?
答案 0 :(得分:3)
您可以通过运行
创建主存储库的副本git clone --bare /path/to/master/repository
在要创建副本的目录中。我建议在不同的路径中执行5次这样的操作,以创建5个不同的主存储库本地副本。然后每个组成员都可以运行
git clone /path/to/group_local/repository
创建其组的本地存储库的单个副本。因此,您有三个“级别”的存储库:master,local,individual。
无论何时克隆存储库,除非使用--bare
选项,git都会将克隆的remote.origin.url
属性设置为引用原始存储。这意味着如果你运行
git pull
在克隆中,它将从原始存储库中提取更改,如果您运行
git push
在克隆中,它会将更改从克隆推送到原始版本。因此,当您的组成员在其各自的存储库中进行修改时,他们可以运行git push
并将这些修改“上传”到其组的本地存储库。在克隆存储库中,还可以通过为git pull
命令指定URL(或预配置的远程的名称)来复制来自另一个存储库(不是最初克隆它的那个)的更改。你也可以推送到一个任意的其他存储库,虽然如果你想尝试的话还有一些注意事项。
答案 1 :(得分:0)
首先,我建议让用户选择他们想要的存储库数量,这完全是无关紧要的,只会造成尴尬的局面。
我组织它的方式受到了“仁慈的生命独裁者”和中尉模型的启发。
BDFL是将副手存储库中的更改集成到顶级存储库主分支中的人。
中尉将贡献者的变化整合到他们的回购中。优选地在一些敏感的分支中。开发人员将他们的工作分支推向中尉,或者中尉将其从他们的回购中取出,通过电子邮件发送补丁集,无论哪种方式最佳。
请注意,使用像hudson这样的CI服务器可以在很大程度上自动完成这些“集成”。
贡献者在每个任务的分支中工作,并定期与MASTER存储库合并。只有在中尉回购的特殊情况下。 (现在这只有在速度提升足够快时才有效)。最好从主人那里拉出来减少循环中的等待时间,并避免当其中一名中尉生病时“不愉快”。