首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用GitHub管理多个用户

使用GitHub管理多个用户
EN

Stack Overflow用户
提问于 2013-06-09 20:29:43
回答 3查看 452关注 0票数 3

有没有人可以请教我一件事?

我们有一个项目,我们刚刚决定雇佣更多的程序员来做这个项目。到目前为止,我是唯一的程序员,在GitHub上备份代码。但现在我需要找到一种安全的方法来管理多个程序员。

所以有一个私有项目的主分支,其他程序员应该能够克隆它。但他们不应该能够将更改提交到主分支本身。也许他们应该建立自己的分支,并在那里提交更改。我应该是唯一能够审查他们的工作的人,如果它工作正常,并将其合并到主分支。

有没有人能告诉我到底该怎么设置?或者发送一些好的教程?非常感谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-09 21:01:03

协作编码是Github背后的全部要点。这里有一个说明性的工作流程来帮助你入门。类似的开发流程对于开源项目来说是绝对必要的(本质上必须通过互联网工作)。事实上,很多开源项目都使用Github。您也可以使用此过程;尽管有一些注意事项,我在底部列出了这些注意事项。

理解此工作流程的关键是每个开发人员将管理2个存储库:

  1. 个人工作,在其本地计算机上
  2. 工作对所有参与者可见,由Github.com

托管

设置流程,集成商(项目负责人):

  1. 在那里创建github帐户
  2. 主机项目

设置过程,开发人员:

  1. 创建github帐户
  2. 分支项目
  3. git克隆分支到本地计算机

开发流程,开发人员:

  1. 在本地复制
  2. 推送到github copy。(请记住,每个开发人员都有自己的Github branch.)
  3. Submit向项目负责人的Github repository.
  4. Rinse发送拉取请求并重复。

开发流程,集成商:

  1. 在Github上查找pull requests
  2. Review它们,批准它们,将它们合并并在本地拷贝上工作,如上所述,sans pull requests

然而,这并不是唯一可能的工作流程。例如,Github使您的开发人员可以方便地相互发送拉取请求,例如,如果他们中的两个人正在共同开发一个功能。这样,他们都可以在某种程度上扮演“集成者”的角色。

注意事项:如果您的程序不是开源的,那么使用github有一个警告:您必须付费托管私有存储库。他们有一种机制(免责声明:从未使用过)来组织人们在公共或私有存储库上工作,然而,我相信成本可以完全在组织所有者中支付-这对您的开发人员来说是很好的,并为您增加了一些额外的成本。

如果你只有几个贡献者,你也许可以通过使用Bitbucket而不是Github来拥有一个免费的私有存储库。他们可以选择免费托管私有repos,工作流程与我上面概述的大致相同。

票数 3
EN

Stack Overflow用户

发布于 2013-06-09 20:38:49

实现这一点的最好方法是使用预接收钩子,它会查看执行提交的人员的用户名以及他们试图提交的分支。如果用户名不在允许用户列表中,而分支是主分支,则拒绝推送。

例如:

代码语言:javascript
代码运行次数:0
运行
复制
#!/bin/bash
allowedUsers=( 'bob' 'john' 'george' ); # list of allowed usernames

while read oldrev newrev ref ; do
    echo ${allowedUsers[@]} | grep -q $(whoami);
    if [ $? -eq 1 ] && [ "$ref" = 'refs/heads/master' ] ; then
        echo "You are not allowed to push to master branch";
        exit 1;
    fi
done
票数 1
EN

Stack Overflow用户

发布于 2013-06-09 20:46:09

在使用GitHub时,最好也是最简单的方法是使用Pull Requests。在您的情况下,每个程序员只能拉取对存储库的访问,并且必须对其进行锥形访问。当他或她准备好更改时,该程序员会向您发送一个pull请求。然后检查请求,如果可以,则将其合并到主存储库中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17009612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档