What is a git ninja exactly?

What is a git ninja exactly?

The git toolchain is so widely used, that most developers have to learn how to use it to some reasonable degree. I'm sure most people have run into a developer claiming that she was a true git ninja, but what does it really take?

Lets play with the thought of having a git ninja academy...

Level 1: academy scholar

The academy is where would-be ninja start; they are not actually considered ninja until they graduate. To get to level 1, you need this:

  • A basic understanding of the difference between the concept "fork" and the command "clone".
  • The concept of a git repository

Level 2: Genin

Genin are the lowest level of ninja, sent on low-risk jobs. They know how to modify code on a single branch that someone probably helped them set up. To get to level 2, you need to know the following commands:

  • add
  • commit
  • push
  • pull
  • status

Level 3: Chuunin

Chuunin are ninja who are qualified to watch over and guide other ninja. At this level, the ninja knows how to work with different branches and handle merge conflicts. To get to this level, you need to know about feature branches (the concept) as well as the following commands:

  • init
  • checkout
  • branch
  • reset
  • merge
  • fetch
  • diff
  • log
  • tag
  • clean
  • mv
  • rm

Level 4: Jounin

Highly experienced ninja. It is as of yet unknown what one has to undergo to become one. At this level, you are able to carry out more advanced operations that typically involves more advanced configuration, cleanup of botched commits and various error handling.

  • stash
  • revert
  • rebase
  • cherry-pick
  • blame
  • show
  • am
  • submodule
  • fsck
  • apply
  • archive

Level 5: Kage

The Kage stand equally with the rulers of their countries and are the leaders of ninja society. At this level, you are able to automate merge conflict resolution, find commits with bugs in them and even rewrite history. The commands are:

  • bisect
  • notes
  • filter-branch
  • rerere
  • bundle

Finishing notes

My take is that most developers should quickly attain level 3. Otherwise they'll lack the skills needed to work with the other developers. Each team should have one level 4 ninja to weed out more complicated edge cases. Level 5 is only for teams with special needs.

The illustration is copyright Seth Werkheiser, see https://www.flickr.com/photos/sethw/.

 

To view or add a comment, sign in

More articles by Michael Zedeler

  • System bankrupcy and technical debt

    Slow teams and non-existing standards As some point you may find yourself working with or as member of a development…

    7 Comments
  • 4 paths to utterly useless user stories

    So whats the big deal with user stories? Since the proliferation of agile software development, I've had the…

    1 Comment
  • Databases, mysql and the forbidden

    Lets just recapitulate - relational databases are good at ensuring data consistency, right? So lets try this: CREATE…

    2 Comments

Others also viewed

Explore content categories