git clone --mirror 和 pull 有什么区别

What is the difference between git clone --mirror and pull

我的理解是clone和pull真的没有区别。或者换句话说 git clone -- baregit pull 做同样的事情。但是,由于 git clone --mirror 更新了本地引用,它会与 pull 不同吗?


编辑:我错误地假设 git 克隆默认值是 --bare。但是 --bare 将在没有工作目录的情况下设置。

git clone 创建一个新的存储库。以前没有仓库,现在有了。

git pull 在现有存储库中执行操作。

这似乎是一个很大的不同!

除此之外,git pull所做的是:

  • 运行git fetch,然后
  • 运行 第二个 Git 命令。

由于 --mirror 克隆是 --bare 克隆,因此没有工作树,git pull 运行 的第二个命令将失败,无论是否你选择合并或变基。

git fetch所做的是documented。对于镜像克隆,默认的 refspec 是 +refs/*:refs/*,因此所有引用都将替换为从其他 Git.

获得的引用