Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在GitHub上建立自己的存储库?_Git_Github_Version Control_Git Fork - Fatal编程技术网

如何在GitHub上建立自己的存储库?

如何在GitHub上建立自己的存储库?,git,github,version-control,git-fork,Git,Github,Version Control,Git Fork,我在GitHub上有一个公共存储库。我想复制/复制它,并基于此存储库处理一个新项目,但我不想影响它现在的状态。我尝试使用GitHub UI进行分叉,但它没有做任何事情。只需克隆它,创建新的空白回购,然后推到它。我认为你无法分叉自己的回购。 克隆它并将其推送到新的回购协议很好,但您需要: git clone https://github.com/userName/Repo New_Repo cd New_Repo git remote set-url origin https://github.c

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

只需克隆它,创建新的空白回购,然后推到它。

我认为你无法分叉自己的回购。
克隆它并将其推送到新的回购协议很好,但您需要:

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
(见附件)

请参阅“”中描述的所有流程


六年后(2016年),您现在拥有了允许您从另一个来源导入回购的。。。包括GitHub。
见“

这也说明了这一过程

这将允许您创建一个新的存储库,并使用其GitHub url将旧存储库的完整历史导入新存储库

再次强调:你得到的是一份副本,而不是真正的fork:你不能从新回购协议向旧回购协议发出拉取请求

同样(bis),如所述,这不是一个真正的FORK

如果我有一个foo,它是一个开源项目的规范源代码回购协议,我希望其他人能够提供该协议,并有权进行PR,那么我不想在该回购协议中工作,我想要一个可以用来针对我的项目发布适当PRs的协议。
我在GitHub中创建了第二个帐户并开始着手解决这个问题


刚刚试过这个,它成功了:

  • 将您的回购协议存入组织帐户
  • 改名
  • 将所有权转移回你自己

  • 我按照这些“复制存储库”的官方指示进行操作,它似乎起到了作用

    要在不分叉的情况下创建存储库的副本,需要对原始存储库运行一个特殊的clone命令,然后镜像推送到新存储库。这适用于任何git存储库,而不仅仅是托管在GitHub上的存储库

  • git克隆targetReportName
  • cd targetReportName/
  • git远程设置url源
  • git-push-u源主机

  • 不幸的是,VonC的公认解决方案对我来说并不适用

    远程:未找到存储库

    工作内容如下:

  • 在github创建新的_repo
  • git克隆新报告
  • 光碟新回购
  • git远程添加上游旧_repo.git
  • git向上拉主控器
  • git推送源主机

  • 我从中获得了以上所有信息。

    实现所需效果的最简单方法是创建一个新的存储库,然后选择导入选项并提供您希望分叉的回购的URL

    以下图片将有助于:


    对于使用GitHub的非技术人员,这里有一个简单的解决方案,可以替代上面的其他优秀答案。您需要的只是一个GitHub桌面应用程序

  • 从浏览器中打开您自己的project repo,并以zip格式下载,例如
    您的project master.zip
  • 解压并将其重命名为您的新回购协议
  • 打开GitHub桌面,通过浏览将新回购添加到解压的本地路径new repo。
  • 通过单击Publish按钮将其发布到github。不要忘记添加名称和描述:)

  • 创建新回购协议时,可以使用repo.git url从另一个回购协议导入。这花了我30秒。

    从GitHub网站上用30秒的时间完成这项任务非常简单:

  • 复制您的回购协议的URL。例:
    https://github.com/YourName/YourOldRepo
    (提示:当您在github上查看回购协议主页时,它是URL
  • 单击右上角的
    +
    图标。
  • 选择“导入存储库”
  • 在请求“旧URL”的位置,粘贴您在步骤1复制的URL
  • 输入新回购协议的名称,然后单击
    开始导入
  • 就这样!您现在有了完整回购协议的副本,包括所有提交历史记录和分支

  • 限制:它实际上不是一个真正的fork。它是repo的副本。它不允许来回拉取请求。

    您现在可以将基本存储库标记为模板(在“设置”中,将其标记为模板存储库),并在repo的主页上,单击“使用此模板”创建第二个repo


    Github帮助:

    虽然您不可能将自己的回购交易转入同一个帐户, 可以将其存入自有组织帐户,通过“+”按钮可以轻松地免费创建该帐户

    这一方案的主要优点是,新回购协议是原始回购协议的真正分支,而不仅仅是克隆。 例如,这意味着您可以将原始回购协议中的更改更新为新的(克隆回购协议的情况并非如此)

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

  • 在github webfrontend上创建新的空回购
  • 在旧版回购的克隆中,更换远程并推送:

  • 这结合了@mcepl的答案和@wadesworld的注释,与在github上创建新存储库时显示的官方解决方案非常相似(标题为“…或从命令行推送现有存储库”)

    你到底想实现什么?也许你可以通过分支来解决它?我想得到一份项目的副本,并扩展该项目以做其他事情,但不影响原始项目。就是这样。不管怎样,都解决了。@Artefact2..对不起,我以为mcepl的解决方案解决了我的需要,但它没有。在我克隆了该项目之后使用“git clone”,我不想指向原始的回购协议,而是指向我在github上创建的一个新回购协议。我如何才能做到这一点?@Artefact2你明白我的问题了吗?与创建一个新回购协议相比,fork的好处在于图表和网络历史是链接在一起的。很遗憾github不允许这样做。谢谢。我想得太多了.我把它克隆到我的本地机器上,创建了一个空白的repo,但是,当我尝试git origin时..它说远程origin已经存在。我应该如何解决这个问题?现在呢
    git remote remove origin
    git remote add origin git@github.com:account/new.git
    git branch -M main
    git push -u origin main