Git is an amazing version control system of which I have written before on multiple occasions. With Git you can easily manage and modify your codebase and an unlimited amount of versions of your code. Every change, from minor performance improvements to mission critical bug fixes, can be held in Git. It’s just an amazing tool of which’ existence every developer should be aware of. If you’re not yet convinced, have a look at this article, in which I explain why you should definitely have a look at the Git version control system.
As you probably already know it’s perfectly possible to use Git solely on your own dev box, no server is required. However, the availability of a Git server has some great benefits you lose when using Git locally only. A few of the greatest benefits on having a Git-server available is the huge communication and collaboration benefits, as well as the fact that you’ll always have an exact copy of your code at your disposal, this makes Git combined with a Git server a great backup tool as well.
Nowadays there are a lot of Git server options available. Both hosted and self-hosted options are widespread. Some of the best known possibilities here are Github or Bitbucket. Both solutions are competitively priced, at the time of writing Bitbucket is even free for teams with up to 5 Git users.
Most users are probably fine with choosing a hosted Git server solution, although there some reasons as well why you might want to go with a self-hosted solution. Some of the most important reasons are server availability, customisability and pricing. Of course it’s always possible to install the regular Git server edition, but this makes managing your repositories harder, since it doesn’t offer any of the more advanced features like built-in user and group management, an easy to use graphical user interface and more. You can read here how you would do that.
Luckily there are a few other possibilities, one of which is Gitlist, this is a lightweight Git repository management tool that is accessible through a web portal. You can read more about it here.
If you’re looking for a self-hosted tool that’s much more up to speed and on par with commercial options like Github and Bitbucket, Gitlab is the way to go. Gitlab offers all the important features that you’ve come to expect from a Git server interface solution. Including a file browser, an included wiki, code reviews and comments, issue management and more. It’s possible as well to modify code and commit straight from your browser. Aside of this Gitlab has very good user and group support so you have fine-grained control over who you share your code and projects with. You can read more about Gitlab’s features at the Gitlab website.
Personally I’ve been using Gitlab for a long time now, and I would definitely recommend it if you’re interested in hosting your Git server yourself. Otherwise Github and Bitbucket, which I both use for certain projects as well, are great options too, especially if you have no interest on setting up your own Git server.
You can find Gitlab here.