3

有人可以就一件事咨询我吗?

我们有一个项目,我们只是决定雇用更多的程序员来完成它。到目前为止,我是唯一的程序员,在 GitHub 上备份代码。但现在我需要找到一种安全的方式来管理多个程序员。

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

谁能告诉我应该如何设置它?或者发一些好的教程?非常感谢

4

3 回答 3

3

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

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

  1. 个人作品,在他们的本地机器上
  2. 作品对所有参与者可见,由 Github.com 托管

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

  1. 创建github账号
  2. 在那里主持项目

设置过程,开发者:

  1. 创建github账号
  2. 分叉项目
  3. git clone 分支到本地机器

开发过程,开发者:

  1. 处理本地副本
  2. 推送到 github 副本。(请记住,每个开发人员都有自己Github 分支。)
  3. 向项目负责人的 Github 存储库提交拉取请求。
  4. 冲洗并重复。

开发流程、集成商:

  1. 在 Github 上查找拉取请求
  2. 审核、批准、合并
  3. 如上所述,在本地副本上工作,没有拉取请求

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

注意事项:如果您的程序不是开源的,那么使用 github 有一个注意事项:您必须付费才能托管私有存储库。他们有一种机制(免责声明:从未使用过)来组织人们在公共或私人存储库上工作,但是,我相信成本可以完全由组织所有者支付——这对您的开发人员来说非常好,而且成本一些额外的给你。

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

于 2013-06-09T13:01:03.073 回答
1

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

例如

#!/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
于 2013-06-09T12:38:48.800 回答
0

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

于 2013-06-09T12:46:09.063 回答