您只能对以下拉取请求分支进行提交:
- 在您拥有推送访问权限的仓库中打开,并且是从该仓库的 fork 创建的
- 位于用户拥有的 fork 上
- 已获得拉取请求创建者的许可
- 没有分支限制 会阻止您提交
只有创建拉取请求的用户才能授予您向用户拥有的 fork 推送提交的权限。 有关更多信息,请参阅“允许对从 fork 创建的拉取请求分支进行更改”。
注意
您还可以通过 GitHub.com 对其仓库的 fork 的拉取请求分支进行提交,方法是创建您自己的仓库副本(或 fork),并对与原始拉取请求更改创建的相同的 head 分支提交更改。 有关一些常规准则,请参阅“从 fork 创建拉取请求”。
-
在 GitHub 上,导航到创建拉取请求分支的 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
-
切换到进行原始更改的拉取请求的比较分支。如果您导航到原始拉取请求,您将在拉取请求顶部看到比较分支。
在此示例中,比较分支为
test-branch
git checkout TEST-BRANCH
提示
有关拉取请求分支的更多信息(包括示例),请参阅“创建拉取请求”。
-
此时,您可以对该分支执行任何操作。您可以向其推送新的提交、运行一些本地测试或将其他分支合并到该分支中。根据需要进行修改。
-
将更改提交到拉取请求的 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 上的原始拉取请求中。
进一步阅读
- "关于分支"