背景
1)我们是由六位初学者组成的团队,第一次尝试Git和Github。
2)我们在Github上创建了一个回购,然后我们所有人都克隆了它。
3)然后我们各自创建了自己的本地功能分支,并开始研究我们的第一个功能。
4)现在我们发现了一个使用两个永久分支(“主”和“开发”)和任意数量的功能分支的工作流程,这些功能分支来自“开发”(并在它们发生时返回到它)完成了。
问题:
A)将Github和团队回购从当前状态(“主”)转变为我们想要的(“主”和“开发”)的最佳方法是什么?
B)团队中的每个成员应该进行哪些跟踪?也就是说,我们都有兴趣在Github上继续使用“develop”,所以我们可以经常修改我们的功能分支。例如。
如果这是一个“愚蠢”的问题,感谢和抱歉。我觉得答案正在盯着我,但我没有信心,并希望得到一位经验丰富的Git用户的帮助,理想情况是使用类似于我正在采取的工作流程的用户。感谢。
答案 0 :(得分:1)
阅读this article,它精美地解释了如何使用git与多个开发人员一起管理项目。我相信文章的摘要可以在这个图表中显示:
git workflow http://nvie.com/img/2009/12/Screen-shot-2009-12-24-at-11.32.03.png
A)将Github和团队回购从当前状态(“主”)转变为我们想要的(“主”和“开发”)的最佳方法是什么?
这很容易。您当前的master
分支相当于上图中的develop
分支。因此,您只需要分支develop
分支,让开发人员使用 而不是master
。
B)团队中的每个成员应该进行哪些跟踪?也就是说,我们都有兴趣在Github上继续使用“develop”,所以我们可以经常修改我们的功能分支。例如。
就develop
分支而言,您以与威胁master
相同的方式威胁它。几乎没有什么区别。现在master
分支将变得特别。它应该始终稳定并且可供其他人下载。因此,您应该授予仅向受信任的人数推送master
的权限(我不确定git
是否为您执行此操作,或者您只需要告诉别人并希望他们遵守)。一个可以推动掌握的人将负责master
分支的任何变更。
请注意,开发人员仍然可以发布hotfixes
并将其合并到develop
中,但他们应该让有权限的人将其与master
合并。
release
分支可以采用与master
类似但不那么受限制的方法。
至少强制执行权限的一种方法是为master
建立另一个存储库,开发人员可以在其中发出“拉取请求”,有权限的存储库可以接受拉取。这实际上是Linux内核的管理方式。使用Linux内核,Linus自己管理着一个master
存储库。他的副手保留了几个develop
分支机构,他们时不时地向他发送“拉动请求”。