Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用GitHub管理多个用户_Github - Fatal编程技术网

使用GitHub管理多个用户

使用GitHub管理多个用户,github,Github,有谁能向我请教一件事吗 我们有一个项目,我们刚刚决定雇佣更多的程序员来做这个项目。 到目前为止,我是唯一一个在GitHub上备份代码的程序员。 但是现在我需要找到一种安全的方法来管理多个程序员 所以有一个私有项目的主分支,其他程序员应该能够克隆它。 但他们不应该能够将更改提交给主分支本身。 也许他们应该创建自己的分支,并在那里提交更改。 我应该是唯一一个能够审查他们的工作的人,如果工作正常,我会将其合并到master branch 有人能告诉我应该怎么设置吗? 或者发送一些好的教程? 非常感谢实

有谁能向我请教一件事吗

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

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

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

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

e、 g


使用GitHub时,最好、最简单的方法是使用。在您的情况下,每个程序员只获得对存储库的拉式访问权,并且必须对其进行锥化。当他或她准备好进行更改时,程序员会向您发送一个请求。然后检查请求,如果确定,则将其合并到主存储库中。

协作编码是Github背后的关键所在。下面是一个说明性的工作流程,让您开始。类似的开发流程对于开源项目(本质上必须通过互联网工作)是绝对必要的。事实上,很多开源项目都使用Github。你也可以使用这个过程;尽管有一些警告,我已经在底部列出了

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

  • 个人工作,在本地机器上
  • 工作对所有参与者可见,由Github.com托管
  • 设置过程,集成商(项目负责人):

  • 创建github帐户
  • 在那里主持项目
  • 安装过程,开发人员:

  • 创建github帐户
  • 分叉项目
  • git克隆分支到本地计算机
  • 开发过程,开发人员:

  • 制作本地副本
  • 推送到github复制。(请记住,每个开发人员都有自己的Github分支。)
  • 向项目负责人的Github存储库提交请求
  • 冲洗并重复
  • 开发过程,集成商:

  • 查看Github上的pull请求
  • 审核、批准、合并
  • 如上所述,在本地副本上工作,无需拉取请求
  • 然而,这不是唯一可能的工作流。例如,Github使开发人员可以方便地相互发送拉请求,例如,如果他们两人正在一起开发一个功能。这样,它们都可以在某种程度上扮演“集成者”的角色

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


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

    最简单的方法是让合作者为您的存储库提供服务,并使用拉式请求。无需使用分支。非常感谢。如果你建议将其作为访问控制,那么我必须让你失望,因为如果有人真的想要,这将在两秒钟内被破坏。关于你的免责声明:如果一个分支是私有存储库,那么该分支也是私有的,并且不算作任何人的单独私有回购(无额外付款).您知道如何让用户使用私有存储库吗?我只是看到他们不能通过URL访问私有项目(简单的404错误),除非他们被标记为合作者。但是,协作者不仅可以分叉,还可以提交到主存储库,这正是我需要防止的。我需要注册一个公司账户还是什么?@SergeVinogradoff我错了,你只能在公司注册。如果存储库属于某个组织,您可以创建一个对repo具有只读访问权限的团队。是的,我就是这么做的。很棒的工具。谢谢
    #!/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