Great *Free* Resources to Learn GitHub

Background

Source control used to be a scary, odd thing for me back in college and early in my career. Branching, merging, commits... all the buzzwords I remember from my early days dealing with Microsoft Team Foundation Server (TFS) and Subversion. Admittedly, I never felt like I spent the time required to understand how it all worked. Fast forward to mid-2017, when a group of us within VMware needed to share some of our tips and tricks with the broader VMware community. The EUC-Samples repository was born on GitHub, and my journey like Alice down the rabbit hole began. Over the years, as we've encouraged participation and knowledge sharing amongst those within the community, I still see a hesitation to learn git/GitHub and contribute to the repository.

My Inspiration For This Post

Before 2017, I was YOU! It's been a personal journey to feel comfortable learning to use GitHub and sharing with the VMware community. I've come across numerous examples of blog posts, training videos, and more. Yet, I felt it time to talk through the specific tools that have helped me on my journey. I hope you find these tools equally valuable and find the confidence to share your knowledge and experience with the community.

Getting Started with GitHub

This year's Microsoft Ignite conference had a few great resources to introduce GitHub to new contributors within the community. Before checking them out, I recommend watching the video "What is Version Control" to understand the problem GitHub (or git in general) is solving. My inspiration for listing the following videos are that they're short and to the point. Additionally, they cover using GUI tools. These videos get you the knowledge you need to start working with Github repositories and contributing to basic projects.

In my own experience and interactions, folks new to GitHub don't want to dive straight into the command line to start interacting with repositories. I've tried to lean more towards videos that explain using visuals and GUI tools.

Getting Better with GitHub

As you grow comfortable cloning repos and generating commits to the repo, you'll need to start digging into pull requests and branching/merging. Something I learned (admittedly) late was the value of branches in the code creation process. Branches provide a useful way for you to keep a local copy that mirrors the repo, and then selectively test different changes by commiting against different branches. Personally, I've found branches a useful way for me to contribute changes back to community projects as it let's me isolate very specific (feature or bug-related) changes and then submit the changes to the upstream repo via pull requests.

Visual Studio Code Help

Tools for GitHub and Scripting

Personally, I made the switch to Visual Studio Code shortly after it was first introduced. The developer community is constantly adding new features (via extensions), and I find the code language support is awesome for much of what I do (scripting for system administration). That said, here's a list of the smattering of tools I use for GitHub and working with repositories/content:

Wrapping Up

Have you found any great resources for learning about Git & GitHub? I'd love to add them! Leave a comment below and let me know!