What’s so great about git?

On the top of my head:

  • its distributed aspect (each developer has a copy of the repository)
  • The ability to handle complex merges very quickly
  • the possibility to switch from task to task, shelve his work, go back to it…
  • cheap branching (instant switch: it just writes a few bits in a file! And it does not consider a branch as a directory like SVN does)

The main difficulty is to establish a workflow between the different repos, without breaking the history of what has already been published (pushed to a public repo).

alt text
(source: infoq.com)

The rebase in particular can be difficult to use correctly at first, since it does rewrite the history of a branch, and that changes the SHA1 which is associated with it: to a public branch, that means lots of merges from the other developers pulling from it.

Leave a Comment