软件开发过程中会经常出现多人协作开发的情况。在SVN中,我们约定,在提交代码之前需要先获取代码,在本地将代码合并,解决产生的冲突后再将代码提交到中央服务器。在Git的协作开发中同样存在类似的规约:

  1. 预留一个稳定的分支,比如master分支,这个分支只用于发布测试过的、稳定的代码,任何开发人员不得使用此分支进行提交。
  2. 开发人员加入时首先迁出master分支中的代码。然后根据自身的工作内容,创建一个新的分支,例如:dev-zhhotfix-#IssueID。建议注明分支的用途,以及维护这个分支的人员。
  3. 建立好分支后,提交和推送是不会出现non-fast-forward的合并情况的。如果出现了请核查开发人员是否使用了相同的分支名称。
  4. 提交、推送成功后,服务端会出现与之对应的远端分支。这时其他人在合并代码的时候,可以通过合并指令对此远端分支进行合并。合并结束、解决产生的冲突后,将合并的结果提交,推送到远端。注意:在做分支操作之前,请优先考虑将添加、修改的文件内容提交。防止编辑的内容丢失。
  5. 发布产品时需要将代码合并到master分支中,对发布产品的版本打标签。新版本的开发仍在dev分支进行。
  6. 若发布的产品出现问题,可以在目标版本所在Tag的位置迁出hotfix分支,进行对产品进行现场问题的热修复。现场的问题解决后,需要尽早将hotfix分支合并到后续的dev分支中。防止版本数相隔过多导致难以解决的合并冲突。

master分支保留的好处,一方面会使分支的命名统一、便于管理,另一方面可以通过这个保留的分支来实现代码审核,由项目的管理人员对dev-user分支进行审核,通过审核的代码再合并到master分支中。

相关链接

GitFlow它是git工具集的扩展,针对git的分支特点,GitFlow提供了一套开发分支的管理方案。作为模板具有一定的启发性。在此附上其主页教程