1

出于某种原因,我必须为中央仓库创建一个镜像仓库。

中央仓库 <-----> 镜像仓库 <-----> 开发仓库

风险在于,推入镜像仓库可能会覆盖中央仓库的历史。

如果某人(J 先生)将新的提交(commit_X)推送到中央仓库,同时镜像将在没有获取的情况下推送,那么此推送将覆盖中央仓库的历史记录。结果,commit_X 将被删除。

J 先生需要再次拉取、合并和推送他的 commit_X。

根本原因是,clone --mirror如果push使用.--mirrorpush

我知道可以安装一个钩子脚本以push --mirror在 centtrol repo 端禁用。

但是有没有办法在镜像回购端禁用它?

[EDIT1]添加了一个插图来帮助您理解这个问题。

在此处输入图像描述

4

1 回答 1

0

只需编辑您的.git/config和未设置remote.<remote>.mirror的,如下所述git help push

--mirror
不是命名每个要推送的 ref,而是指定将 refs/ 下的所有 refs(包括但不限于 refs/heads/、refs/remotes/ 和 refs/tags/)镜像到远程存储库。新创建的本地 refs 会被推送到远端,本地更新的 refs 会在远端强制更新,删除的 refs 会从远端移除。如果设置了配置选项 remote..mirror,这是默认设置。

于 2013-07-04T03:38:17.820 回答