Is there a performance difference between using the SSH protocol (ssh://) or the Git (git://) protocol for pushing?
If I want to use Git, don’t I have to setup the git server dameon and open that port in iptables? Seems like a lot of extra work, and also additional memory usage for the dameon, when SSH is already setup and working.
There must be a benefit to using the native git:// protocol because GitHub uses it, instead of ssh://.
First of all, GitHub uses ssh as the main protocol and the read-only access is given through the git protocol.
git:// will be the fastest way for cloning a project since it does not have the overhead of encryption and authentication. But otherwise, both ssh:// and git:// have the same git specific optimizations for transport. That is why many projects, including for those on GitHub, have git:// for read-only access and ssh for pushing to.
So to answer your question, ssh:// is best for pushing, because git:// is NOT used for pushing.