如何更改我分叉的GitHub项目?

时间:2011-04-21 20:06:22

标签: git github fork

我分叉了一个项目,进行了一些更改,并接受了拉取请求。但是现在,我分叉的项目移动到另一个存储库,并且是该存储库的一个分支。

那是:

Original -> MyFork

现在:

NewOriginal -> Original -> MyFork

我如何得到以下内容?

NewOriginal -> MyFork

4 个答案:

答案 0 :(得分:60)

注意:以下解决方案不完整,因为您将丢失所有wiki内容以及特定于您的分叉的问题。

您可以使用以下步骤实现此目的:

  1. 从现有的叉子上拉下所有分支和标签。
  2. 在GitHub上删除您的存储库。
  3. 从新存储库中分叉。
  4. 如有必要,请更新远程URL
  5. 将所有本地分支和标记推送到新存储库。

答案 1 :(得分:55)

在本地,您只需更改原始存储库所在的目标即可。通常该存储库名为 upstream ,因此您可以这样做:

git remote set-url upstream git://example.com/NewOriginal.git

根据您使用的主机(即fork所在的位置),可能会有一些额外的内部链接,您无法轻松更改。例如,在Github上,fork直接与您分叉的原始链接相关联。在这种情况下,您需要再次分叉新项目,并使用新的fork。

在这种情况下,您也可以轻松更改 origin 存储库的URL,然后将您在旧fork中更改的所有内容推送到新的fork中。

答案 2 :(得分:9)

更新存储库中的远程URL

git remote set-url origin <url to NewOriginal, e.g. git://…/bla.git>

答案 3 :(得分:2)

假设您执行了正确的分叉并添加了上游,请参阅githubHelpOnFork;要只更改上游URL,请执行:

  1. 验证您当前的上游和原点是什么样的:

    git remote -v
    
  2. 如果您看到上游列出并且您只想更改其网址,请执行@poke建议的操作(如果不遵循上面的helpGithub链接添加新的上游):

    git remote set-url upstream git://example.com/NewOriginal.git
    
  3. 然后验证上游是否指向新网址

    git remote -v