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