你如何在GitHub上分叉你自己的存储库?

Wow*_*Bow 133 git version-control github git-fork

我在GitHub上有一个公共存储库.我想复制/复制它并处理基于此存储库的新项目,但我不想影响它现在的状态.我尝试使用GitHub UI进行分叉,但它没有做任何事情.

Von*_*onC 169

我不认为你可以分叉你自己的回购.
克隆它并将其推送到新的仓库是好的但你需要:

git clone https://github.com/userName/Repo New_Repo
cd New_Repo
git remote set-url origin https://github.com/userName/New_Repo
git remote add upstream https://github.com/userName/Repo
git push origin master
git push --all
Run Code Online (Sandbox Code Playgroud)

(见git push)

请参阅" 在GitHub上分叉您自己的项目 "中描述的所有过程.


六年后(2016年),您现在拥有GitHub导入器,允许您从其他来源导入回购...包括GitHub.
请参阅" 使用GitHub导入程序导入存储库 "

https://help.github.com/assets/images/help/importer/import-repository.png

NARF答案(upvoted)也示出了这个过程.

这将允许您创建一个新的存储库,并使用其GitHub URL将旧的存储库的完整历史记录导入到新的存储库中.

再说一遍:你得到的是一个副本,而不是一个真正的分支:你不能从新的回购请求到旧回购.

  • @WowBow如果`remote`已经存在,那么做一个`git remote set-url origin https:// github.com/userName/New_Repo`.那会为你改变`.git/config`文件.请参阅http://git-scm.com/docs/git-remote (7认同)
  • 我仍然认为应该允许从同一组织中的回购协议中分叉。如果有一个对每个人通用的中央存储库,并且您希望始终从中获取更新,同时根据您的需要对分叉副本进行特定更改,该怎么办? (4认同)

nar*_*arF 92

从GitHub网站在30秒内完成一个非常简单的方法:

  1. 复制您的repo的URL.例如:( https://github.com/YourName/YourOldRepo提示:当你在github上查看你的repo的主页面时,它是URL.
  2. 单击右上角的+图标.
    https://i.stack.imgur.com/9zJgo.png
  3. 选择"导入存储库".
  4. 如果要求"旧网址",请粘贴您在步骤1中复制的网址
    https://i.stack.imgur.com/vgWd3.png
  5. 输入新仓库的名称,然后单击Begin Import.
  6. 而已!您现在拥有完整仓库的副本,包含所有提交历史记录和分支!

局限性:它实际上并不是真正的分叉.这是回购的副本.它不允许来回拉取请求.

  • 我在2010年的旧答案中忘记了GitHub Importer(2016年发布):我添加了对该工具的引用,以及您的答案. (3认同)

Fed*_*oni 18

尽管无法将您自己的存储库分叉到同一帐户中,但可以将其添加到自有的组织帐户中,并且可以通过“+”按钮轻松免费创建该帐户。

此选项的主要优点是新存储库是原始存储库的真正分支,而不仅仅是克隆。这意味着您可以将原始存储库中的更改更新为新存储库(克隆存储库则不然)。

我看到的唯一缺点是分叉的存储库不会出现在用户配置文件下,而是出现在组织配置文件下。

  • 这是唯一的答案,真正回答了这个问题。我必须强调副本/克隆不是分叉。我强烈建议警惕此页面上的其他答案。 (6认同)

小智 16

您现在可以将\xc2\xa0base 存储库标记为模板(在“设置”中,将其标记为“模板存储库”),然后在存储库的主页上单击“使用此模板创建您的第二个存储库”。

\n

从模板创建存储库与分叉存储库类似,但存在重要区别[ 1 ]

\n
    \n
  • 新的分支包含父存储库的整个提交历史记录,而从模板创建的存储库则以单个提交开始。[ 1 ]
  • \n
  • 对分叉的提交不会出现在您的贡献图中,而对从模板创建的存储库的提交则会出现在您的贡献图中。[ 1 ]
  • \n
  • 分叉可以是向现有项目贡献代码的临时方式,同时从模板创建存储库可以快速启动新项目。[ 1 ]
  • \n
\n

Github 帮助:创建模板存储库 从模板创建存储库

\n


she*_*kar 7

  1. git clone https://github.com/YOURREPO.git TargetRepoName
  2. cd TargetRepoName /
  3. git remote set-url origin https://github.com/TargetRepoName.git
  4. git push -u origin master

  • 有人可能会补充说,您需要先在 GitHub 上创建 https://github.com/TargetRepoName.git,但除此之外,这个答案是我的第一选择,并且有效。 (2认同)

Nab*_*l_H 5

达到预期效果的最简单方法是创建一个新的存储库,然后选择导入选项并提供您要分叉的存储库的 URL。

下面的图片会有所帮助:

通过 import-1 fork 自己的 repo

通过 import-2 fork 自己的 repo