我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

此版本的 GitHub Enterprise 已停止服务 2020-11-12. 即使针对重大安全问题,也不会发布补丁。 要获得更好的性能、改进的安全性和新功能,请升级到 GitHub Enterprise 的最新版本。 如需升级方面的帮助,请联系 GitHub Enterprise 支持

更改远程仓库的 URL

git remote set-url 命令可更改现有远程仓库的 URL。

本文内容

提示: 有关 HTTPS 与 SSH URL 之间的差异,请参阅“我应使用哪种远程 URL?

git remote set-url 命令使用两个参数:

  • 现有远程仓库的名称。 例如,源仓库上游仓库是两种常见选择。
  • 远程仓库的新 URL。 例如:
    • 如果您要更新为使用 HTTPS,您的 URL 可能如下所示:
      https://[hostname]/USERNAME/REPOSITORY.git
    • 如果您要更新为使用 SSH,您的 URL 可能如下所示:
      git@hostname:USERNAME/REPOSITORY.git

将远程 URL 从 SSH 切换到 HTTPS

  1. 打开 Terminal(终端)Terminal(终端)Git Bash
  2. 将当前工作目录更改为您的本地仓库。
  3. 列出现有远程仓库以获取要更改的远程仓库的名称。
    $ git remote -v
    > origin  git@hostname:USERNAME/REPOSITORY.git (fetch)
    > origin  git@hostname:USERNAME/REPOSITORY.git (push)
  4. 使用 git remote set-url 命令将远程的 URL 从 SSH 更改为 HTTPS。
    $ git remote set-url origin https://hostname/USERNAME/REPOSITORY.git
  5. 验证远程 URL 是否已更改。
    $ git remote -v
    # Verify new remote URL
    > origin  https://hostname/USERNAME/REPOSITORY.git (fetch)
    > origin  https://hostname/USERNAME/REPOSITORY.git (push)

下次对远程仓库执行 git fetchgit pullgit push 操作时,您需要提供 GitHub 用户名和密码。 When Git prompts you for your password, enter your personal access token (PAT) instead. Password-based authentication for Git is deprecated, and using a PAT is more secure. For more information, see "Creating a personal access token."

You can use a credential helper so Git will remember your GitHub username and personal access token every time it talks to GitHub.

将远程 URL 从 HTTPS 切换到 SSH

  1. 打开 Terminal(终端)Terminal(终端)Git Bash
  2. 将当前工作目录更改为您的本地仓库。
  3. 列出现有远程仓库以获取要更改的远程仓库的名称。
    $ git remote -v
    > origin  https://hostname/USERNAME/REPOSITORY.git (fetch)
    > origin  https://hostname/USERNAME/REPOSITORY.git (push)
  4. 使用 git remote set-url 命令将远程的 URL 从 HTTPS 更改为 SSH。
    $ git remote set-url origin git@hostname:USERNAME/REPOSITORY.git
  5. 验证远程 URL 是否已更改。
    $ git remote -v
    # Verify new remote URL
    > origin  git@hostname:USERNAME/REPOSITORY.git (fetch)
    > origin  git@hostname:USERNAME/REPOSITORY.git (push)

疑难解答

尝试更改远程时可能会遇到这些错误。

No such remote '[name]'

此错误表示您尝试更改的远程不存在:

$ git remote set-url sofake https://hostname/octocat/Spoon-Knife
> fatal: No such remote 'sofake'

检查您是否正确键入了远程仓库的名称。

延伸阅读