I recently moved all my source code, from Atlassian’s BitBucket, over to GitHub.
BitBucket, is a free service, and GitHub is paid. Why did I do this? More importantly, how? Source Control, and Git, being so “particular” in their methods, often cause a lot of headaches.
So here it is, how and why I left the free service, and decided that forking out $7 a month, was worth it.
It’s going to cost me $84 a year for this change. It will bring me no extra revenue. So why do it?
Stability is the main reason. Second to that, community.
As I use Laravel Forge for my server management, and my project deployment(s), I need my Version Control Service to be up at all times, and this includes webhooks executing, not just having source available to clone.
I found with BitBucket, that their webhooks are especially slow, and caused me to have to wait upwards of 20 minutes for a basic deployment to take effect from my server. I often resorted to manually triggering the deployment myself, as I couldn’t be bothered to wait.
Community is my second reason. GitHub is the king of Cloud-based Git hosting. That’s a given. The vast amount of resources, projects, and users of GitHub simply cannot be ignored. Moving to GitHub means I can easily share my projects with other developers, and even have some projects as open-source (my personal site, and dot-files for example).
Having the availability of GitHub, and the community aspect as well; GitHub was a no-brainer.
I went to all my projects on my local machine, and pushed all my local changes, so as to not miss anything that I might need. A lot of the things I had saved, I was able to just drop, so this took maybe 30 minutes max.
Once my BitBucket repositories were up to date, came the migration, which to my surprise, was very easy.
GitHub comes with an “Import Repository” function (found here). From that, I went through my BitBucket projects one by one, and made a direct copy of them in GitHub. Making sure that I set them to private – just in case!
Once all my projects were imported, it was a simple case of updating the remote URL of the Git repository on each project. I use the PHPStorm GUI for this, however you can do it with command line just as easily (probably faster as well)
So now I’m entirely on GitHub. How has it been?
Honestly, I’d never look back, and I’m amazed I lasted so long on BitBucket. I do around 10 deploys a day using my webhooks. Since being on GitHub, just over 1 month now, I have had no issues at all with latency, or service outage.
I’m building a Twitter Clone on my Twitch channel. This is hosted on GitHub, entirely open-source. I’ll be doing some work on this every week, Thursday PM / Friday PM. If you’d like to join the streams, you can find me here, or follow my Twitter
Literally today, the day I wrote this, GitHub announced that you can now have unlimited private repositories for FREE.
Well played Microsoft, well played.