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