Faster Git Workflow

How many times during a normal day you write git checkout or git commit –amend. Probably many, many times. Probably more than you want to admit without asking yourself what in the name of god made you choose this life path.

Nevertheless, I will try to improve that. Or at least I will try to make it hurt a little less.

Use g instead of git #

This will save you two keystrokes per command, or even more. This is the simplest trick. Simply define an alias in your bashrc(or zshrc file if you have a hipster side) and assign git to the command g

alias g="git"

But why stop there? We can define g smarter. Instead of defining it as an alias we can define it as a function, and make it act like git status if invoked without parameters.

#!/bin/bash

if [ "$#" -eq 0 ]; then
  git status
else
  git "$*"
fi

Put the above script in a ~/bin/g file, and append the following to your shells rc file

export PATH=$PATH:$HOME/bin

Gitconfig #

In the ~/.gitconfig file you can shorten command even more. Here is a snippet to give you an idea.

[alias]
  a = add 
  st = status
  ci = commit
  ca = commit --amend
  br = branch
  co = checkout
  df = diff
  dfc = diff --cached
  lg = log -p
  who = shortlog -s --
  pl = pull
  ps = push
  pru = remote prune origin

After this you can simply type g co master to check out your master branch.

Show branch and status indicator in your PS1 #

shot.png

The above indicators and branch name in the status can be easily achieved with oh-my-zsh or similar. Use it!

Create custom git scripts #

To really improve your workflow you should create programs that can make git even smarter. For example you can encapsulate a complex git command in a nicely named script.

For inspiration look at holman/dotfiles.

 
3
Kudos
 
3
Kudos

Now read this

The ASCII table

Originally I wanted to write about Unicode, but I have realized that it is better to start out with the basics, and you can’t get more basic than the ASCII table. As computers can only represent two kind of values — true or false — some... Continue →