This allows things like the package system to detect when something goes wrong with the git transfer without catching everything else, too.
This can be used to provide authentication for accessing repositories over HTTP(S), such as private repositories on GitHub.