您只能对满足以下条件的 pull request 分支进行提交:
- 在您拥有推送访问权限的仓库中打开,并且是从该仓库的 fork 创建的
- 位于用户拥有的 fork 上
- 已获得 pull request 创建者的许可
- 没有分支限制 会阻止您进行提交
只有创建 pull request 的用户才能授予您向用户拥有的 fork 推送提交的权限。 有关更多信息,请参阅“允许更改从 fork 创建的 pull request 分支”。
注意
您还可以通过 GitHub.com 对其仓库的 fork 中的 pull request 分支进行提交,方法是创建您自己的仓库副本(或 fork)的副本,并对与原始 pull request 更改创建的相同的头部分支提交更改。 有关一些常规准则,请参阅“从 fork 创建 pull request”。
-
在 GitHub 上,导航到创建 pull request 分支的 fork(或仓库副本)的主页。
-
在文件列表上方,单击 代码.
-
复制仓库的 URL。
-
要使用 HTTPS 克隆仓库,在“HTTPS”下,单击.
-
要使用 SSH 密钥(包括组织的 SSH 证书颁发机构颁发的证书)克隆仓库,请单击**SSH**,然后单击.
-
要使用 GitHub CLI 克隆仓库,请单击**GitHub CLI**,然后单击.
-
-
打开终端终端Git Bash。
提示
如果您更喜欢使用 GitHub Desktop 克隆 fork,请参阅“克隆仓库”。
-
将当前工作目录更改为您想要下载克隆目录的位置。
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.
提示
错误消息“fatal: destination path 'REPOSITORY-NAME' already exists and is not an empty directory”表示您的当前工作目录已包含同名的仓库。要解决此错误,您必须在不同的目录中克隆 fork。
-
导航到新的克隆仓库。
cd FORK-OF-THE-REPOSITORY
-
切换到进行原始更改的 pull request 的比较分支。如果您导航到原始 pull request,您将在 pull request 的顶部看到比较分支。
在此示例中,比较分支为
test-branch
git checkout TEST-BRANCH
提示
有关 pull request 分支的更多信息(包括示例),请参阅“创建 pull request”。
-
此时,您可以对该分支执行任何操作。您可以向其推送新的提交,运行一些本地测试或将其他分支合并到该分支中。根据需要进行修改。
-
将您的更改提交到拉取请求的 head 分支后,您可以直接将更改推送到原始拉取请求。在此示例中,head 分支为
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.com 上的原始拉取请求中。
进一步阅读
- “关于fork”