将GitHub repo复制到新的远程URL

时间:2016-11-07 16:11:51

标签: git github version-control

我有一个GitHub仓库,我想复制并推送到另一个组织下的新远程URL。我想保留尽可能多的历史记录,例如分支和提交,但我不确定如何做到这一点。我的本地副本没有所有分支。

我见过类似的问题,但我想确认一下,因为这有点冒险。

步骤是这样的吗?

git fetch origin

git branch -a

git remote add new-origin git@github.com:user/repo.git

git push --all new-origin

git push --tags new-origin

git remote -v

git remote rm origin

git remote rename new-origin origin

2 个答案:

答案 0 :(得分:0)

如果您计划保留两个端点,则可以执行git remote set-url --add origin https://new.url/path/to/repo.git这样,当您按下时,您将同时推送到两个端点。然而拉动仅来自一个来源。如果拉动是一个问题,那么我建议使用新的遥控器。您的步骤与您之前提到的步骤类似:

要将当前历史记录推送到与当前端点完全无关的新端点,请执行以下步骤。请注意,这会将本地存储库与当前端点断开连接,并将其连接到新端点。

1)git pull --all

2)git pull -tgit pull --tags

3)git remote set-url origin git@github.com:user/repo.git

4)git push --all

5)git push --tags

如果出现任何问题,您需要做的就是从原始repo.git克隆原点当前设置为

答案 1 :(得分:0)

是的,你的步骤是正确的。但要注意以下几点:

  1. 第一步,您可以使用git pull代替(拉取功能是获取+合并)。

  2. 完成上述步骤后,您将只找到第一个回购的分支(而不是新的URL)。使用git branch –a,您将找到第一个回购的所有分支和远程新的URL回购。

  3. 您需要创建本地分支以相应地跟踪远程。例如git checkout –b branch_name1 origin/branch_name1git checkout –b branch_name2 origin/branch_name2

  4. 现在您会发现本地副本包含第一个repo的分支和新URL的分支,并且保留了提交历史记录。