如何将组织中的仓库分配到相同组织,以便我可以定期将分支与上游存储库同步?
在这个StackOverflow问题Copy/fork a git repo on github into same organization中,提问者想要创建两个单独的断开连接的repos,它们是从另一个克隆的。
如何创建一个多人可以从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之间的核心应用程序而不是“发送”分支交叉存储库。 =)