&gt; Mercurial allows many different workflows (bookmarks, anonymous heads, named branches, topics), but with git you&#x27;re pretty much stuck with the &quot;standard feature branching&quot; workflow.<p>Mercurial is internally more complex than Git, as shown by the concepts you mention (bookmarks, named branches, etc) and all the various extensions. By contrast, Git is just a malleable graph of patches and tools to manipulate it. This is very well explained in the first commit(!) of git, which explains the concepts and the internal database layout.<p>In Git, there might be a &quot;default workflow&quot; that the tools are geared towards but you can use rebase and cherry-pick and all the other tools to enable just about any workflow you can imagine. Of course, this allows you to turn it into a big mess and there are some weak spots (like tracking a lot of bugfix commits backported to several release branches) but the concept is simple and sound.