Everything you need to know about Git, Github, and the technical side of coding with others
What Git and GitHub Are and Why You Need Them
If you want to be a developer or know how developers work, you need to know it. Anyone interested in coding should at least know what GitHub is and why you need it (two articles).
Learn Command Line, Git, and GitHub
Git is hard…
…but you still need it. All too often I see beginner developers or even job applicants without knowing any command line, git, or github. I even know web dev path students who’ve skipped it because it’s hard. Don’t.
I recommend taking these free courses and resources in this order:
- Learn the command line (course)
- Set up command line part 1 and 2 (articles)
- Learn Git (course)
- Learn Git Branching (tutorial)
- Get started with Git and GitHub (video, goes with this article)
- Read the handbook
- Learn basic markdown with this quick guide (this forum also uses markdown!)
- Visualize the flow.
- Say hello world! (tutorial)
- Practice with GitIt (tutorial)
- Set up GitHub Desktop (this is optional but recommended)
- Know what a pull request is (video)
- Learn about forks (article)
- Know how to make a pull request (article)
- Know how to review pull request changes (article)
- Learn branching and making edits (wiki)
- Know how to log issues (quick article; optional but recommended: master them with another article).
- Know how GitHub Pages work and use it yourself (article, then video – these are optional but recommended if you’re doing any web dev work)
- Know how to make a contribution on GitHub with this walkthrough (optional: learn doing so on desktop with another walkthrough).
- Always keep documentation (article)
Keep using Git and GitHub constantly as you learn. Make mini projects and keep using GitHub for version control and hosting. Practice practice practice!
Working together with other people on coding projects leads to code bases, legacy code, and that can lead to problems. Watch these three videos in this order to learn about them and how to deal with them: (code bases, legacy code, working on or with code written by others).
Supplemental Resources
These resources are helpful for best practices and advice:
- Everyday Git commands (article)
- Common Git issues and how to resolve them (this is also good, both are articles)
- How to review someone else’s code (video) and specifically reviewing someone else’s pull request (article).
- Cool things you can do with Github (listicle)
Even with the above, many students want or need more practice or to take a different angle on learning. Try these:
- GitHub Help (help center)
- GitHub Lab Tutorials (tutorial)
- Git documentation (documentation)
- Git Cheat Sheets (article)
- Oh S**t Git (quick article) - this is heavy on curse words so… be warned I guess
- Command Line Cheat Sheet: Essential tasks on the command line, plus tips and tricks
- Git Cheat Sheet: Important Git commands and version control best practices
- Bash Learning Game: Learn Bash by exploring the world of Terminus
- Git and GitHub Training: Official GitHub YouTube training and guides channel
- Git guide (ebook)
You Can Skip Steps… But Not For Long
Maybe you’re looking at those lists above and you’re saying “nooope.” You aren’t alone (discussion thread). In fairness you can use GitHub to some extent without going the “right way” in learning command line or Git, and that may okay for you if you don’t want to be a developer and you just want to use basic GitHub features. There aren’t many good guides to do this, in part because the GitHub UI is quite good and in part because this is an unsual route, so watch the first two videos here then this article, then say hello world, consider doing the learning lab tutorial, and then just use the GitHub UI to do what you need to do; it’s fairly straightforward.
About this Guide
I’m a developer and I’ve been tutoring new coders for years, I made this guide with some others like me because the biggest thing that trips up new developers like us is that most places don’t teach you how coding works in teams. Wanna know more about these guides (there are others), us, and why we made them? See here. Interested in the wider context of who does what on a developer team and how they work together? Check this out.
Not The End
Please reply to this thread with your own resources, advice, and feedback! We made this post a wiki so it can be updated and maintained by the community, we’re just starting them off. See our other guides here.