I use a free BitBucket plan. The unlimited private repos are perfect for me, since I have a lot of small projects that I'll likely never finish. Also, i have Pass[1] set up with Git, so everything is backed up, under version control and is pushed to my Raspberry Pi so I can access all my passwords on my iPhone as well.
Also, I use Git for large academic projects and papers in LaTeX, so public Github is not really ideal.
You can put the bare repo on a server and then use ssh. Dead simple and works great if you have a dev server where all developers have access to anyway.
Yeah, pretty much that's what I also find the most appropriate.
GitHub seems to be the second-best option ( sometimes the first ), but when you have unlimited non-paid private repos your mind goes also unlimited : I serve my important configuration files, various scripts, small personal projects, even my bank statements on a git repo, hosted on my personal server. But if every repo costed me 2$ per month, I doubt I would do that.
I use both github (I recently finished a PhD and so had access to the education discount) and free bitbucket (a budding collaboration hosts their private code there). I am the sole user for most of my repos (mostly software for data analysis and LaTeX drafts for papers), so bitbucket's five user limit for free accounts has not affected my workflow in any way. I do use github for code I want to release to the public (e.g., code associated with publications, side-projects that I want to share), as it seems like there is more of an ecosystem there and the website seems more conducive to easily finding other peoples projects.
It works but it's not great. It's rather slow and the interface leaves some things to be desired (for example, you can't close a pull request without letting Stash merge it for you).
Started on the free bitbucket and went to the paid bitbucket when we needed more than 5 users. With 200+ repositories, we've already exceeded what is available for purchase on github.
Bitbucket's no limit on number of repos is what made us take the final call as well. You don't want to be restricted on that when you strive hard to have a more organized code base.
I'm not arguing about GitHub being great, but it really only takes a few minutes to spin up an EC2 instance and add a few user accounts with a shared folder. That's really all that's required to set up a shared repo.
Plus assuming you're running an EBS-backed instance, it's already backed up. And it's easy enough to set your instance to automatically apply security updates. If all it's doing is hosting a few git repos, breaking things isn't really a huge concern. I love GitHub, but I wouldn't pay for it as a way of saving money, I'd pay for the extra features.
Github private, both for my personal and my company account. Mainly because if the ease of giving others access, as most of my peers use it as well. I don't want to have multiple accounts at multiple services for that.
I use Stash at one client and like it, especially when integrated with JIRA. Not that I have much love for JIRA, but if you track all details, it's the tool to go for.
I ended up getting an DigitalOcean $10/month box and set up GitLab (which is awesome). I figured for almost the same price of GitHub micro plan I could get unlimited repos by self hosting and could additionally use the box as a private maven repo host and maybe a build box (barely though).
A benefit of private GitHub repos is that you're still nicely integrated with your open source dependencies on GitHub. For example, if you file an issue in your private repo that mentions an issue in some other public repo, you'll see your own reference when viewing the public issue.
We also use self-hosted Gitlab. Its workflow is generally very sensible, the web interface is great, and it was easy to integrate with a homemade CI server (unfortunately their provided CI server wasn't nearly as easy to set up as Gitlab itself).
Free BitBucket for private repos, free GitHub for open source projects.
I would have considered the micro plan if it weren't for the 5 repo limit -- I am (sadly) not rich enough to pay them just for being nice if I can get the number of private repos I need for free elsewhere.
I use my own git repo. I have a very small digitalocean server as well as a mac. I rsync the repos for backup. I have used github a bit but in my admittedly limited experience I see no benefit and therefore no need for anything else. Really it just seems trivial.
if you already have a tiny vps running somewhere, take a look at gitolite. it's free, it supports multiple users, allows for complex access control, but has a tiny bit of a learning curve attached to it.
on the upside, you learn a bunch about ssh in the process!
+1 for Gitolite. It is not that hard, more like an afternoon spent figuring things out. Great access control. It has no interface and no pull requests but that is not what git is about after all.
As a student if you have a .edu email you can get unlimited repos on BitBucket as well. I use BitBucket for projects I don't want to publish, and if it ever becomes something I wouldn't mind sharing I go public on GitHub and BitBucket.
Paid github. And that's because I feel that when I pay for a service such as this they need to take my money in order to continue to survive. Anything else will sooner or later disappear.
I had a gitlab instance on one of my computers that is online 24/7. It is a good solution, but my system was compromised by exploiting ruby / gitshell . Also it took way too much system resources to operate.
Of course it's my responsibility to patch software I'm using, but after considering how much time I would need to run gitlab on my own host ( incl. server upgrade, security configuration, may be kernel + docker installation, etc. ) I decided to go to a paid repo at GitHub.
I didn't consider hosting from GitLab at all. The thing I considered was that GitLab is an open-source project, so I can modify it the way I want ( I actually contributed a super small patch ( https://github.com/gitlabhq/gitlab-ci-runner/pull/16 ) .
Anyway free hosting for me for a platform that you can install on your server has always been a no-option, because I want to control the content.
Experienced that to in France. Since we also use Bitbucket for code review, I just put a box with a good network connection as a secondary git server that synced code at each push.
For private/small projects free BitBucket is enough. For larger projects I have used self-hosted Gitlab which was running very well on relatively low spec server.
Github Education for college projects, Github open source for class projects (these benefit from sharing publicly), Bitbucket for private and freelance projects.
I've set up a small-ish Gogs server on a RPi and i beg to differ on the "easy to install" - this might be true if you can just get the packages and install it, but once you try to manually set it up you'll see that the docs are lacking, big time.
And even if you've got it all set up: how are you supposed to update your install? IIRC, i've read somewhere that you're supposed to wipe & reinstall the whole thing (take this with a grain of salt, haven't used my install that much as Gogs is still way buggier than, say, GitLab).
Also, I use Git for large academic projects and papers in LaTeX, so public Github is not really ideal.
[1]http://www.zx2c4.com/projects/password-store/