This guide assumes you are using VScode, and have been shown how to use the terminal, with Git bash setup and configured.
The Basics
Github is a version control tool used by software development teams to share and collaborate on work. It is a little bit like Dropbox in that your work is βsyncedβ from the cloud, but different because unlike Dropbox where everyone shares the exact same copy, Github allows each person to download the central copy (Master) and create their own private copy (Branches). This is important because:- Teams can all be working on the app at the same time
- No worry about conflicting or overwriting each otherβs work by accident
- Git syncing is optional rather than automatic
- We can only add changes and versions when we want to
- Better tracking of what has changed
Understanding Branch and Master

- Master - The tree trunk, the center of what we do. In practical terms, the Master is the latest published or released version of the app (i.e. what our customers see)
- Branches - Work off of branches to prevent breaking things. A branch is essentially a snapshot or copy of the Master at the time it was taken
Key Concepts
- Pull Request - The process where someone else checks your branch before confirming it can go back into the Master branch
- Merging - When your changes will all be merged into the Master version that everyone uses from now on

Best Practices
- Create a new branch from the latest version of Master every time you work on something new
- Create one branch per feature rather than adding everything into one branch
- This makes it easier and faster to review and merge things back in
The Git Karate Kid - Push and Pull
Git works in terms of Pushing and Pulling. Unlike Dropbox which automatically syncs our data to the server, Github keeps a copy on the server (Remote) that is separate from your local copy.Pull
- Use
git pullto retrieve data from the Github server and download it to your computer - Github will complain loudly if your local changes conflict with the server
Push
- Use
git pushto back up our work and send it to Github - Must Stage and Commit your work before pushing