For hosting see Gitolite and Gitlab.


Simple, auto:

git bisect start BAD_COMMIT GOOD_COMMIT
git bisect run test_runner tests/

Reset Local Master Branch to State of Remote Master

git checkout master
git branch failmaster
git reset --hard origin/master


  1. go to master branch
  2. (optional) save it as “failmaster” and go there (we need to go somewhere else than master for the next step)
  3. reset to origin/master, ignoring all local changes

Push all branches from one remote to another

To push all branches present in the remote origin to the new remote serv:

git push $destination +refs/remotes/$source/*:refs/heads/*


Log with Author Date

By default git shows the “commit” date. When rebasing a branch all commit dates are a few seconds old even if they were authored months ago. Here are my short log entries - one with relative dates and another with ISO dates, e.g. 2014-06-04 15:11:47.

l = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%ar) %C(bold white)<%an>%Creset' --abbrev-commit
# hack to remove timestamp offset
lf = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%ai%x08%x08%x08%x08%x08%x08) %C(bold white)<%an>%Creset' --abbrev-commit