Github现在是越来越流行,但看到周围太多人只会git clone,好点的可以git push,之后再也不管了。我一直相信,好的项目是需要一直维护不断重构的,优秀的开源项目是希望更多人参与进来的。
我虽说了解一些,但很多具体细节也不明白,提交PR时一直担心因为自己的不规范给其他人造成困扰,以至于我不敢参与进去,不敢提交PR。
这篇文章是讲如何在Github中发送PR以及PR的一些注意事项,希望能为大家提供点帮助。

发送pull request步骤

  1. 查看要修正的源代码
  2. Fork项目到自己的仓库中
  3. 从自己的仓库中clone项目到本地
  4. 创建特性分支

    发送PR时,一般都是发送特性分支,这样可以使PR有更明确的特性
    创建分支的步骤

    1
    2
    3
    git branch -a   # 查看项目的分支
    git checkout -b feature master # 创建feature分支并自动切换
    git branch -a # 确认是否切换到feature分支下
  5. 修正代码

  6. 提交修改

    提交修改的一般步骤

    1
    2
    3
    git diff    # 查看修改是否正确
    git add file
    git commit -m "add new feature"
  7. 创建远程分支

    1
    2
    git push origin feature # 将本地分支发送到远程对应分支中
    git branch -a # 查看远程分支是否被创建
  8. 发送PR

    登录Github,切换到feature分支下,可以点击Compare查看分支间差别,确认修改是否正确。确认没有问题后,点击Create Pull Request,会提示填写本次PR的说明,之后点击Send Pull Request按钮,一个新的PR就已经提交。

发送Pull Request要注意的事情

如果一个bug被修复或是一个功能完成后再发送Pull Request,这样很有可能导致完成功能后才收到设计或是实现方面的指正,使得代码需要大幅修改甚至重新实现,因此,在实际开发中,应该尽早创建Pull Request,从审查中获得反馈,让大家在设计与实现方面一致。

向发送过Pull Request的分支添加提交时,该提交会自动添加至已发送的Pull Request中,不用担心提早发送Pull Request会非常麻烦。

在发送未完全实现的Pull Request时,有几个好的习惯会让交流更加顺畅:

  1. 可以加入直观移动的TaskList,就可以清晰的反映出哪些功能已经实现,哪些还未被实现,这样既可以加快审查者的工作效率,还可以作为自己的备忘录;
  2. 不要在Pull Request添加与本次Pull Request无关的修改,应重新发起一个Pull Request;
  3. 为了防止开发到一半的Pull Request被误合并,一般都会在标题前加上“[WIP]”,WIP是Work In Progress的简称,表示还在开发中,等所有的功能都实现后,再删掉这个前缀。

如果想要更好的了解Pull Request,可以看下面两篇文章