我有两个相同远程存储库的本地克隆(urlA
):
- 镜像/ – 创建于
git clone --mirror urlA mirror
- dirB/ – 创建于
git clone --reference-if-able ../mirror urlA dirB
在dirB中,当我运行时:
git fetch
git push
镜像/会被任一命令更新吗?
我的理解是,它--reference-if-able
只是通过重用参考仓库中的对象来加速对象下载,并没有将参考仓库转换为实际接收fetch
或的远程仓库push
。然而,我在其他地方看到一条评论,暗示它可能会传播命令。
问题:
参考存储库中
是否--reference[-if-able]
触发过fetch
或?如果没有,我该如何配置 Git,以便dirB中的push
单个git push
或也能更新我的本地镜像克隆?git fetch
--reference
/--reference-if-able
做:使用
--reference
或克隆时--reference-if-able
,Git 会从引用仓库(在本例中为../mirror
)借用对象数据。这只是为了提高性能/内存效率——它有助于避免下载或存储重复的对象。--reference
/--reference-if-able
不:fetch
将类似或的命令传播push
到参考仓库。git fetch
并且git push
dirB 中的 只会与 中配置的遥控器进行交互dirB/.git/config
,而不会与 进行交互mirror/
。因此,不,
git fetch
或者git push
中的dirB
不会更新mirror/
。mirror/
仍然完全不知道 中发生了什么dirB
。如果您希望在从 dirB 获取/推送时自动更新镜像/,则需要使用自定义脚本或钩子明确配置该行为。