2

我在 github 上创建了一个存储库,并且有一段时间没有从父级拉取。

从那时起,在父级(包括许多大文件)中积累了很多更改。我已经相对较快地将它们拉入我的本地仓库,并在此基础上做了一些提交。

现在我尝试将其推回我的 github 存储库,但由于我的原始存储库缺少我刚刚从父级提取的所有更改,因此上传速度很慢,这将需要很长时间。

有没有办法直接将对象从一个 github 存储库传输到另一个,某种远程 git fetch ?

4

2 回答 2

0

如果您在本地进行了所有修改,并且您的 fork 的拉取请求、问题、wiki 等中没有任何需要保留的内容,那么您可以。

  1. 在 GitHub 上删除你的 fork(或者离开它,或者重命名它)
  2. 再次在 GitHub 上 fork 上游存储库。
  3. 添加/更改您的遥控器以指向新的存储库(如果您更改了 url)。

    git remote set-url <new github url>
    
  4. 获取并推送。

fetch 应该没有发现任何变化,push 应该只发送你的新快照。

于 2013-05-22T20:42:36.397 回答
0

我已经查看了 Github帮助API,看看他们是否提到了这样做的任何方法,但什么也没找到。他们的同步指南始终明确包括通过本地存储库进行拉取和推送。

重要的是要了解您所要求的不是 Git 的一部分。Git 不提供发出远程 Git 命令的方法。这意味着 Github 需要自己实现这个功能。

一种不同的方法可能是为 Git 存储库提供“外部缓冲”的服务(尽管我不知道有任何此类服务)。这个想法是你告诉主机如何处理存储库,当它完成时,它将删除它的存储库的本地克隆。

有一个 API 调用几乎可以满足您的需求:它合并 Github 上的两个分支,而无需通过本地存储库。但是,它只能处理来自同一存储库的分支。

我的建议:在 Github上打开一个问题,并要求他们实现直接同步。我认为,既然已经有合并API 调用,成本可能不会太高。

于 2013-05-26T08:53:03.007 回答