【Chapter 7】 接收 Pull Reauest

【Chapter 7】 接收 Pull Reauest

7.2 采纳 Pull Request 前的准备

  • 在本地开发环境中反映 Pull Request 的内容

    下面我们来讲解收到 Pull Request后在本地开发环境中进行实际检查的流程。在本示例中,Pull Request 接收方的用户名为 ituring,发送方的用户名为“PR 发送者”。(大致讲下流程)

    1. 将接收方的本地仓库更新至最新状态

      首先,将 Pull Request 接收方的仓库 clone 到本地开发环境中(图7.8左侧)。如果已经 clone 过,那么请进行 pull 等操作更新至最新状态。

      图7.8
      $ git clone [email protected]:ituring/first-pr.git 
      $ cd first-pr
      

    2. 获取发送方的远程仓库

      将 Pull Request 发送方的仓库设置为本地仓库的远程仓库,获取发送方仓库的数据。

      在本示例中,我们将图7.8 右上的仓库设置为远程仓库,进行 fetch。

      $ git remote add PR发送者  [email protected]:PR发送者/first-pr.git 
      $ git fetch PR发送者
      

      现在我们获取了 Pull Request 发送方仓库以及分支的数据(PR发送者 /work)。

    3. 创建用于检查的分支

      前面我们只获取了远程仓库的数据,这些数据尚未反映在任何一个 分支中。

      因此我们需要创建一个分支,用来模拟采纳 Pull Request后的 状态。由于这是我们第一个 Pull Request,分支名就叫 pr1。这一步相当于图7.9 左侧箭头(checkout)代表的操作。

      现在gh-pages与 pr1 分支的内容完全相同。

      图7.9
      $ git checkout -b pr1 
      Switched to a new branch 'pr1'
      

    4. 合并

      下面要将已经 fetch 完毕的“PR发送者/work”的修改内容与pr1 分支进行合并。也就是图 7.9 下侧箭头(merge)代表的操作。

      $ git merge PR发送者/work
      

    5. 删除分支

      检查结束后pr1 分支就没用了,可以直接删除。我们切换至pr1 之 外的分支,运行下面的代码。

      $ git branch -D pr1
      

7.3 采纳 Pull Request

自动合并:如果 Pull Request 的内容没有问题,大可打开浏览器找出相应的 Pull Request 页面,点击 Merge pull request 按钮,随后 Pull Request 的内容会自动合并至仓库(图 7.10)。

手动合并:由于我们已经在本地构筑了相同的环境,只要通过 CLI 进行合并操作再 push 至 GitHub,Pull Request 中就会反映出 Pull Request 被采纳后的状态(图7.11)。这个状态对应到本示例中就是“PR发送者/ work”分支合并到 gh-pages 分支。

  • 合并到主分支

    首先切换到 gh-pages 分支

    $ git checkout gh-pages
    

    然后合并“PR 发送者 /work”分支的内容。

    $ git merge PR送信者/work
    
  • push 修改内容

    现在只剩下push 一步了,不过为保险起见,我们先查看本地与 GitHub 端仓库内代码的差别。

    $ git diff origin/gh-pages
    

    确认无误后,进行 push

    $ git push
    

    用这种方法处理后,仓库的 Pull Request 会自动从 Open状态变为 Close状态(图 7.12)。现在我们可以去查看网页,已采纳的源代码应该已经反映出来了。

小结:

  1. 作为仓库的维护者要时刻记得,无法运行的代码绝不可以合入仓 库,否则会失去团队对你的信任。
  2. 自动合并适用于几行代码的小改动,实际中,使用手动合并较多。
  3. Pull Reauset 步骤: Fork、clone、branch(修改代码)、提交修改、创建远程分支、确认无误后发送 Pull Request(简要说明)。
  4. Pull Reauset 前期准备包括: clone、获取远程仓库、branch、检查分支、确认无误后合并、删除分支。
  5. 采纳 Pull Reauset :自动合并(Pull Request 页面)、手动合并(切换到源文件分支并合并、无误后 push 修改的内容)。

你可能感兴趣的:(【Chapter 7】 接收 Pull Reauest)