1

如果我想复制一个 repo,我使用它。

git clone --mirror $SRC $DST

但是这个命令不需要 repo 存在于$DST. 通常没问题,但如果我想从多个进程同时发出 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吗?

4

1 回答 1

1

如果您查看为 a 完成的测试git clone --mirror,您会看到一个镜像克隆是一个:

  • 一个fetchrefspec 设置为+refs/*:refs/*
  • 设置git config --bool remote.origin.mirror为真

如果在您的 git 远程命令之后满足这些条件,那么是的,这将等同于镜像克隆。

于 2020-11-24T07:26:51.877 回答