Sunday, October 1, 2017
Until today, I hosted all my private Git repositories on my own Git server using Bonobo Git Server on an in-house Windows server.
I have been wanting to move this to GitHub for a while, because:
- I would have both my public and my private repositories in the same place (the public repositories were there already).
- GitHub is nicer and has a lot more features.
- Easier access when "on the road" with my laptop.
- I wouldn't have to run and maintain the Bonobo Git server anymore.
My only reason for not doing so, was that there was no easy way to backup the repositories hosted at GitHub.
My source code is one of my most valuable assets (think only of the hours of labor behind it), and I simply cannot afford to loose it.
GitHub might loose my data (like it happened to GitLab earlier this year), they may get hacked and go down for an extended period of time, or they might suddenly go out of business.
For me to use them, I need to have an automated and reliable backup system.
With my Bonobo Git Server, I simply backed up the data directories using standard Windows backup software.
You might argue that my local repositories already serve as backups of those on GitHub.
The problem with this is that I have around 45 repositories that I work on at different times on different computers in different physical locations.
I cannot manually keep track of what is updated where, and I don't want to have to worry about this.
That is why I need ONE central repository of repositories - where all my latest bits are - and which is automatically backed up to some other service / location.
So to solve this, I have created the software "GitHub backup for Windows" (published as open source on GitHub of course) which automatically backups up all your GitHub repositories to a Windows computer. See more details in the README file.
And now all my Git repositories - public and private - are finally on GitHub :-)
PS: I know that similar tools / scripts exist for Python and "Bash"(?) already. But I use Windows, and I don't know Python or Bash. So for me, a Windows tool makes more sense.