In this movie I want to talk about hosting Git repositories.
Now obviously I am not talking about the local repository that you just have on your machine,
all you need is Git to be able to do that.
What I'm talking about are the remote repositories that are hosted somewhere where multiple users
can all have access to that one remote.
To do that, we need to have some kind of a Git server set up to handle requests from all
those different users at the same time.
There is basically two ways you can go with it.
You can either have a hosting company take care of the hosting for you, or you can self-host.
We've already seen how a hosting company works, because in the chapter on remotes, we were
working with GitHub.
GitHub is the oldest, most popular, and probably most reputable of the Git hosting companies.
But they're not the only game in town, Bitbucket and Gitorious are also both very popular and
rising quickly in popularity, so I encourage you to check out all three.
See what their different pricing plans are like, see what features they offer, and decide
which one you like the best.
I think you can't go wrong with any of them.
The advantage of using a hosting company is that either for free or very little money,
they take care of everything for you.
So they handle all of the server administration.
They handle things like data backups.
They make configuration easy.
They give you a graphical user interface to do it.
And they even give you tools to look at the information in your Git repository in interesting ways.
However, hosting to these companies is not for everyone.
For some people you need to go with self-hosting.
And it's not just simply a matter of cost and trying to save that few dollars a month
on hosting, for a lot of people they need to keep their code inside the firewall.
If you work at a corporation, or especially for things like governmental agencies, it
may be that you can't share your code with a third party, no matter how secure their web site is.
You have to keep things inside the firewall.
You won't be able to make, push, and fetch requests to some external entity.
And in that case, you'll need to set up self-hosting.
It used to be that the main way to do that was by using software called Gitosis.
So you would set up Gitosis on your internal servers, and then that would be what everyone
would connect to, and it would be like having your own personal GitHub, with a lot less features.
The problem with Gitosis is that development on it stopped two or three years ago, so it
hasn't been continually updated.
Gitolite though is very much in active development, and it's constantly being improved.
It's based on Gitosis, so both are going to be very similar, but I think you'll have better
luck if you start with Gitolite first.
And you may find it difficult if you are a beginner, but anyone with some server admin
experience should be able to get them set up.