将Github fork添加到现有存储库

时间:2011-08-26 20:31:56

标签: git github fork

我按照给定的说明(http://octopress.org/docs/setup/)设置了一个Octopress项目,您可以创建一个Github存储库,并在您的计算机上创建一个本地存储库。在本地计算机上,将远程添加到原始Octopress存储库,然后发出“git pull”命令。然后,将一个远程数据库添加到Github存储库,以便将更改推送到存储库。

所有这些都可以工作,但它不会创建原始项目的分支,这意味着没有明显的(以新手)方式向原始Octopress存储库发出拉取请求。

有没有办法让我在Github上添加原始Octopress存储库的分支到我的存储库实例?

如果没有办法,我可以安全地删除我的Github Octopress实例,在Github上分割原文,然后从我的本地存储库添加一个新的远程到新分叉的Octopress吗?

3 个答案:

答案 0 :(得分:13)

尽管人们倾向于将他们在Github上的回购视为“官方”回购,但请记住这是一种社会区别而非技术区别。从git的角度来看,每个回购都是平等的。这意味着只要您将每个提交都提取到本地仓库中,就可以安全地删除Github上的提交。然后只需在github上分叉Octopress项目,将其设置为本地存储库中的遥控器,然后推送。 Git并不关心你最初得到的任何回购。它“只是有效。”

答案 1 :(得分:6)

我不知道有什么方法可以将你的空白github副本变成github分支,所以

  

如果没有办法,我可以安全地删除我的Github实例   Octopress,在Github上分叉原始版本,然后添加一个新的远程   我的本地存储库到新分叉的Octopress?

是要走的路。删除你自己的github存储库,点击octoprocess存储库上的fork按钮并将你的fork克隆到你的本地机器。

如果您已经进行了任何更改,我会说使用git format-patch将它们存储为一系列补丁文件,并git apply-patch将这些更改应用于克隆您的新存储库可能比将旧存储库用作远程存储库(在本地计算机上)更容易。

答案 2 :(得分:0)

如果我理解OP。 他们有一个Git回购,他们现在已经决定它应该分叉另一个回购。 追溯他们希望它成为一个分支,而不会破坏使用回购的团队,需要他们定位一个新的回购。

我考虑过将新的回购重命名到位。 所以,如果团队当前克隆,并获取,并拉 example.git

  1. 设置一个新的仓库,即fork,example_fork.git
  2. 将example.git重命名为example_deprecated.git
  3. 快速将example_fork.git重命名为example.git。
  4. 我听说任何已经克隆的人都会遇到各种错误(这样就不会避免给我带来的不便)

    我也看到了使用强制推送的建议:Marking a repo as a fork in github, after the fact

    但现在我想知道讨论的主题是否更准确地说是“设置现有存储库的上游远程”。 在这里讨论: Adding remote upstream to git repo on bit bucket

    根据此处提供的反馈:What does 'git remote add upstream' help achieve? 我认为它基本上可以像我想的那样追溯分叉,就像我认为OP要求的那样。

    我还没有尝试过。