How do I set up a private Git repository on GitHub? Is it even possible?
GitGithubGit Problem Overview
I intend to share my source code on an invite-only basis to a few dozen users maybe. The source code itself should not be public. Participants are allowed and encouraged to submit their changes. So I need source control, preferably Git, hosted on a public server with private access for multiple users.
I learned that it is possible to set up private Git repositories on GitHub which use https:// links. On GitHub itself such a project does not show up in searches. For participating users the project shows a "lock" icon. So there are obviously private repositories; I just don't know how set one up. A lot of tutorials use SSH to set up private repositories but they all require you to have "your own server".
I don't care about secure connections when pushing/pulling source code nor do I have trust issues with GitHub. All I care about is giving access only to users I invite. Maybe I'm naive and such a solution is only available via commercial hosting (e.g., Unfuddle, Assembla), but if not, I'd really like to know how it's done!
Git Solutions
Solution 1 - Git
On January 7th 2019, GitHub announced free and unlimited private repositories for all GitHub users, paying or not. When creating a new repository, you can simply select the Private option.
Solution 2 - Git
Bitbucket - Their plans seem to be the best. They give you way more than GitHub do for free accounts - in fact, I'm still only using the free plan - no need to sign up to the paid ones; plus the interface is almost identical to GitHub.
A repository on Bitbucket can have up to five private users with unlimited public or private repositories - the only thing you seem to be paying for with the paid accounts are more users to access your private repositories.
Solution 3 - Git
If you are a student you can get a free private repository at https://github.com/edu
Update
As noted in another answer, now there is an option for private repos also for simple users
Solution 4 - Git
GitHub is a great tool in-all for making repositories. However, it does not do good with private repositories.
You're forced to pay for private repositories unless you get some sort of plan. I have a couple of projects so far, and if GitHub doesn't do what I want I just go to Bitbucket. It's a bit harder to work with than GitHub, however it's unlimited free repositories.
Solution 5 - Git
Since January 7th, 2019, it is possible: unlimited free private repositories on GitHub!
... But for up to three collaborators per private repository.
Nat Friedman just announced it by twitter:
> Today(!) we’re thrilled to announce unlimited free private repos for all GitHub users, and a new simplified Enterprise offering:
"New year, new GitHub: Announcing unlimited free private repos and unified Enterprise offering"
> For the first time, developers can use GitHub for their private projects with up to three collaborators per repository for free.
> Many developers want to use private repos to apply for a job, work on a side project, or try something out in private before releasing it publicly.
Starting today, those scenarios, and many more, are possible on GitHub at no cost.
> Public repositories are still free (of course—no changes there) and include unlimited collaborators.
Solution 6 - Git
Once you have a paid account on GitHub, it is not obvious how to create a private repository. To create a private repository for an organization with paid account, go to https://github.com/organizations/MYORGANIZATIONNAME.
The only way I've figured how to navigate there is:
- Go to to your organization's home page: https://github.com/MYORGANIZATIONNAME
- Click on the "Edit MYORGANIZATION's Profile" button at the top right
- Click on the "GitHub" icon at the top left (non-obvious)
- Click on the "News Feed" tab (non-obvious)
- Click on the "New Repository" button at the right ...
Solution 7 - Git
Update (2019, latest)
Since Jan 2019, GitHub allows private repositories for up to three collaborators.
Previous answer:
Here is the comparison for free plans listed by tree main Git Cloud based solutions:
Here is the comparison for paid plans listed by tree main Git Cloud based solutions:
Conclusion:
I'm not seeing people mentioning GitLab here, but it seems like the best free private plan for me. I myself am using it with no problems.
GitHub: If you have a student account or want to pay for $7 monthly, GitHub has the biggest community and you can take advantage of it's public repositories, forks, etc.
Bitbucket: If you use other products from Atlassian like Jira or Confluence, Bitbucket works great with them.
GitLab: Everything that I care about (free private repository, number of private repositories, number of collaborators, etc.) are offered for free. This seems like the best choice for me.