教程:更新 Git 远程 URL
- 版本:Free, Premium, Ultimate
- 提供:GitLab.com, GitLab Self-Managed, GitLab Dedicated
在以下情况下,请更新您的 Git 远程 URL:
- 您从另一个 Git 仓库主机导入了现有项目。
- 您的组织已将项目迁移到具有新域名的新 GitLab 实例。
- 项目在同一 GitLab 实例中被重命名为新路径。
如果您没有来自旧远程的现有本地工作副本,则不需要本教程。 您可以直接从新的 GitLab URL 克隆项目。
本教程介绍如何更新本地仓库的远程 URL,而不会:
- 丢失任何未完成的本机更改。
- 丢失尚未发布到 GitLab 的更改。
- 从新 URL 创建新的克隆工作副本。
本教程使用 git-remote 命令来
管理远程和跟踪仓库。
要更新 Git 远程 URL:
开始之前
您必须具备:
- 一个具有 Git 仓库和新 GitLab URL 的 GitLab 项目。
- 您正在迁移到新 GitLab URL 的项目的克隆本地工作副本。
- Git 已安装到您的本地机器。
- 访问您本地机器的命令行界面 (CLI)。在 macOS 上,您可以使用终端。在 Windows 上,您可以使用 PowerShell。Linux 用户可能已经熟悉其系统的 CLI。
- GitLab 的身份验证凭据:
- 您必须通过 GitLab 身份验证才能更新 Git 远程 URL。如果您的 GitLab 账户使用基本的用户名和密码身份验证,则必须禁用 双因素认证 (2FA) 才能从 CLI 进行身份验证。或者,您可以 使用 SSH 密钥通过 GitLab 进行身份验证。
确定现有和新 URL
要更新 Git 远程 URL,请确定您仓库的现有和新 URL:
-
打开终端或命令提示符。
-
进入您的本地仓库工作副本。要更改目录,请使用
cd:cd <repository-name> -
每个仓库都有一个名为
origin的默认远程。要查看远程仓库的当前 fetch 和 push URL,请运行:git remote -v -
复制并记下返回的 URL。它们通常是相同的。
-
获取新 URL:
- 转到 GitLab。
- 在左侧边栏中,选择 搜索或跳转至 并找到您的项目。
- 在左侧边栏中,选择 代码 > 仓库,转到项目的 仓库 页面。
- 在右上角,选择 代码。
- 根据您用于身份验证和通过
git克隆的方法,复制 HTTPS 或 SSH URL。如果您不确定,请使用与上一步中originURL 相同的方法。 - 记下复制的 URL。
更新 Git 远程 URL
要更新 Git 远程 URL:
-
打开终端或命令提示符。
-
进入您的本地仓库工作副本。要更改目录,请使用
cd:cd <repository-name> -
更新远程 URL,将
<new_url>替换为您复制的新仓库 URL:git remote set-url origin <new_url> -
验证远程 URL 更新是否成功。 以下命令显示 fetch 和 push 操作的新 URL,列出本地分支,并确认它们已跟踪到 GitLab:
git remote show origin- 如果更新不成功,请返回上一步,确保您有正确的
<new_url>,然后重试。
- 如果更新不成功,请返回上一步,确保您有正确的
要更新多个仓库的远程 URL:
-
使用
git remote set-url命令。将origin替换为您要更新的远程的名称。例如:git remote set-url <remote_name> <new_url> -
验证每个远程 URL 更新:
git remote show <remote_name>
更新远程 URL 后,您可以像往常一样继续使用 Git 命令。
您的下一个 git fetch、git pull 或 git push 将使用来自 GitLab 的新 URL。
恭喜,您已成功更新仓库的远程 URL。
(可选) 保留原始远程 URL
您的项目可能有多个远程位置。 例如,您有一个托管在 GitHub 上的项目的派生仓库,但您想在向 GitHub 发起拉取请求之前,在 GitLab 中处理您的派生仓库。
除了更新它之外,还要保留原始远程 URL,并维护新旧远程 URL,您可以添加一个新的远程,而不是修改现有的远程。
通过这种方法,您可以逐步过渡到新 URL,同时仍保持对原始仓库的访问权限。
要添加新的远程 URL:
-
打开终端或命令提示符。
-
进入您的本地仓库工作副本。
-
添加新的远程 URL。将
<new_remote_name>替换为新远程的名称,例如new-origin,并将<new_url>替换为新仓库 URL:git remote add <new_remote_name> <new_url> -
验证新远程是否已添加:
git remote -v
现在您可以使用原始远程和新远程。例如:
- 推送到原始远程:
git push origin main - 推送到新远程:
git push <new_remote_name> main