I have been using GitHub for about 8 years now. Today I will give you a tutorial on how to use GitHub correctly for software development, which is a huge platform that provides code hosting, file hosting (with releases feature), issue tracker, project board, continuous build and integration, wikis, webpage hosting, and more. I will give you a brief comparison of GitHub to its alternatives, including locally hosted ones. I will also explain to you my personal Git and GitHub setup and how I use it. Finally, I will demonstrate my full software development workflow on my open-source "Android Docker" project, which is hosted on GitHub.
Outline of this video (part 1):
• Why GitHub
• Alternatives
• My GitHub Setup
Outline of next video (part 2):
• My Full Software Development Workflow Using GitHub
o Project Organization
o Git Usage
o Task #1: Replace Docker Base Image
Applied Programming Principles
o Task #2: Fix Directory Naming Conventions
GitHub Pull Request Flow
o Task #3: Deploy Image to Docker Hub
Manual Testing
o Task #4: Project Publicity
• Conclusion
If you want to read or contribute, you can find this guide on:
• https://quanticdev.com/articles/how-t...
My "Android Docker" open-source projects used as an exercise in this video:
• https://github.com/soygul/android-docker
Alternatives to GitHub:
• https://alternativeto.net/software/gi...
GitHub Flow guide:
• https://guides.github.com/introductio...
My "How to Set up a Free Website with GitHub Pages - How I Created quanticdev.com" video:
• • How to Set up a Free Website with GitHub P...
Software Engineering Playlist:
• • Software Engineering
- - - - - - - - - -
/ quanticdev
/ quantic_dev
https://quanticdev.com
- - - - - - - - - -
Abstract
Why GitHub
GitHub is pretty much the standard for sharing code in software development. And not only software development, but you can also find hardware blueprints, circuit schemas, or even websites and articles, just as I do with quanticdev.com.
GitHub has good alternatives, which I will get into later. But currently, it is a huge platform. As I mentioned, it has a great number of features to fill your development needs. All these features come for free and have paid versions with added features. You can even host GitHub locally on your own servers using the GitHub Enterprise version, but it is enormously expensive at a $250 per user per year pricing!
You can frequently see hardware engineers hosting their projects on GitHub. Hosting non-coding related projects on GitHub is a less featureful experience, but it still provides all the project management features along with a ton of automation with GitHub Actions.
GitHub is free for public and private repositories. It is free for individuals, group projects, and enterprises. The paid tiers provide more features and resources, but you will not need them in smaller teams.
Alternatives
You can find the link that lists pretty much all the well-known alternatives to GitHub, in the video description below. But following are my favorites and here is how they stand up to GitHub:
• GitLab: Probably the 2nd most popular code hosting platform. It matches GitHub almost feature-by-feature, including GitLab Pages for free website hosting, and it is catching up on the missing features. It has comparable free and paid tiers which are slightly cheaper. It even has a feature to migrate all your projects from GitHub to GitLab in one shot, including all your issues, wikis, etc. Just like GitHub, you can host GitLab locally on your own servers, and it has a free version too. The main reason as to why I do not use GitLab is their UI. I find their UI quite bloated. Compared to the clean-cut UI of GitHub, finding your way around GitLab is very difficult, but this is a personal opinion.
• Bitbucket: Probably the 3rd most popular code hosting platform. Before GitHub offered free private repositories, everyone used to keep their private repos in Bitbucket. This includes me, of course! However, once GitHub made private repos free last year, I closed my Bitbucket account and did not use it since then. Bitbucket is an Atlassian product, so I fear that it will end up becoming a super bloated platform, just like Jira has become. However, their existence is good for competition, which is also good for us.
• Git: You can set up and use a plain Git server with ease. Just Google and follow any tutorial, and you will be up and running in no time. However, Git is only a code server. You will need additional tools for issue tracking, continuous integration, etc. You can hack around this by hosting a local issue tracker like Trac or Redmine, or just commit your issues to your repo as markdown files in an "issues" directory. You can also host Jenkins locally as your continuous integration server.