在Github中管理私有仓库

3
我在Github上有一个比较基础的问题需要解决。我有一个私有仓库(通过组织创建),我需要找到最好的方法来设置它,以便我的团队可以推送到主分支下的分支,但不能直接推送到主分支。
我知道一种方式是拥有两个不同的私有仓库,一个是“主”仓库,另一个是“暂存”仓库。然后只有我能够访问“主”仓库,而团队可以访问“暂存”仓库。然后我会将“暂存”仓库的更改合并到“主”仓库中。
但我不确定如何创建“暂存”仓库并从“主”仓库合并更改。
以下是我尝试实现的大致图示(线以上是“主”仓库,线以下是“暂存”仓库):
master (only me)
-----------------------------
--> staging (team)
    --> feature 1
        --> team member 1
    --> feature 2
        --> team member 2
        --> team member 3

有什么想法吗?

在Github上为您的项目创建一个仓库,然后添加另一个名为staging的分支。此时您将拥有2个分支:masterstaging。告诉您的代码猴子只在staging分支上工作。 - karlphillip
@karlphillip:听起来他正在寻找一种方法,将他的代码限制在只有暂存分支可以访问。 - X-Istence
你可以将一个仓库分叉到一个组织中,因此创建一个仓库的分支,并将所有其他人添加为可以提交到该分支的成员。你可以访问两个仓库,因此可以将东西从“staging”移动到“master”。 - X-Istence
@karlphillip - 就像 X-lstence 说的那样 :) 我已经按照你所说的设置了它,但我更希望确保他们不会意外(或故意)推送到主分支。 - Jerad Rose
@karlphillip - 我的猴子是志愿者(长话短说),所以我尽力而为。 :) - Jerad Rose
显示剩余3条评论
1个回答

3

使用DVCS,分支和发布(推/拉)是两个正交的概念

这意味着只要他们将内容推送到GitHub上自己的(分叉的)私有存储库中,您不必关心合作者正在推送到哪些分支。
只有您能够通过拉取请求从他们建议的内容中导入您选择的分支到您的私有存储库中。

当我看到生命周期步骤(“暂存”,“测试”,“QA”,“...”)时,我更喜欢为我需要的每个步骤设置单独的存储库,以便在这些单独的存储库中拥有尽可能多的分支。


这让我原本尝试做的事情更有意义了。感谢您的解释。 - Jerad Rose
抱歉,有一个快速的问题。如果我要为我的生命周期步骤设置一个单独的存储库,我是通过fork我的主存储库来完成这个操作,还是有其他方法可以做到这一点,而不会“消耗”我的fork,以便我仍然可以从主(和其他)存储库进行fork?希望这样说得清楚。再次感谢。 - Jerad Rose
@Jerad:由于你分叉的私有存储库仍然是私有的(http://www.quora.com/If-you-fork-a-private-repository-on-Github-is-your-fork-made-private-by-default),也许你可以请求协作者再次分叉该分叉?但更简单的方法是,我只需对我的私有存储库进行多次克隆,并将它们推送回GitHub上的多个私有存储库。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接