我们有一个设置,其中我们在内部使用git来完成工作,与此同时,我们交付工作的客户也自己使用git。
我们还希望在2个仓库之间建立严格的边界,以使客户不参与我们的仓库工作流程(内部问题,用户,PR策略等),也不希望他们参与其中。
我们正在考虑这样的工作流:
our-repo
分支(默认设置)中的development
进行了所有工作client-repo
(这意味着他有2个遥控器:our-repo
和clients-repo
)master
分支),他就会将其获取并将其推送到clients-repo
our-repo
此设置可以工作吗?我错过任何重要的东西吗? 有更好的选择吗?
答案 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
行的矩阵,拉动等)
我有个主意
我们的团队使用github.com服务
我们的客户使用 git镜像存储库(不在github.com上)https://help.github.com/articles/duplicating-a-repository/
因此,我们的客户无法看到请求请求的过程,问题,问题的讨论等,他们只能看到我们团队交付给他们的源代码。