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请求, 不过对于复杂的情况时,建议采用创建检查分支、合并分支的方式,避免出现错误的、无法运行的代码。