Sharing code requires the git server and open network ports on your development computer. With non-static IP you can't point to your peer's computer without needing to change the remote settings every time you sync.
Basically, for convenience, you will need a git server accessible to your team to sync up code in a 1-many fashion instead of the many-many raw git. Github/gitlab provide exactly that with added features on top. They differentiate by the added features only.
Not really. It can be done via email using standard git commands like git format-patch, git send-email, and git am.
I don't find email-git much more convenient unless I've been living under a rock and it got much easier using the free email providers for git in the last few years.
Which are? The settings in git format-patch and git send-email will handle embedding and sending. Also, as long as your email client can save emails to disk, git am can do the rest.
> I don't find email-git much more convenient unless I've been living under a rock and it got much easier using the free email providers for git in the last few years.
I've tested it with my ISP email (Comcast) and Gmail. Other than having to enable "insecure" access for Gmail, there wer e no problems at all. Hotmail/Live on the other hand, would mangle the email message.