GitHub Pull Request工作流

请求发送方:

  0. 一般可以采用fork一份某仓库(project-name)到自己的github

  1. 克隆该自己的github下的该仓库到本地
      git clone [email protected]:user-name/project-name.git
    
  2. 创建本地仓库project-name的分支特性仓库(一般主流开发方式使用特性分支以及以特性分支提交Pull Request),如feature-A
      git checkout -b feature-A 

  3. 修改特性分支仓库中的文件内容,提交修改
      git diff
      git add some-files
      git commit -m "some commits information strings"
    
  4. 在该特性分支下创建远程分支
      git push origin new-remote-branch-project-name
      git branch -a

  5. 登录github,并查看分支间的差别,确认无误后可创建Pull Request并填写相应的注释说明提交该请求到fork的所在的仓库所有者的分支

  6. 该fork的仓库所有者将受到Pull Request请求,并可以处理该请求,或接受采纳合并并回复注释说明并关闭该请求,或者拒绝该请求并注释说明

  7. 以上为通过fork方式提交Pull Request,也可以不进行fork而直接从分支发送Pull Request
      前提:用户需要由对该仓库有编辑的权限,则可直接创建分支,从分支发送Pull Request而不需要再单独fork一份的麻烦.

接收方:
    
  0. 接收方仓库所有者首先需要先fork并clone到自己的本地开发环境下,或者已clone的需要先pull、push等操作以更新至最新状态
    
  1. 将Pull Request发送方的仓库设置为本地仓库的远程仓库(给Pull Request发送方设置某个简易的名称PRsender(或者其他的),此后便可使用该名称来操作git)
      git remote add PRsender [email protected]:sender-name/project-name.git
      git fetch PRsender
      以上操作将获取到发送方的仓库及分支的数据
    
  2. 创建用于检查Pull Request的分支,如: PR-feature-A
      git checkout -b PR-feature-A
    
  3. 合并该创建的分支(PR-feature-A)与发送方的仓库分支
      git merge PRsender/feature-A
      合并后,可通过一些自动测试的检查工具,看是否可以正常运行

  4. 检查后该PR-feature-A分支可以删除
      git branch -D PR-feature-A
    
  5. 找到Pull Request请求页面,找到相应的请求项内容,若采纳则可执行合并操作,否则提交解释信息,此后便可关闭该Pull Request

  6. 对于合并到主分支,可以采用以下方式:
      git checkout master
      git merge PRsender
      git diff
      git push
      以上方式将仓库的Pull Request自动从Open状态转为Close状态
    
  7. 对于安全的接收Pull Request请求,一定要灵活的创建分支、合并分支等操作,此外对于简单的代码可以用github网页执行合并Pull Request请求,
      不过对于复杂的情况时,建议采用创建检查分支、合并分支的方式,避免出现错误的、无法运行的代码。

猜你喜欢

转载自www.cnblogs.com/haomiao/p/11650324.html