fastclone uses reference cloning, which references objects from another clone but pulls missing stuff from origin. There are two local object stores, the reference clone and the referenced clone. Cloning semantics are identical to a regular clone, it&#x27;s just &#x27;git fastclone&#x27; instead of &#x27;git clone&#x27;, presumably without some of the standard options like --reference, --shared, --shallow, etc.<p>worktree appears to do away with the extra complication; it&#x27;s just another working tree off the same base clone. There&#x27;s a single object store. You have two commands to deal with, &#x27;git clone&#x27; and &#x27;git worktree&#x27;.<p>I think that both can be used for the same purposes and yield similar results, but fastclone is targeted at the automated build scenario whereas worktree is more developer-focused. In an automated build environment with an m:n relationship between repos and builds, I think worktree would be more complicated because you&#x27;d have to handle the &#x27;clone vs. worktree&#x27; decision yourself. It&#x27;s also apparently not great w&#x2F; submodules yet; fastclone claims to handle submodules.<p>Fastclone is another attempt to deal with the distributed-ness of git in a scenario where you don&#x27;t want or need local copies of the objects, just the working tree. We fight with this at my company; we like git, and it does some nice things, but our use case is really better suited to a centralized vcs. For people looking at fastclone, etc. - consider that maybe you don&#x27;t really want a dvcs in the first place.