Git 之 多人协同开发工作流

1. 一般多人协同工作流

前面的文章考虑的都是单人开发工作流,本文实践git实现多人协同工作流。一般工作流如下:

基于上面流程,为了简化,本项目组就三个人,一个是Leader和两个开发人员A和B,Leader主要负责前期流程搭建(建项目、建仓库,建分组和权限设置等)和后期代码检查(code review)。 开发人员主要负责开发工作。

一般协同步骤如下:

1. Leader 本地新建项目,基本架构代码开发,然后推送到本地仓库。(之前文章已实践)

2. Leader 在GitHub上创建组织,邀请成员加入组织(成员如A和B需要各自提前注册GitHub账户)

3. Leader 在组织上创建仓库,然后推送本地代码到远程仓库, 并打上Tag(v1)

4. Leader 从master分支创建出dev分支用于开发的主分支,并推送到远程仓库。

5. 开发人员注册GitHub账户,然后Leader 将开发人员邀请进组织。

6. Leader 为成员设置组织权限和项目权限。

7. Leader 把项目远程地址发给开发人员,开发人员克隆代码到自己本地。

8. 开发人员从dev分支拉出新的分支进行开发。

9. 开发完成后,把代码提交到远程仓库,然后向Leader发起代码review,申请合并分支到dev分支。

10. Leader 进行代码review,确认后合并代码到dev分支。

11. Leader 拉出个分支Release用于上线前的测试(常叫UAT,或者Pre-Prod),如果测试出现bug,则再拉出个bug分支进行修复bug,然后再合并回release和dev分支,测试完成后release和bug分支都可以删除。

12. 最后没问题后准备上线,这时可以把稳定的版本再打Tag(v2),把dev分支申请合并到master分支上线(Prod),这一步也可以采用代码review的方式合并,也可以不用。

2. 多人协同开发实践:

首先,本地新建项目,并推送到本地仓库:

在GitHub上创建组织,在组织上创建仓库。(之前的文章例子中是没有创建组织,而直接场景仓库的, 这里是新的实践

 首先在GitHub右上角点击“New organization”创建组织,如下:

这里是模拟,我就选免费的方式:

填写组织信息后提交:

然后输入成员用户名,邀请其他成员(如本例中的开发人员A和B):

 因为这里需要注册另外一个账户来模拟,我就邀请了,直接提交。

接下来填写一下信息,不重要,随便填:

提交后,组织创建完成如下:

 在这个组织里,可以创建仓库,可以为组织邀请成员(右边的invite someone按钮)。比如,接着点击这里的“Create a new repository” 创建仓库

填写同本地仓库中同样的项目名称和其他信息,点击“Create repository” 创建仓库:

仓库创建成功。

根据这里提供的命令和远程地址, 把本地仓库的代码推送到这个仓库:

代码推送成功。刷新组织页面,看到项目已经在仓库了,同时master分支也在了:

接下来给版本号打 Tag , 一般默认的版本号是一长串的哈希值,为了简洁和好管理,可以把特定的版本号打上标签(Tag), 如下:

 表示在本地给当前分支的提交记录上打上了Tag。

接下来,看一下log:

这是在本地打了Tag, 接着需要推送到远程仓库:

 刷新远程仓库,可以看到Tag:

 Tag 是对哈希值版本号的简写,以后就可以用这个Tag代表这个版本。

同时,Release中也出现了发布的版本,以后也可以在这里下载Release版本:

 接下来创建出dev分支,并提交到远程仓库:

 刷新远程查看:

 

然后让开发人员注册GitHub账户(这部分不模拟)。然后回到组织页面,邀请他们进组织:

 输入开发人员的用户名,点击“Invite”即可。

然后选择成员,发送邀请,这样被邀请的成员的邮箱就会收到一条确认信息,成员在右键上同意加入组织,这样就邀请成功。

然后刷新组织的成员页面可以看到,所有成员:

给成员设置组织权限

 可以看到在组织里,成员默认只有只读权限,可以做其他设置,这里保持默认。

接下来为成员设置项目权限

点开项目界面,进入如下界面,即可设置每个成员的权限。(这里没有实际成员,所以看不到成员权限)

 接下来,把项目的远程地址发给项目成员,各成员就可以把代码克隆到自己电脑,进行开发。

成员克隆完代码后,从dev分支拉出一个新分支,进行新功能的开发:

 

 

 

 

开发成员A或B开发完成后,提交到远程仓库后,要合并到dev时,需要Leader对其代码进行代码review:

首先, Leader要先在GitHub上设置代码review的规则:

 

 注:表示以后所有代码合并到dev时都需要通过代码review,这里选择的review人数是1.

然后点击页尾的“Create” 成功创建review规则。

然后,开发人员在GitHub上(这里仍用同一个账户演示)发起代码review的申请:

 

 

点击“Create pull request”后创建review申请,界面如下:

 

同样的,接着,Leader可以进入这个页面对request进行review:

 点击“Merge”:

 再点击“Confirm merge”:

 

代码reveiw完成,devA分支已经合并到dev分支,同时可以点击“Delete branch” 按钮删除当前的devA分支,也可以不删除。如下:

 

查看项目页面中的dev分支,发现新开发的功能A已经合并到dev分支了。如下:

 

然后,Leader 拉出个分支Release用于上线前的测试(常叫UAT,或者Pre-Prod),如果测试出现bug,则再拉出个bug分支进行修复bug,然后再合并回release和dev分支,测试完成后release和bug分支都可以删除。

最后,没问题后准备上线,这时可以把稳定的版本再打Tag(v2),把dev分支申请合并到master分支上线(Prod),这一步也可以采用代码review的方式合并,也可以不用。

至此,多人协作开发实践完成。

 3. 给开源软件贡献代码

首先在GitHub上找到要贡献代码的开源项目,假如Python的流行框架tornado:

 

接着Fork源代码(拷贝)到自己的仓库:

点击“Fork”按钮,选择本地的一个仓库:

 

 然后刷新自己的远程仓库,发现多了tornado项目:

 然后在从自己的远程仓库将开源代码拿到本地修改,然后再推送到自己的远程仓库。

接着通过向开源代码作者申请代码review(Create pull request):

等源代码作者审核确认后即完成代码贡献。然后在开源的源码提交记录里面就我们的提交记录。

4. 其他知识点

GitHub上删除仓库:

在对应项目页面的Settings页上,拉到底,可以看到删除仓库按钮:

 

如下页面,输入仓库名称,点击按钮删除仓库:

 

 然后输入账户密码:

 然后显示仓库已经删除:

5. 新命令总结

1. 拉出分支并切换到新分支:

git checkout -b 新分支名称

2. 给当前版本打Tag:

git tag -a 标签名称 -m 版本说明信息

(如:git tag -a v1 -m '第一版')

3. 推送标签到远程仓库:

git push origin tags

  • 23
    点赞
  • 138
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值