我有一个名为old-repo
的存储库和一个重复的new-repo
。在old-repo
上已经完成了一些工作,我想移植到new-repo
上。我以为可以通过将old-repo
添加为遥控器并合并更改来轻松地完成此操作,但是git fetch
会花费很多时间。
我认为存储库不是很大;它大约为250MB,其中大多数以TIFF
图片的形式存在于测试数据目录中。遥控器上也有大约200个分支。
运行git clone old-repo
大约需要10秒,但是如果我执行以下步骤:
$ git clone NEW_REPO_URL.git
$ cd new-repo
$ git remote add old-repo OLD_REPO_URL
$ git fetch old-repo -v --progress
唯一的输出是:
POST git-upload-pack (gzip 32749 to 16521 bytes)
并且没有进一步的进展,所以我不得不用CTRL-C
辞职。
我尝试仅拉入一个分支git fetch old-repo dev
或浅获取git fetch old-repo depth=1
,但是当我尝试另一条命令,例如git diff old-repo/dev
时,出现以下错误:
fatal: ambiguous argument 'old-repo/dev': unknown revision or path not in the working tree.
有人知道为什么提取可能运行得这么慢吗?或者,如果有一种方法只能提取dev
分支,那么我可以合并更改(我对远程上的所有其他分支都不感兴趣)。我曾尝试在互联网上进行搜索,但大多数结果是有关克隆速度太慢的,这不是我想要的。
编辑-替代方法:
我还没有找到解决方案,但是有解决方法。可以使用本地克隆的仓库而不是远程仓库:
git remote add old-repo ../old-repo
git remote update
这可以正常工作,但是更新过程稍微复杂一些。不必git pull old-repo dev
,您必须:
cd ../old-repo
git pull
cd ../new-repo
git remote update
git pull old-repo dev