我在 github 上创建了一个存储库,并且有一段时间没有从父级拉取。
从那时起,在父级(包括许多大文件)中积累了很多更改。我已经相对较快地将它们拉入我的本地仓库,并在此基础上做了一些提交。
现在我尝试将其推回我的 github 存储库,但由于我的原始存储库缺少我刚刚从父级提取的所有更改,因此上传速度很慢,这将需要很长时间。
有没有办法直接将对象从一个 github 存储库传输到另一个,某种远程 git fetch ?
如果您在本地进行了所有修改,并且您的 fork 的拉取请求、问题、wiki 等中没有任何需要保留的内容,那么您可以。
添加/更改您的遥控器以指向新的存储库(如果您更改了 url)。
git remote set-url <new github url>
获取并推送。
fetch 应该没有发现任何变化,push 应该只发送你的新快照。
我已经查看了 Github帮助和API,看看他们是否提到了这样做的任何方法,但什么也没找到。他们的同步指南始终明确包括通过本地存储库进行拉取和推送。
重要的是要了解您所要求的不是 Git 的一部分。Git 不提供发出远程 Git 命令的方法。这意味着 Github 需要自己实现这个功能。
一种不同的方法可能是为 Git 存储库提供“外部缓冲”的服务(尽管我不知道有任何此类服务)。这个想法是你告诉主机如何处理存储库,当它完成时,它将删除它的存储库的本地克隆。
有一个 API 调用几乎可以满足您的需求:它合并 Github 上的两个分支,而无需通过本地存储库。但是,它只能处理来自同一存储库的分支。
我的建议:在 Github上打开一个问题,并要求他们实现直接同步。我认为,既然已经有合并API 调用,成本可能不会太高。