Reputation: 2264
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.
Upvotes: 6
Views: 2296
Reputation: 125147
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.
Upvotes: 12
Reputation: 180
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:
http://toolmantim.com/thoughts/setting_up_a_new_remote_git_repository
Upvotes: 2
Reputation: 76660
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.
Upvotes: 5
Reputation: 4845
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.
Upvotes: 3