GitHub 将更改提交到从复刻创建的拉取请求分支
在拉取请求创建者的许可下,您可以在从仓库复刻创建的拉取请求分支上提交更改。
在拉取请求分支上进行提交必须满足以下条件:
- 该拉取请求分支在您拥有推送权限的仓库中打开,并且是从仓库的复刻创建的
- 在用户拥有的复刻上
- 拥有拉取请求创建者授予的许可
- 没有阻止您提交的分支限制
只有创建拉取请求的用户才能授予您向用户拥有的复刻推送提交的权限。 更多信息请参阅“允许更改从复刻创建的拉取请求分支”。
注:还可以通过创建自己的仓库复刻副本(或复刻)并将更改提交到创建原始拉取请求更改的头部分支,从而通过 GitHub 向仓库复刻的拉取请求分支进行提交。 有关一些一般准则,请参阅“从复刻创建拉取请求”。
- 在 GitHub 上,导航到创建拉取请求分支的复刻(或仓库副本)的主页面。
- 在文件列表上方,单击 Code.
- 要使用 HTTPS 克隆仓库,在“Clone with HTTPS(使用 HTTPS 克隆)”下单击 要使用SSH密钥(包括组织的SSH证书颁发机构颁发的证书)克隆存储库,请单击Use SSH,然后单击.
- 打开 Git Bash。
提示:如果要使用 GitHub Desktop 克隆复刻,请参阅“将仓库克隆到 GitHub Desktop”。
- 将当前工作目录更改为要下载克隆目录的位置。
$ cd open-source-projects
- 键入
git clone
,然后粘贴在第 3 步中复制的 URL。
$ git clone https://github.com/USERNAME/FORK-OF-THE-REPOSITORY
- 按 Enter 键。 将创建您的本地克隆。
$ git clone https://github.com/USERNAME/FORK-OF-THE-REPOSITORY
> Cloning into `FORK-OF-THE-REPOSITORY`...
> remote: Counting objects: 10, done.
> remote: Compressing objects: 100% (8/8), done.
> remove: Total 10 (delta 1), reused 10 (delta 1)
> Unpacking objects: 100% (10/10), done.
提示:错误消息“致命错误:目标路径 'REPOSITORY-NAME' 已存在并且不是空目录”表示您当前的工作目录已包含同名仓库。 要解决此错误,必须将复刻克隆到另一个目录中。
- 导航到新的克隆仓库。
$ cd FORK-OF-THE-REPOSITORY
- 将分支切换到进行原始更改的拉取请求的比较分支。 如果您导航到原始拉取请求,您将在拉取请求的顶部看到比较分支。
在此例中,比较分支为 test-branch
:
$ git checkout test-branch
提示:有关拉取请求分支的更多信息,包括示例,请参阅“创建拉取请求”。
- 现在,您可以使用此分支执行任何操作。 您可以向其推送新提交、运行一些本地测试或将其他分支合并到其中,包括
master
。 根据需要进行修改。
- 在更改提交到拉取请求的头部分支后,您可以将更改直接推送到原始拉取请求。 在此例中,头部分支为
test-branch
:
$ git push origin test-branch
> Counting objects: 32, done.
> Delta compression using up to 8 threads.
> Compressing objects: 100% (26/26), done.
> Writing objects: 100% (29/29), 74.94 KiB | 0 bytes/s, done.
> Total 29 (delta 8), reused 0 (delta 0)
> To https://github.com/USERNAME/FORK-OF-THE-REPOSITORY.git
> 12da2e9..250e946 test-branch -> test-branch
您的新提交将反映在 GitHub 上的原始拉取请求中。
延伸阅读
- "关于复刻"