Can Git push / pull over the internet to distributed repos?
I understand that Git can be used without a central repository. However, I am starting a project with several other people, and we are geographically distributed. I.e. We will never be on the same LAN to synch repos.
So my question: Is it possible to push / pull changes from each others repos over the internet? If so, how do I go about it? Easiest non-fuss way.
Thanx in advance.
4 Solutions collect form web for “Can Git push / pull over the internet to distributed repos?”
If you have SSH access to each others’ machines (which may be a little easier to set up on some networks than git:// protocol access) then it’s as easy as:
git pull ssh://username@host:/path/to/repository/.git
If direct access by any protocol isn’t possible (e.g. if you’re behind a router with NAT) then you can always send each other patches.
But Git has another way of doing this,
git-bundle, which lets you send a file (via email, or however else you send files) to your collaborators which can be pushed and pulled to and from like a repository. The author of Pro Git has a blog post tutorial on this.
If you can ssh to each others’ computers, you can do git push/pulls to each other’s computers. However, it’s not really recommended to have a completely peer-to-peer repository. One of you should maintain a “bare” repository that everyone synchronizes with, otherwise you will run into strange and annoying situations when you push to a repository that someone else is working on.
It’s really probably best to use github, unless you are working on something closed-source and can’t afford the fees for private repositories.
You need some kind of “direct” not-nat-ed connection (meaning if you are behind a router it is a problem). If I were you I’d go for github
The help section explains everything nicely.
I would suggest using a central repository location that you can all push and pull from via ssh. This will prevent the issue mentioned above that are caused by pushing to a repo someone is working in.
See this link for good setup info: