Git Pull-Request 一种名为PR的项目管理方式

2020/02/28 Tutorials 共 1485 字,约 5 分钟

hey 出现

广为人知的同性交友网站的一大特色就是 Pull-Request 功能, 简称 PR. 这也是开源的重要功能之一。

Pull-Request 是什么?

Github 官方文档的定义是: “Pull Request 是一种通知机制。你修改了他人的代码,将你的修改通知原来的作者,希望他合并你的修改,这就是 Pull Request。”

Pull-Request 可以理解为是一个项目的合作方式, 是将多人的代码进行合并, 并入特定分支的一种流程.

当多人合作时, 就会涉及到代码的提交与合并, 而 PR 方式, 在合并的过程中, 管理员(项目拥有者 or 权限者)可以 review, 讨论, 修改代码, 在审核通过后,可以 Merge 到指定分支.

Pull-Request 的流程?

以下使用 Github 作为范例, 其他 git 平台都是类似的, 如 gitlab, gitee

1.打开项目主页, Fork 项目到自己账户.

2.在个人 repos 中打开 Fork 的项目, 并克隆到本地.

3.打开本地项目, 创建与 Fork 项目仓库的联系,

# learn-PR 是自定义的远端仓库名字. 较为流行的命名是 Fork 仓库的名字
git remote add learn-PR git://github.com/${Other User}/${repo name}.git

4.如果发现本地的代码与 Fork 项目不一致, 也可以 fetch 到本地后, 再 merge.

5.在本地编辑代码, 提交到自己远端仓库.

6.在 web 界面, 创建 Pull-Request

7.选择仓库及分支, 确认 PR 信息无误后, 可以点击 Create, 其后是填写该 PR 的描述, (尽量简短清晰

8.等待管理员审核 PR

  • 如果只是简单的文案修改, 在 web 界面就可以查看 管理, 如果代码变更, 则还是需要用 IDE 打开查看, 见下一个.

9.管理员验证 PR (命令行

  • git am
# Github 对每个 PR 会自动生成一个 patch 文件, 下载该文件,合并进本地代码,就可以在本地查看效果了
# 下面命令要在本地项目的主页.
curl -L http://github.com/nieMick/study/pull/4.patch | git am
# nieMick/study 是 Fork 仓库, pull/4.patch 是 该仓库收到的第 4 个 PR. git am 命令是合并到当前分支
  • 为 PR 创建远程分支
# 类似本地创建 Fork 项目的流程 不过 仓库是提交 PR 者的仓库

git remote add bran git://github.com/bran-nie/study.git
git fetch bran
git merge bran/master

Pull-Request 与 Gitflow

  1. Gitflow 方式使用不同的分支进行协同工作, 它为不同的分支分配了一个明确的角色, 并确定了分支之间如何联系.简单的讲:
  • master 分支: 用于存储生产环境代码,
  • develop 分支: 开发时使用的分支
  • feat/xxx 分支: 个人开发时, 使用的分支, review 过后可以合并到 develop 上.
  • release 分支: 提测时从 developcheckout 的分支, 修改 bug 也是在这里. 测试通过后, merge 到 master 和 develop
  • hotfix 分支: master 出现紧急问题时, 从 master 上 checkout, 修复后要 merge 到 master 和 develop or release

  1. 两者相比, 个人感觉 PR(Github flow), 是 Git flow 的简化版, 我们只维护 master 分支, 开发新分支后, 向 master 分支提一个 PR

  2. 在持续部署上, PR 会更合适, 稍微长期一点如同时会存在 master 和新代码, git flow 也是不错的选择

待后续使用补充…

文档信息

Search

    Table of Contents