Technically a push does not destroy heads in git either (that requires a gc), but contrary to mercurial &quot;detached heads&quot; are not visible by default, you have to explicitly go and hunt for them.