更新一个 fork
- Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
Fork 是仓库及其所有分支的个人副本,你可以在你选择的命名空间中创建它。你可以使用 Fork 来向一个你没有访问权限的项目提出更改建议。更多信息,请参阅 Forking workflows。
你也可以使用 GitLab UI 来更新一个 fork。
前置条件:
- 你必须在本地机器上 下载并安装 Git 客户端。
- 你必须为你想要更新的仓库 创建一个 fork。
要从命令行更新你的 fork:
-
检查是否为你的 fork 配置了
upstream远程仓库:-
如果你还没有,请将你的 fork 克隆到本地。更多信息,请参阅 Clone a repository。
-
查看你的 fork 的已配置远程仓库:
git remote -v -
如果你的 fork 没有指向原始仓库的远程仓库,使用以下示例之一来配置一个名为 upstream 的远程仓库:
# 编辑 <upstream_url> 后,将任何仓库设置为你的上游 git remote add upstream <upstream_url> # 将主要的 GitLab 仓库设置为你的上游 git remote add upstream https://gitlab.com/gitlab-org/gitlab.git
-
-
更新你的 fork:
跨 fork 协作
GitLab 允许上游项目维护者和 fork 所有者之间进行协作。更多信息,请参阅:
作为上游成员推送到 fork
如果满足以下条件,你可以直接推送到 forked 仓库的分支:
- 合并请求的作者启用了来自上游成员的贡献。
- 你对上游项目至少拥有 Developer 角色。
在以下示例中:
- forked 仓库的 URL 是
[email protected]:contributor/forked-project.git。 - 合并请求的分支是
fork-branch。
要更改或向贡献者的合并请求添加提交:
-
在左侧边栏,选择 Search or go to 并找到你的项目。
-
转到 Code > Merge requests 并找到合并请求。
-
在右上角,选择 Code,然后选择 Check out branch。
-
在对话框中,选择 Copy ( )。
-
在你的终端中,转到仓库的克隆版本,并粘贴命令。例如:
git fetch "[email protected]:contributor/forked-project.git" 'fork-branch' git checkout -b 'contributor/fork-branch' FETCH_HEAD这些命令从 forked 项目获取分支,并为你创建一个本地分支供你使用。
-
对分支的本地副本进行更改,然后提交它们。
-
将你的本地更改推送到 forked 项目。以下命令将本地分支
contributor/fork-branch推送到[email protected]:contributor/forked-project.git仓库的fork-branch分支:git push [email protected]:contributor/forked-project.git contributor/fork-branch:fork-branch如果你修改或压缩了任何提交,你必须使用
git push --force。请谨慎操作,因为此命令会重写提交历史。git push --force [email protected]:contributor/forked-project.git contributor/fork-branch:fork-branch冒号 (
:) 指定了源分支和目标分支。格式为:git push <forked_repository_git_url> <local_branch>:<fork_branch>