如果我想复制回购,我会使用它。
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远程命令之后满足了这些条件,那么是的,这相当于镜像克隆。