【发布时间】:2020-04-29 02:11:18
【问题描述】:
克隆和拉取之间确实没有区别,这是我的理解。或者换句话说,git clone -- bare 和 git pull 也是如此。但是由于 git clone --mirror 更新了本地引用,它会与 pull 不同吗?
编辑:我错误地认为 git clone 默认是 --bare。但是 --bare 将在没有工作目录的情况下设置。
【问题讨论】:
克隆和拉取之间确实没有区别,这是我的理解。或者换句话说,git clone -- bare 和 git pull 也是如此。但是由于 git clone --mirror 更新了本地引用,它会与 pull 不同吗?
编辑:我错误地认为 git clone 默认是 --bare。但是 --bare 将在没有工作目录的情况下设置。
【问题讨论】:
git clone 创建一个新的存储库。以前没有存储库,现在有了。
git pull 在现有存储库中执行操作。
这似乎是一个很大的不同!
除此之外,git pull 所做的是:
git fetch,然后由于--mirror 克隆是--bare 克隆,因此没有工作树,git pull 将运行的第二个命令将失败,无论您选择合并还是变基。
git fetch 所做的是documented。对于镜像克隆,默认的 refspec 是 +refs/*:refs/*,因此所有引用都被替换为从其他 Git 获得的引用。
【讨论】: