It's implemented in bash but I use it with almost no modification with the Korn shell.
Recently ZSH support has been added to git-completion.bash, but it's still only in the "next" branch of git: http://git.kernel.org/?p=git/git.git;a=blob_plain;f=contrib/...
It's implemented in bash but I use it with almost no modification with the Korn shell.