ZSH has some pretty nifty TAB-completion. But I found the git completion to be slow, especially on large repo’s. I wasn’t the only one. Some suggest to disable the context-aware completion completely, but I prefer Victor Quinn’s pointer to this solution which just upgrades the completion logic to the latest version.

For future reference, on Mac OS X the file is located at /usr/share/zsh/x.x.xx/functions/_git, and this version (local copy) seems to work well.