"git remote add--mirror=fetch"会和"git clone--m



如果我想复制回购,我会使用它。

git clone --mirror $SRC $DST

但此命令不要求在$DST中存在任何repo。这通常是可以的,但如果我想从多个进程同时发出Git命令,这可能会导致一些竞争条件,因为在执行命令之前不存在可锁定的文件对象。

如果我只想跳过$DST的存在性测试,我想我可以做

mkdir -p $DST
cd $DST
git init --bare 
git remote add origin --mirror-=fetch $SRC 2>/dev/null || true
git remote update

这会与git clone --mirror $SRC $DST产生完全相同的回购吗?

如果您查看为git clone --mirror所做的测试,您会发现镜像克隆是一个带有:的克隆

  • fetch参考规范设置为+refs/*:refs/*
  • git config --bool remote.origin.mirror设置为true

如果在git远程命令之后满足了这些条件,那么是的,这相当于镜像克隆。

最新更新