zoukankan      html  css  js  c++  java
  • 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请求,
          不过对于复杂的情况时,建议采用创建检查分支、合并分支的方式,避免出现错误的、无法运行的代码。
  • 相关阅读:
    table首行固定
    JavaScript获取当前日期,昨天,今天日期以及任意天数间隔日期
    Struts2二级菜单联动
    Servlet和Struts2同时使用
    最近的感想
    java.lang.NoClassDefFoundError: javax/el/ELResolver 问题解决
    Event Loop、函数式编程、IO多路复用、事件驱动、响应式、
    Git 的使用(一)
    Linux 硬链接与软链接 目录结构
    并发、并行、同步、异步相关感念
  • 原文地址:https://www.cnblogs.com/haomiao/p/11650324.html
Copyright © 2011-2022 走看看