将github上的git存储库复制/分叉到同一组织中

llycmphe  于 2022-11-20  发布在  Git
关注(0)|答案(8)|浏览(221)

我在github上有一个repo,其中包含一个部署到两个不同域的web应用程序,该应用程序在这里和那里有轻微的逻辑分支,根据部署到哪个域而表现不同。
现在,我想将其拆分为两个单独的存储库,每个域一个。
Github不让我把它分叉到同一个组织中,搜索“git duplicate repo”建议我应该直接克隆和镜像推送它,但这似乎是为了保持两个repo同步,这是我不想做的。
最好的方法是什么?如果可能的话,我希望在新副本中保留旧的提交历史。

dauxcl2d

dauxcl2d1#

只需创建一个新的存储库,并从工作副本推送到它:

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

现在您有了一个新的存储库myrepo-new,它与myrepo-original相同。

unftdfkk

unftdfkk2#

如果你不需要fork关系(例如,不管出于什么原因,你想要某种解耦的备用repo),复制repo作为你的Google发现和larsks的答案的大纲是可以的。
如果你 * 确实 * 想让它成为一个fork,请联系Github支持(support@github.com或https://github.com/support),他们会在同一个组织中为你创建一个fork(他们对这个也不挑剔,你只需要为repo提供一个替代名称,因为repo名称在一个账户中必须是唯一的)。

更新:用户Steve Rice在下面的评论中报告说,GitHub支持部门表示,支持部门目前不会/不再在您的帐户中设置第二个分叉。
GitHub最近发布了一篇文章,介绍了将回购协议分叉到同一个账户的可能替代方案。You can read that article here

8ftvxx2r

8ftvxx2r3#

在**+menu on top of the page上使用Github的导入存储库**选项,或者直接打开
https://github.com/new/import
这会创建一个新的仓库,其内容与复制的仓库完全相同。缺点(与Iarsks对git命令的回答相同)是它不被Github视为fork。

ewm0tg9j

ewm0tg9j4#

我知道这是一个超级古老的线程,但我偶然发现它寻找的答案,随后找到了一个更好的方法:
把你想复制的仓库做成模板仓库。它是仓库设置顶部的一个复选框。完成后,仓库顶部的代码按钮旁边会有一个绿色的大按钮,标记为“使用此模板”。点击它,它会把仓库复制到你想复制的任何账户中。

ckocjqey

ckocjqey5#

另一种方法是添加要复制的原始回购协议,作为当前回购协议的远程。

#create a new repo in the org1 organization called myrepo-new

在本地终端中,运行:

git clone git@github.com:org1/myrepo-new
cd myrepo-new
git remote -v #shows current repo link on github as origin
git remote add name-for-remote https://github.com/org1/repo-old
git remote -v #shows repo-old as name-for-remote
git fetch  name-for-remote
git merge name-for-remote/branch-to-get-from-remote
#Now fix any conflicts if present
#If number of files/commits is very high, the desktop client may hang when you try to commit your changes after merge. Try switching to Git Shell if this happens.
git status 
git commit -m "commit message"
git push origin master
u4vypkhs

u4vypkhs6#

替代解决方案:
创建一个新的组织并在那里分叉。如果回购是私有的,它在新的组织中也会保持私有。然后你可以给予外部开发人员或任何你想要的人访问分叉的回购,他们可以把PR提升回原始回购。

yuvru6vn

yuvru6vn7#

你可以将第一个存储库标记为模板(在设置中),然后在创建新的存储库时“使用”该模板存储库。

0pizxfdo

0pizxfdo8#

Github不让我把它分到同一个组织
自2022年6月起,GitHub * 不 * 允许你在同一个组织内分叉
(But仅适用于GHES-- GitHub企业服务器--/GH云,* 而非 * github.com)。

Improved innersource collaboration and enterprise fork policies(第一个字母)

以前,存储库分支的三个方面会对内部源协作和管理造成摩擦:
1.无法在单个组织内派生存储库。
1.无法将具有内部可见性的存储库派生到组织。
1.企业所有者无法控制存储库可以分叉到哪里。
我们一直在寻找新的方法来改进仓库协作和we welcome your ideas

将存储库派生到与其父存储库相同的组织

以前,存储库只能派生到不同得组织或用户帐户.

现在,存储库可以分叉到其父存储库所在的组织,解决了人们在一个组织中工作而不想将存储库分叉到不同组织或用户帐户的情况。

相关问题