使用 Git 将远程“来源”更改为“上游”

Posted

技术标签:

【中文标题】使用 Git 将远程“来源”更改为“上游”【英文标题】:Change remote 'origin' to 'upstream' with Git 【发布时间】:2021-04-05 16:58:01 【问题描述】:

我已经从原始来源的upstreammaster 存储库克隆了一个 Git 存储库到我的本地计算机。 git remote -v 返回:

origin  https://github.com/project.git (fetch)
origin  https://github.com/project.git  (push)

但我现在知道我需要将这个 upstream master 分支分支到我的个人 GitHub 帐户,克隆它,创建一个新分支,然后开始编码(这样我就不会直接对upstream repo,而是我自己的 fork origin repo)。我已将upstream master 分叉到我的 GitHub 个人资料中,但不知道如何继续。我需要让git remote -v 看起来像这样:

origin    https://github.com/myGitHubProfile/project.git (fetch)
origin    https://github.com/myGitHubProfile/project.git (push)
upstream    https://github.com/project.git (fetch)
upstream    https://github.com/project.git  (push)

鉴于我已经从原始源克隆了upstream master 并且它已经设置为origin,我该如何实现?

【问题讨论】:

命令序列见Ondrej K.'s answer,但我要在这里补充一点,遥控器是如何产生的并不重要:您可以删除所有遥控器并重新添加它们,唯一真正的成本是是你输入了一些额外的命令。运行 git fetch --allgit remote update(两者都做同样的事情)之后的最终结果是,您将拥有来自两个存储库的所有提交,可以通过适当的远程跟踪名称找到。 【参考方案1】:

您似乎在寻找:

git remote rename origin upstream
git remote add origin https://github.com/myGitHubProfile/project.git

给“旧”origin 远程一个新的upstream 名称并添加名为origin 的新远程。

【讨论】:

以上是关于使用 Git 将远程“来源”更改为“上游”的主要内容,如果未能解决你的问题,请参考以下文章

git将上游设置为存储库中的远程文件夹

git 远程分支与本地分支

git如何将上游(upstream)新建分支(origin没有)导入到origin中?

如何临时更改 git ssh 用户进行远程推送?

无法将 git 分支重命名为“master”,以错误的名称推送到远程

GIT使用之基于分支管理