从镜像克隆后获取重新下载所有内容
Fetch after clone from mirror re-downloads everything
我有一个远程仓库的本地镜像,以及从这个本地镜像克隆的工作副本。
现在我确实获取了这个工作副本(针对远程)并期望它在镜像创建后获得最近添加的更改。
但它似乎再次下载了所有内容的全部历史记录,从传输的数据量来看:
git.exe fetch --progress -v "origin"
remote: Enumerating objects: 3443117, done.
remote: Counting objects: 100% (94/94), done.
remote: Compressing objects: 100% (60/60), done.
Receiving objects: 57% (1966278/3443117), 30.85 GiB | 5.32 MiB/s
有人可以解释一下这是怎么回事吗?我想我没有得到有关镜像克隆的信息,也没有得到有关 fetch 如何确定需要下载哪些数据的信息。我应该能够使用我在本地拥有的任何数据,并且只能从远程服务器获取更改,如何?
使用的命令也不算太特殊:
git clone --mirror --reference c:\WORK\product git@github.com:company/product.git c:\TEST\mirror
cd mirror
git remote update
git clone --progress -v "c:\TEST\mirror" "C:\TEST\working"
然后我在获取之前替换了工作副本上的原点 url。
更新:
我的镜像缺少所有参考配置。它通过接收和解析增量完成,但随后以“错误:无法获取来源”结束,没有进一步的细节,显然克隆最终不完整。
原来我的镜子其实是不完整的。一开始我不确定我所看到的是否不适合裸仓库,而且 git 输出也没有说清楚。
不知何故,初始克隆没有配置任何引用,后续更新和获取也没有配置。
没有 --reference
的干净 clone
解决了我的问题。现在 refs 在镜像上可见,并且从中检出的工作副本只会按需下载较新的更改。
我有一个远程仓库的本地镜像,以及从这个本地镜像克隆的工作副本。 现在我确实获取了这个工作副本(针对远程)并期望它在镜像创建后获得最近添加的更改。 但它似乎再次下载了所有内容的全部历史记录,从传输的数据量来看:
git.exe fetch --progress -v "origin"
remote: Enumerating objects: 3443117, done.
remote: Counting objects: 100% (94/94), done.
remote: Compressing objects: 100% (60/60), done.
Receiving objects: 57% (1966278/3443117), 30.85 GiB | 5.32 MiB/s
有人可以解释一下这是怎么回事吗?我想我没有得到有关镜像克隆的信息,也没有得到有关 fetch 如何确定需要下载哪些数据的信息。我应该能够使用我在本地拥有的任何数据,并且只能从远程服务器获取更改,如何?
使用的命令也不算太特殊:
git clone --mirror --reference c:\WORK\product git@github.com:company/product.git c:\TEST\mirror
cd mirror
git remote update
git clone --progress -v "c:\TEST\mirror" "C:\TEST\working"
然后我在获取之前替换了工作副本上的原点 url。
更新:
我的镜像缺少所有参考配置。它通过接收和解析增量完成,但随后以“错误:无法获取来源”结束,没有进一步的细节,显然克隆最终不完整。
原来我的镜子其实是不完整的。一开始我不确定我所看到的是否不适合裸仓库,而且 git 输出也没有说清楚。
不知何故,初始克隆没有配置任何引用,后续更新和获取也没有配置。
没有 --reference
的干净 clone
解决了我的问题。现在 refs 在镜像上可见,并且从中检出的工作副本只会按需下载较新的更改。