This is the second part of my two-part "How to Use GitHub for Software Development" mini-series. In the first part, we looked into the advantages of GitHub as well as the alternatives. We also investigated my GitHub setup before getting into some programming. If you didn't see it, go check it out ( • How to Correctly Use GitHub for Softw... ). And now, I will provide you with my full GitHub workflow while getting some real work done on my android-docker open source project. I will also provide you with useful commentary and tips.
Outline of part #2 (this video):
• My Physical Work Environment
• 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
Outline of part 1 (previous video): • How to Correctly Use GitHub for Softw...
• Why GitHub
• Alternatives
• My GitHub Setup
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 "Cleanest Linux Productivity and Development Environment using Manjaro Linux" video:
• • Cleanest Linux Productivity and Devel...
My "Software Design Patterns, Principles, and Best Practices" video:
• • Software Design Patterns, Principles,...
My "Software Quality Assurance - How Do Software Companies Test Their Products?" video:
• • Software Quality Assurance - How Do S...
Software Engineering Playlist:
• • Software Engineering
- - - - - - - - - -
/ quanticdev
/ quantic_dev
https://quanticdev.com
- - - - - - - - - -
Abstract
Project Organization
I like keeping my repos simple. I try to have all my documentation in simple readme files in markdown rather than using the "Wikis". I also like keeping my issues list clean, and close stale issues whenever I can. It is even possible to set up a "Stale Bot" for this purpose, but I did not do it yet. Finally, I touch the settings only when I need to. There is no need to complicate the repo configurations.
GitHub Pull Request Flow
For most of my tasks I will use what we call the GitHub Flow or Pull Request Flow. Let me start by explaining GitHub Flow:
• I will start by checking out a fresh new branch. I will do all my work for this task on that branch. To signal everyone else that I am working on that branch, I will push it to GitHub.
• Commit by commit, I will push my work to that branch. I try to make a commit every time I complete an important part of the task. I also try to write descriptive commit messages, since it is important to document your work and changes done to the project by that commit.
• Next is to create a pull request through GitHub's UI. Making a pull request signals my teammates that I am done with that task, so my changes are ready to be reviewed.
• Before finally merging my changes, someone, or myself, will review the code and test it. It could be via deploying the changes to a test or staging environment.
• Finally, I will merge the changes and close the related task as successfully done.
• GitHub's own documentation on GitHub Flow is pretty good, and I put the link above, if you want to check it out for more info.
Conclusion
GitHub is a fantastic tool. It brings a full suite of software development tools in one package, and it is adding new features regularly. Being owned by a big enterprise company like Microsoft might mean it can stop innovating and become stale, but until then, it is the best of all options. I highly recommend using it for your private or open-source projects. I also recommend using it to its fullest; i.e. use GitHub Issues and Project board instead of using a 3rd party project management tools like Trello. Keep your workflow as simple as possible and altogether so when you need to backup or migrate your data, you can do it in one shot. If you want to learn and use GitHub but do not have a project at the moment, contribute to open-source projects on GitHub. Start with the simplest tasks like updating Readme files and move on from there. It will make you a better developer while helping the community, and learning Git and GitHub.