发布于 

GitHub标准Fork & Pull Request流程

创建Fork

就是在Github的开源项目主页上单击‘fork’按钮,将代码fork一份到自己仓库

# 将fork的代码clone到本地
git clone git@github.com:Anduin2017/HowToCook.git

Fork与upstream保持一致

这一步不是必要的, 但是保证代码与远程原始代码库(base repository)保持一致,才能为开源项目做更多贡献

# 将upstream添加到remote list
git remote add upstream git@github.com:Anduin2017/HowToCook.git

更新远程代码到fork时,要先fetch原始仓库的上游分支

# fetch上游分支
git fetch upstream

# 查看所有分支,包括upstream的分支
git branch -va

将远程master合并到本地master

git checkout master
git merge upstream/master

开发

创建新分支,开始添加贡献:

git branch newfeature
git checkout newfeature

也可以不建新分支

发起Pull Request

完成开发后可以发起PR

整理分支

在发起 Pull Request 之前,可能需要整理下分支以保持尽可能的简洁。这样其它维护者可以更方便的测试,accept, merge 代码

如有上游的 master 分支有了新的提交,需要 rebase 开发分支以保证在 merge 时不会有冲突能够执行 fast-forward 。

git fetch upstream
git checkout master
git merge upstream/master
git checkout newfeature
git rebase master

再者,在开发的时候提交历史可能很混乱,可以重新整理 squash 提交,以保持精简。可以使用交互式 rebase:

git checkout 
git rebase -i master

提交

做完上面的步骤,可以到 github 主页上,选择开发分支然后单击 pull request 按钮发起 pull request. 如果之后有新的调整,只需要直接 push 更新的到 github 上就行了。发起的 pull request 会跟踪的更新。


本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

本站由 @nnocase 创建,使用 Stellar 作为主题,您可以在 GitHub 找到本站源码。