创建团队的项目

通过新建组织这个页面即可新建一个组织。

怎么选择适合自己团队的工作流

主干开发

  1. 开发团队系统开发团队系统设计和开发能力强。有一套有效的特性切换的实施机制,保证上线后无需修改代码就能够修改系统行为。需要快速迭代,想获得CI/CD所有好处。设计和开发能力强。有一套有效的特性切换的实施机制,保证上线后无需修改代码就能够修改系统行为。需要快速迭代,想获得CI/CD所有好处。
  2. 组件开发的团队,成员能力强,人员少,沟通顺畅。用户升级组件成本低的环境。

Git Flow

不具备主干开发能力。有预定的发布周期。需要执行严格的发布流程。

image-20200819212553537

Github Flow

不具备主千开发能力。随时集成随时发布:分支集成时经过代码评审和自动化测试,就可以立即发布的应用。

image-20200819212956858

GitLab Flow(带生产分支)

不具备主干开发能力。无法控制准确的发布时间,但又要求不停地集成。

image-20200819213049897

GitLab Flow(带环境分支)

不具备主干开发能力。需要逐个通过各个测试环境的验证才能发布。

image-20200819213141624

GitLab Flow(带发布分支)

不具备主干开发能力。需要对外发布和维护不同版本。

image-20200819213327705

如何挑选合适的分支集成策略

在项目设置处可以选择允许通过那种方式合并。

image-20200819215932108

例如如下项目,通过三种方式进行合并的结果。

image-20200819215349627

  1. Create a merge commit

    image-20200819220321723

    只要git能够解决即创建一个merge。

  2. Squash and merge

    image-20200819215316322

    把三个蓝色的commit合并成一个,然后合并到黑色分支。

  3. Rebase and merge

    image-20200819215617849

    相当于把蓝色的三个commit移动到黑色后边。

启用issue跟踪需求和任务

可以通过设置进行开启,默认是开启的。

image-20200819220709026

也可以建立模板。

如何用project管理issue

  1. 创建project

    image-20200819221421668

  2. 将issue关联project

    image-20200819221410429

image-20200819221455996

项目内部实施code review

为了保证集成分支代码质量,不允许不经过code review就集成到master分支。

  1. 添加规则

    image-20200819221757599

  2. 创建规则

    image-20200819221918969

团队协作时如何做多分支的集成

image-20200820074704156

Create a merge commit

  1. 黑色分支首先与蓝色分支进行合并

    image-20200820075222155

  2. 接下来黑色分支与绿色分支进行合并

    如果出现冲突,则需要人工解决。

    image-20200820075439259

    解决完冲突进行合并。

    image-20200820075532797

Squash and merge

  1. 黑色分支首先与蓝色分支进行合并

    image-20200820084143093

    会将蓝色分支的三次commit进行合并,然后加入到黑色分支。

  2. 接下来黑色分支与绿色分支进行合并

    同样的需要处理冲突。

    image-20200820084334038

    接下来进行合并。

    image-20200820084355958

Rebase and merge

  1. 黑色分支首先与蓝色分支进行合并

    image-20200820084707454

    也就是将蓝色分支的三个commit直接移动到黑色主分支的后边。

  2. 接下来黑色分支与绿色分支进行合并

    同样的需要处理冲突。

    image-20200820084813421

    此时变不能进行合并了。

    image-20200820084835884

  3. 如果一定要用此方式则需要处理

    • 将绿色分支回退到到s处(远端本地都回退)

    • 将绿色分支基于黑色分支进行变基

      1
      git rebase origin/master

      接下来处理冲突(如果存在),重新添加文件并执行命令

      1
      git rebase --continue

      循环执行这一步,直到处理完所有冲突。

    • 接下来强制将绿色分支推送。

      image-20200820085824629

    • 进行pull request 进行合并。

      image-20200820090020461

      GitHub会将蓝色四个commit移动到黑色分支后。

快速处理繁琐的过程。参考:Rerere

  1. Rerere全局配置打开

    1
    git config --global rerere.enabled true
  2. 切换到绿色分支与master进行合并

    1
    git merge master

    如果出现冲突,则处理冲突。如果出现Recorded preimage字眼则表示成功。

  3. 添加文件并生成commit

    1
    2
    git add .
    git commit -am"temp"
  4. 回退版本

    1
    git reset --hard HEAD~1
  5. 绿色分支基于master分支做变基

    1
    git rebase master

    接下来反复执行git rebase --continue即可。

如何保证集成的质量

可以通过设置进行对分支进行保护。

image-20200820092733923

可以在marketplace进行安装检查代码的插件。

怎么给项目增加详细的指导文档

image-20200820100132196

image-20200820100255987

Wiki可以通过markdown进行编写。