GitLab团队开发协作中Merge和Fork方式简介 Merge 方式

  1. Clone 代码仓库到您本地 git clone https://git.iflytek.com/ZFBG_FZ_XT/marking-web.git
  2. 切换到维护人员为您创建的开发分支,通常命名为 dev-* git checkout -b dev-next-release origin/dev-next-release
  3. 在本地新建的开发分支上进行各种修改 代码工程已配置好对 Javascript、CSS、git message 的代码格式检查,您需要了解 eslint-config-standard、stylelint-config-recommended-scss、commitlint 相关规则。
  4. Rebase 开发分支 您修改的时候,可能别人的修改已经提交并被合并,这里请使用rebase命令进行合并解决,主要有2个好处: a) 您的提交记录将会非常优雅,不会出现 Merge xxxx branch 等字样 b) rebase 后您分支的提交日志也是一条单链,基本不会出现各种分支交错的情况,回查时更轻松 git checkout dev-next-release git rebase -i HEAD~2 # 对最近2次 commit 进行操作
  5. 将您 rebase 后的分支,上传到您远程的仓库 git push origin dev-next-release
  6. 按照 MR 模版 中的清单创建 MR(通常 Maintainer 已经为您配置完成,在创建 MR 页面输入标题时可选择模版)
  7. 如果没有问题,维护人员将会把您的修改合并到 LTS 分支中 Fork 方式 (高阶)
  8. Fork ZFBG_FZ_XT/marking-web 项目到您的 gitlab 库
  9. 克隆您 fork 的代码仓库到您本地 git clone https://git.iflytek.com/[username]/marking-web.git
  10. 添加 ZFBG_FZ_XT/marking-web 仓库为 upstream 仓库 git remote add upstream https://git.iflytek.com/ZFBG_FZ_XT/marking-web.git

git remote -v origin https://git.iflytek.com/[username]/marking-web.git (fetch) origin https://git.iflytek.com/[username]/marking-web.git (push) upstream https://git.iflytek.com/ZFBG_FZ_XT/marking-web.git (fetch) upstream https://git.iflytek.com/ZFBG_FZ_XT/marking-web.git (push)

git fetch origin git fetch upstream

  1. 基于 LTS branch 创建一个新的分支,通常是 lts-v*

    从远程仓库拉取分支到本地,此分支随时可以同步 upstream 远程库最新代码

    git checkout -b upstream-lts-v2 upstream/lts-v2

从本地分支创建开发分支,通常以该MR对应的 issue 号作为开发分支名

git checkout -b dev-next-release

  1. 在本地新建的开发分支上进行各种修改 修改时请保证该分支上的修改仅和 issue 相关,并尽量细化,做到一个分支只修改一件事,一个 MR 只修改一件事。 同时,您的提交记录请尽量使用英文描述且遵循 commitlint 规范,如:fix: #10000 或 feat: #20000 头像剪切功能。如果没有 issue 请在 gitlab 或 相应的平台中自行添加 issue。 编写代码请遵循 Javascript - eslint-config-standard 、CSS - stylelint-config-recommended-scss 的代码规范。
  2. Rebase 开发分支 您修改的时候,可能别人的修改已经提交并被合并,此时可能会有冲突,这里请使用rebase命令进行合并解决,主要有2个好处: a) 您的提交记录将会非常优雅,不会出现 Merge xxxx branch 等字样 b) rebase 后您分支的提交日志也是一条单链,基本不会出现各种分支交错的情况,回查时更轻松 git checkout upstream-lts-v2 git pull git checkout dev-next-release git rebase -i upstream-lts-v2
  3. 将您开发完成 rebase 后的分支,上传到您 fork 的 origin 远程仓库 git push origin dev-next-release
  4. 按照 MR 模版 中的清单创建 MR(通常 Maintainer 已经为您配置完成,在创建 MR 页面输入标题时可选择模版)
  5. 如果没有问题,维护人员将会把您的修改合并到 LTS 分支中