有人可以就一件事咨询我吗?
我们有一个项目,我们只是决定雇用更多的程序员来完成它。到目前为止,我是唯一的程序员,在 GitHub 上备份代码。但现在我需要找到一种安全的方式来管理多个程序员。
所以有一个私人项目的主分支,其他程序员应该能够克隆。但是他们不应该能够自己提交更改到主分支。也许他们应该建立自己的分支,并在那里提交更改。我应该是唯一能够审查他们的工作的人,如果它工作正常,则将其合并到 master 分支。
谁能告诉我应该如何设置它?或者发一些好的教程?非常感谢
有人可以就一件事咨询我吗?
我们有一个项目,我们只是决定雇用更多的程序员来完成它。到目前为止,我是唯一的程序员,在 GitHub 上备份代码。但现在我需要找到一种安全的方式来管理多个程序员。
所以有一个私人项目的主分支,其他程序员应该能够克隆。但是他们不应该能够自己提交更改到主分支。也许他们应该建立自己的分支,并在那里提交更改。我应该是唯一能够审查他们的工作的人,如果它工作正常,则将其合并到 master 分支。
谁能告诉我应该如何设置它?或者发一些好的教程?非常感谢
协作编码是 Github 背后的重点。这是一个说明性的工作流程,可帮助您入门。类似的开发流程对于开源项目(本质上必须通过互联网工作)是绝对必要的。事实上,很多开源项目都使用 Github。您也可以使用此过程;虽然有一些警告,我已经在底部列出。
理解此工作流程的关键是每个开发人员将管理 2 个存储库:
设置过程,集成商(项目负责人):
设置过程,开发者:
开发过程,开发者:
开发流程、集成商:
但是,这不是唯一可能的工作流程。例如,Github 使您的开发人员可以方便地相互发送拉取请求,例如,如果他们中的两个正在一起开发一个功能。这样,他们都可以在某种程度上扮演“集成者”的角色。
注意事项:如果您的程序不是开源的,那么使用 github 有一个注意事项:您必须付费才能托管私有存储库。他们有一种机制(免责声明:从未使用过)来组织人们在公共或私人存储库上工作,但是,我相信成本可以完全由组织所有者支付——这对您的开发人员来说非常好,而且成本一些额外的给你。
如果你只有几个贡献者,你可以通过使用Bitbucket而不是 Github 来获得一个免费的私有存储库。他们可以选择免费托管私人仓库,工作流程与我上面概述的大致相同。
实现这一点的最好方法是使用预接收钩子,它查看执行提交的人的用户名和他们试图提交的分支。如果用户名不在允许用户列表中并且分支是主分支,则拒绝推送。
例如
#!/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
使用 GitHub 时,最好和最简单的方法是使用Pull Requests。在您的情况下,每个程序员都只能获得对存储库的拉取访问权限,并且必须对其进行访问。当他或她准备好进行更改时,该程序员会向您发送拉取请求。然后,您查看请求,如果可以,将其合并到主存储库中。