pull request¶
作者: kiki
日期: 2020/1/7
流程¶
- fork 原仓库,相当于拷贝一份代码
- clone 到本地,新建分支(有意义的名字),修改错误或添加功能特性
- 提交到 github/gitlab
- 在 github/gitlab 切换到新分支,发起 pull/merge request
- 原仓库管理员审核代码(代码风格、功能正常等),决定是否合并到原仓库
- 可以就指定 pull/merge request 发起讨论
- 每次新建分支开发之前先拉取原始仓库代码,更新
| 操作项/填写项 | 说明 | | — | — | | Title | 标题。没有特殊要求保持默认即可 | | Description | 描述。需要将变更的需求描述清楚,最好附件 Code Review 要点。可选择模板 | | Assignee | 分配人。被分配到的人将会收到邮件通知,跟 Merge 权限没有必然关系,仍然是项目的 Maintainers(Masters) 角色拥有 Merge 权限 | | Milestone | 里程碑。【可选】 | | Label | 标签。【可选】 | | Source branch | 源分支。跟上一步骤选择一致,这里主要用于确认 | | Target branch | 目标分支。跟上一步骤选择一致,这里主要用于确认 |
patch 文件¶
git am 可将一个 patch 文件合并到当前代码。
github 为每个 PR 自动生成一个 patch 文件。下载该文件,合并到本地代码,就可在本地查看效果。
# -L 表示如果有 302 重定向,curl 会自动跟进
curl -L http://github.com/cbeust/testng/pull/17.patch | git am
curl https://github.com/sclasen/jcommander/commit/bd770141029f49bcfa2e0d6e6e6282b531e69179.patch | git am
IDE MR 插件¶
创建 GitLab Access Token:菜单
User Settings->Access Tokens,进入Access Token添加页- **注意:**创建完成后,暂时保存 token。因为一旦刷新或者重开页面,token 就不可见了。
| 项 | 说明 | | — | —- | | Name | 名称 | | Expires at | 过期时间,最远可以选择到 10 年后,根据需要填写 | | Scopes | 范围,这里选择 api 就够用了 |
JetBrains:提供了诸多 IDE:IntelliJ IDEA、PyCharm、PhpStorm、WebStorm、RubyMide、AppCode、CLion、GoLand、DataGrip、Rider、Android Studio 等等,如无意外,都适用 gitlab 插件。
- 安装两个插件即可:Gitlab Projects 和 Gitlab Integration
Visual Studio:GitLab Extension for Visual Studio
Visual Studio Code:Gitlab MR
Atom:Gitlab