GitHub标准Fork & Pull Request流程
创建Fork
就是在Github的开源项目主页上单击‘fork’按钮,将代码fork一份到自己仓库
将fork的代码clone到本地 |
Fork与upstream保持一致
这一步不是必要的, 但是保证代码与远程原始代码库(base repository)保持一致,才能为开源项目做更多贡献
将upstream添加到remote list |
更新远程代码到fork时,要先fetch原始仓库的上游分支
fetch上游分支 |
将远程master合并到本地master
git checkout master |
开发
创建新分支,开始添加贡献:
git branch newfeature |
也可以不建新分支
发起Pull Request
完成开发后可以发起PR
整理分支
在发起 Pull Request 之前,可能需要整理下分支以保持尽可能的简洁。这样其它维护者可以更方便的测试,accept, merge 代码
如有上游的 master 分支有了新的提交,需要 rebase 开发分支以保证在 merge 时不会有冲突能够执行 fast-forward 。
git fetch upstream |
git checkout newfeature |
再者,在开发的时候提交历史可能很混乱,可以重新整理 squash 提交,以保持精简。可以使用交互式 rebase:
git checkout |
提交
做完上面的步骤,可以到 github 主页上,选择开发分支然后单击 pull request 按钮发起 pull request. 如果之后有新的调整,只需要直接 push 更新的到 github 上就行了。发起的 pull request 会跟踪的更新。