Git is (has been) in the process of rewriting many shell commands etc in C. There are a few reasons for this, but part of the reason is to make Git more portable.
This work is slow, and a lot of the progress seems to be driven by the Google Summer of Code program (sort of like open source interns), so I suspect it will be a while before all the shell scripts are rewritten.