
Learn how git and GitHub help you track changes, review history, and collaborate on projects by managing repositories and open source contributions.
Explore git and its popular clients and front-end interfaces, showing how users interact with the tool. See examples and features that support easy version control workflows.
Discover why to use GitHub by exploring repositories, tracking changes, and reviewing diffs and commits. Learn to identify contributors, view change history, and understand how changes are tracked on GitHub.
Learn how to download git and pick the correct installer (64-bit or 32-bit) for Windows. Outline PowerShell or CMD usage on Windows, and note macOS or Linux adaptations.
Navigate directories with terminal commands across Windows cmd and bash, creating folders and files. Initialize a git repository with git init and check status to track changes for GitHub.
Learn to make your first commit by staging untracked files, checking status, and recording changes with a commit message before pushing from a local to a remote repository.
Learn to view and stage file modifications, unstage changes, and trace the full commit history to understand project evolution.
Master git reset and git stash to manage changes: stage work, stash and restore edits, handle conflicts, and reset to a previous commit for a clean history.
Learn how to connect a local project folder to a new GitHub repository, set the remote origin, and push changes to the repository, including handling master and main branches.
Master git branching by creating and switching feature branches, and then merging back into the main branch while managing commits and resolving conflicts to keep the repo stable.
Push your modifications to a repository, review changes, and understand why collaborators must use pull requests rather than direct edits.
Explore forking and cloning in git by working with a repository, linking upstream, making changes locally, and pushing updates while learning merging, branching, and pull requests.
Learn how to create feature branches, push changes, and open pull requests on a GitHub project, including branch naming, commits, and reviewer workflows.
Learn how to delete a commit in a pull request by resetting changes, stashing work, and force-pushing to safely update the branch.
Learn to synchronize your git main branch with upstream main by fetching, resetting, and pushing, or by fetching and merging upstream changes.
Learn to manage separate commits with git rebase, using an interactive session to squash multiple commits into a single one, while creating and switching branches to merge work.
Explore how to repair and resolve merge conflicts in a Git workflow, including when the same line changes across branches and during pull requests.
This course will comprehensively cover the GitHub hosting service as a companion to the Git source control tool, which means no prior knowledge or experience is required. Students will emerge at the end with a very solid understanding and hands-on experience with Git and GitHub.
Course Organization
The course is divided into four major components:
Introduction and Setup
Learning Git Source Control
All About GitHub
Each one of the above components spans multiple sections in this course.
Introduction
The Introduction provides a welcome to the course including some useful tips for getting the most out of taking the course and how the course is designed. That is followed by the Core Concepts which go over some critical theory before diving straight into Git.
After the introduction and core concepts, the first thing we do is a Quick Installation for both Windows and Mac.
Learning Git Source Control
In The Basics, we walk through all the foundational commands needed to start a new project managed by Git (or enable Git for an existing project) all the way through making commits, including common file operations like moving and deleting files. We also cover how to exclude the wrong files from accidentally being committed and how to review your repository's history.
With a strong foundation in place, we explore some more Advanced Git topics like comparing differences, branching and merge resolution, tagging special events, saving work in progress, and even a bit of time travel.
All About GitHub
The main part of this course is all about GitHub. We will explore GitHub in-depth from a source control hosting repository perspective.
In Welcome to GitHub, we start off exploring some of the basic features of GitHub by creating a fresh repository and associating our local repository with it. Then, we prepare for the remainder of the course by setting up SSH Authentication, which we will use from this point forward. After that, we continue looking at the GitHub Repository, including many of the same operations we performed locally but done directly within GitHub. Then in GitHub Repository Branches, we dive into how Branches on GitHub and our local system work with each other.
After we have comprehensively covered how GitHub repositories work, we focus on how GitHub Tags and Releases work and their relationship with local tags in Git. We can then use tags/releases while Comparing Differences on GitHub.
We start tying things together in Social Coding where we join other projects on GitHub by forking and then submitting our contributions back using pull requests.
Once part of a team, you might use GitHub Issues to track defects or enhancement requests.
Sometimes you just need to share small parts of a file or a set of files but don't want to bother with a full Git repository. That is where GitHub Gists help out -- share just a snip of code or entire files.
Finally, group related GitHub repositories with GitHub Organizations and manage permissions and access using teams.
Course Features
All tools have installation and configuration sections to ensure no one is left behind.
Presentations provide audio/video training of conceptual ideas. Since few like slide-ware presentations, slide presentations are kept to a minimum.
Screencasts provide a video of the instructor's computer system with any actions, commands, or screens displayed and narrated. There are nearly 2 hours of screencast based video training in order to step through each command or action in sufficient detail.
All videos are available in high-quality 1080p / Full HD resolution for sharp and clear viewing on modern desktops and tablets.
Several attachments and document lectures throughout the course provide supplemental information, illustrations, or other reference material.
Moving Forward
This course will expand periodically to include more topics, supporting materials, and first-class content! Some content may be in direct response to student feedback or discussions -- so get engaged with the course discussions feature!