GitHub 官方有一套自己总结出来的最佳团队协作流程,这个就是GitHub Flow。官方给出了一个Hello World的案例教程,这个教程大家可以自行看看,咱们这次不讲这个。

因为这个教程中实现的方法是纯粹用网页来操作的,这个和大家平常使用的方式有一些不同。所以咱们就不按照官方的教程来学习了,而是来看看平常真实的操作流程。

1. GitHub Flow

Github Flow 的核心是Pull Request,也就是拉取请求。简单的说,具体的实现是:

  • 给一个要增加的新功能,创建一个新分支
  • 添加代码,提交 commit,做成一个个开发中的版本
  • 发起一个 Pull Request
  • 大家讨论,队友可以拉取你的代码,可以提交自己的修改。
  • 开发完成,测试没问题后
  • 将分支合并到 master

整个流程就完成了。大家可以看到,其实大致的操作,其实跟咱们上节课讲的分支操作,并没有太大的不同。主要的区别有两个:

  • 一是,要为一个新功能开一个分支,而不是将新功能统统写到 dev 分支中。
  • 二是,多了 Pull Request 的概念,队友们可以在这个页面中参与讨论,审核代码,并提交自己的修改。

2. 实际操作

知道了基础的概念后,咱们现在就来实战一下子。

2.1. 开发

这次我们,要给项目,新增一个用户可以参与讨论的功能。那么打开 GitHub 客户端,新建一个叫做 discuss 的分支。

image.png

接着,在当前分支中,新建一个叫做 discuss 的文件夹,新功能的所有代码,就都在这个模块中了。

文件夹中,再放入一个 comment.html 文件,里面加上

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>

<h1>评论区</h1>

<form action="">
    <textarea name="body"></textarea>
</form>

</body>
</html>

2.2. 提交

现在这个功能,就马马虎虎开发了一个最基础的实现。然后我们来提交代码。commit 后,直接 push 上去。

2.3. 创建 Pull Request

GitHub 网站上,就会次出现大大的绿色按钮,没错,点这里就对了,这就是开一个 pull request

image.png

title 里,我们可以写上:讨论功能
comment 里,就写上:目前实现了评论框

然后点击,Create pull request,这样就创建好了一个 pull request 了。

2.4. 讨论、修改

你的队友,他们可以在这里参与你项目的讨论。例如我这里,可以写一个评论:留言需要添加用户名和头像。

他们还可以点击 open this in GitHub Desktop,将你这个分支的代码拉取到他们本地电脑上。他们可以检查你做的功能,如果有问题他们也可以在做出修改后,提交自己的代码上来。

2.5. 检查合并

当项目最终完成,并检查无误后,就点击

image.png

这样代码就合并到主分支中了。回到主分支中看一看,果然出现了 discuss 的相关代码了。

2.6. 本地的操作

当一个 pull request 的分支,功能已经开发完成后,它也就没有存在的意义了,所以咱们就应该将 discuss 分支删除掉。

image.png

记得要勾上,将远程分支也删掉,然后点击 Delete。

现在回到 master 分支中,一看编辑器中,刚开发完成的 discuss 功能不见了,但是 GitHub 网站上的 master 分支中却存在。这是因为本地的 master 分支的版本,没有线上的新。线上不是刚刚才把代码合并进去吗?所以点一下 Fetch,再点一次 Pull 就好了。

已添加到喜欢了