git fork repo到同一个组织

时间:2017-08-18 04:08:35

标签: git github version-control

如何将组织中的仓库分配到相同组织,以便我可以定期将分支与上游存储库同步?

在这个StackOverflow问题Copy/fork a git repo on github into same organization中,提问者想要创建两个单独的断开连接的repos,它们是从另一个克隆的。

如何创建一个多人可以从1个组织中查看和处理的分叉项目?

<小时/> 更多背景

我们组织中的一个回购是一个模板框架,我们用它来构建许多其他应用程序。我希望解决当我们向此模板添加更新/补丁时的问题,其他回购可以解决这些变化。

我不想分叉到我的个人帐户,因为这对将来的组织来说是非常可见的。

1 个答案:

答案 0 :(得分:2)

我遇到了类似的情况,并且遇到了克隆已完成的分离项目的解决方案。对于一些简单的版本,您可以跨存储库发送分支,并通过拉取请求手动同步它们。

我已经拥有了原始克隆的存储库,但是如果你没有它,请按照@larsks answer克隆并创建一个repo的副本:

$ git clone git@github.com:org/myrepo-original myrepo-new
$ cd myrepo-new
$ git remote set-url origin git@github.com:org/myrepo-new
$ git push origin master

执行此操作后,返回包含原始存储库的目录(origin仍然指向 git@github.com:org / myrepo-original 的示例)并使用以下命令添加指向克隆的远程

$ git remote add cloned git@github.com:org/myrepo-new

你的原始回购现在应该是这样的:

$ git remote -v

origin  git@github.com:org/myrepo-original (fetch)
origin  git@github.com:org/myrepo-original (push)
cloned  git@github.com:org/myrepo-new (fetch)
cloned  git@github.com:org/myrepo-new (push)

在此之后,您可以push分支包含您想要cloned repo的内容,并创建拉取请求以更好地可视化内容并合并。

假设您要使用原始版本中的master更新克隆存储库中的master

$ cd myrepo-original
$ git checkout master
$ git checkout -b master-original
$ git push cloned master-original

从GitHub界面上的myrepo-new创建PR,使用基数master并比较为master-original

  

注意:虽然我认为这可以解决您的问题,但我建议您根据您提供的进一步背景来研究可能性并转换您的核心/模板回购一个submodule。在我看来,这使得更容易更新repos之间的核心应用程序而不是“发送”分支交叉存储库。 =)