git-gui clone: 每个"Clone Type"有什么区别?

git-gui clone: What is the difference of each "Clone Type"?

使用标准 git-gui (v 0.20.GITGUI),有三个 "Clone type" 选项,当您想要克隆存储库时:

这三种有什么区别?
这是 git-gui 的东西,还是有等效的命令行?

这些消息来自commit ab08b36, gitgui-0.9.0, Sept. 2007 (ten years ago!), by Shawn O. Pearce (spearce)

肖恩当时评论:

If the source repository is on the local disk we try to use a hardlink to connect the objects into the new clone as this can be many times faster than copying the objects or packing them and passing the data through a pipe to index-pack.
Unlike git-clone, we stick to pure Tcl [file link -hard] operation thus avoiding the need to fork a cpio process to setup the hardlinks.

If hardlinks do not appear to be supported (e.g. filesystem doesn't allow them or we are crossing filesystem boundaries) we use file copying instead.

所以没有 精确 git 克隆等价物。
但是 shared 和 hardlink 只适用于克隆本地 repos,相当于 git clone -l and git clone --shared.
完整将复制所有包文件。