• GitHub Pull Request工作流


    请求发送方:
    
      0. 一般可以采用fork一份某仓库(project-name)到自己的github
    
      1. 克隆该自己的github下的该仓库到本地
          git clone git@github.com: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 git@github.com: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请求,
          不过对于复杂的情况时,建议采用创建检查分支、合并分支的方式,避免出现错误的、无法运行的代码。
  • 相关阅读:
    敏捷结果30天之第十七天:找出高效时间,并利用它来处理重要事情
    每天一个linux命令(13):less 命令
    敏捷结果30天之第十九天:你在为谁做事
    每天一个linux命令(6):rmdir 命令
    每天一个linux命令(11):nl命令
    代码重构学习笔记三:重构72招式
    每天一个linux命令(4):mkdir命令
    敏捷结果30天之第二十二天:设计你的一天
    敏捷结果30天之第二十一天:正面失败,吸取教训,改善结果
    每天一个linux命令(8):cp 命令
  • 原文地址:https://www.cnblogs.com/haomiao/p/11650324.html
Copyright © 2020-2023  润新知