如何将我的单独仓库组合起来,就好像它是从叉子开始的那样?

时间:2011-04-03 07:02:39

标签: git github git-branch fork

我有两个github回购,我都是管理员:

两者都是使用来自... svn存储库的git-svn创建的。现在,我想将两个回购合并为一个连贯的视图(请原谅我的术语不准确)。我想有一个回购(https://github.com/sghael/OSQA),有几个分支:

  • master - 这个与svn自动同步,并且不会收到任何本机git提交。 (我们已经通过执行git svn rebase的cron作业实现了这种自动同步)
  • “其他主人”(我们称之为 osqaplus ) - 我们将在此分支上进行整合工作,我们将不时地合并来自主人的新内容。
  • 任意数量的开发/功能分支,将分支osqaplus。

现在,我想做的是从我自己的存储库(ripper234)中获取更改,并将它们添加到sghael的存储库,就好像我最初从他那里分配。我想这可以通过创建一个新的fork来实现,并将我的更改合并到那里,但是我太新了,不能尝试自己完成这个。此外,当我查看sghael的项目并点击“fork”时,我只是被带到我的own repository,并且没有创建实际的fork。我是否必须重命名现有的仓库以使其正常工作?

2 个答案:

答案 0 :(得分:1)

如果两个存储库都是使用与git-svn相同的选项创建的,那么提交将是相同的,并且两个存储库应该已经是forks(在git意义上)

要查看是否是这种情况,您可以执行以下操作:

git clone …/OSQA # this will clone the repo and create a remote named 'origin'
git remote add ripper …/osqa
git fetch
gitk --all # you should see all branches, check the svn-history is in fact the same between origin and ripper remotes

答案 1 :(得分:1)

我知道你希望sghael / OSQA成为ripper234 / osqa的一个分支。如果是这种情况,那么你应该重命名sghael / OSQA(例如sghael / OSQA_renamed)并从ripper234 / osqa创建一个新的分支。

然后唯一缺少的是将您想要的更改从sghael / OSQA_renamed推送到ripper234 / osqa。一种方法是将更改添加到新鲜的fork(sghael / OSQA)并创建pull请求,或者通过将其作为远程添加到sghael / OSQA_renamed存储库直接推送到ripper234 / osqa。