如何在2个git repos之间组织工作?

时间:2018-11-09 06:08:46

标签: git github

我们有一个设置,其中我们在内部使用git来完成工作,与此同时,我们交付工作的客户也自己使用git。

我们还希望在2个仓库之间建立严格的边界,以使客户不参与我们的仓库工作流程(内部问题,用户,PR策略等),也不希望他们参与其中。

我们正在考虑这样的工作流:

  1. 我们的开发人员针对our-repo分支(默认设置)中的development进行了所有工作
  2. 我们的仓库管理员可以访问client-repo(这意味着他有2个遥控器:our-repoclients-repo
  3. 一旦准备好部署某些东西(即将其推送到我们的master分支),他就会将其获取并将其推送到clients-repo
  4. 万一客户自己做了一些更改(罕见但可能),我们的管理员将其获取并合并到our-repo

此设置可以工作吗?我错过任何重要的东西吗? 有更好的选择吗?

2 个答案:

答案 0 :(得分:3)

我认为拥有两个分别包含逻辑上相同(或至少非常相似)代码的独立存储库是不必要的,而且这通常是一个坏主意。我建议您只维护一个回购。使master分支(以及其他分支)在GitHub中受保护。您可以阅读Enabling branch restrictions,以获得有关如何执行此操作的更多信息。

当您的客户想要完成自己的工作时,只需让他们创建一个新的功能分支。如果他们愿意,他们可以创建一个拉回master的拉动请求,在合并之前,您和您的内部团队可以仔细检查这些请求。由于master不会受到保护,因此您的客户端将永远无权直接更改代码库。

答案 1 :(得分:1)

我在https://help.github.com/articles/repository-permission-levels-for-an-organization/上看到了github.com的权限矩阵

如果我们的团队和客户同时使用github.com,您的愿望就不可能成为现实(请参见Open issues行的矩阵,拉动等)

我有个主意

因此,我们的客户无法看到请求请求的过程,问题,问题的讨论等,他们只能看到我们团队交付给他们的源代码。