如何创建合入请求(Pull Request)

本文档以 Apollo 项目为例,引导新手逐步熟悉创建代码合入请求(Pull Request)的步骤 。另,可参考GitHub 页 了解更多。

第一步:创建您个人的 Apollo 代码分支

这可以通过点击Apollo 的 GitHub 页 右上角 的【Fork】按钮并按照其指引操作来完成。

第二步:克隆您的 Apollo 分支仓库

注:

请用您的 GitHub 用户名替换以下描述中的”YOUR_USERNAME”。

打开终端,输入以下任一命令:

# 使用 SSH 方式
git clone git@github.com:YOUR_USERNAME/apollo.git

# 使用 HTTPS 方式
git clone https://github.com/YOUR_USERNAME/apollo.git

第三步:设置您的用户名和电子邮件地址

git config user.name  "My Name"
git config user.email "myname@example.com"

第四步: 将 Apollo 官方仓库设为 upstream 上游分支

设置上游分支以便后续同步远端 upstream 分支的代码变更,这可以通过如下命令完成:

# 使用SSH
git remote add upstream git@github.com:ApolloAuto/apollo.git

# 使用 HTTPS
git remote add upstream https://github.com/ApolloAuto/apollo.git

通过如下命令查看 upstream 是否设置成功:

git remote -v

如成功,则会显示如下的 remotes 列表:

origin	git@github.com:YOUR_USERNAME/apollo.git (fetch)
origin	git@github.com:YOUR_USERNAME/apollo.git (push)
upstream	git@github.com:ApolloAuto/apollo.git (fetch)
upstream	git@github.com:ApolloAuto/apollo.git (push)

第五步:创建分支,做出修改,提交变更

git checkout -b my_dev origin/master

# 在您的my_dev分支修复问题,添加新功能,等等
# ...

# 将代码变动提交到您的本地分支,注意提交消息格式
git commit -m "[module] brief description of the changes"

第六步:同步上游仓库变更

git pull --rebase  upstream master

第七步:将您的本地修改推送到您个人的 Apollo 分支仓库

git push -f -u origin my_dev

第八步,生成代码合并请求

通过点击您的 Apollo 克隆 GitHub 页(通常 为https://github.com/YOUR_USERNAME/apollo) 上的”Pull Request” 按钮新建从 “YOUR_USERNAME/apollo:my_dev” 到 “Apolloauto/apollo:master” 的代码合并请求。

可参 考GitHub 页:创建合并请求 的描述来完成代码合并请求。

请不要忘了添加您的 PR 的描述。PR 描述可以帮助代码评审人员更好地理解您的代码变 更的意图。

作为开源项目,我们作为 Apollo 团队成员,很乐意评审并合入您提交的代码。但限于精力 ,可能您的 PR 从提交到合入需要花一些时间,请给我们一点耐心。

最后:大功告成

感谢您的 PR!