Type Less, Get More Done by Rolling Your Own Git Subcommands
blog.intuition.appnot convincing examples. I have much better subcommands, cifixup for example which fixups each given file to its last change, when it was after origin/master. no need to rebase -i, just like the magit c F. I use it daily. my .gitconfig is 200 lines long with lots of aliases and functions. git is a fantastic piece of sw to work with and extend, just locking is a mess and alpha quality. only writes need to be locked, not reads. even writes can be serialized and locking can go away at all.