
Learn the essentials of Git and GitHub, including version control basics and a centralized repository. Master commands for branching, merging, and tagging.
Explore the goals, benefits, and market scope of Git and GitHub, learn core commands, and perform hands-on labs using the command line across platforms.
Learn git fundamentals by understanding what a git repository is, including the working directory, staging area, hidden git directory, and local versus remote repositories.
Explore Git, a free open source version control system, and how it uses local clones and a central or remote repository to track changes, push, pull, and roll back code.
Install Git on Linux, macOS, and Windows using Homebrew, Xcode, or binary installers; follow commands to download, install, verify, and troubleshoot common setup errors.
Install git on Windows and Mac using official download links, explore homebrew-based setup on Mac with Xcode, and verify the installation from the terminal.
Configure user information in git to identify who makes commits on a remote repository. Set global name and email with git config --global and verify with git config --list.
Initialize an empty git repository in your project using git init after navigating to the project directory. This creates the hidden .git folder and prepares your project for git usage.
Learn to track files with git status, stage changes with git add, commit with meaningful messages, and use git log and author filters to identify contributions.
Explore how Git and GitHub collaborate as a distributed version control system, managing code with local repositories and a remote GitHub repository.
Create a remote repository on GitHub with public or private visibility and initialize with README and .gitignore. Clone locally, commit and push changes, and manage authentication for private repositories.
Learn to set up SSH and GPG keys to authenticate between your local machine and GitHub, generate and add keys on Mac, Windows, and Linux, and test connection for pushes.
Create and switch git branches like main and develop, with each branch having its own code. Use pull requests to merge features and keep local and remote in sync.
Learn to isolate features on separate branches, manage hotfix and bug fix work, and merge into the main branch using Git pull, merge, add, commit, and push.
Learn how to undo changes in Git using reset and revert, the differences between soft and hard resets, and when to apply each to local commits and remote history.
Compare the working directory and staging area using git status and git diff to identify changes, track file modifications and additions across simple test files.
Learn to compare commits in git via the terminal by referencing commit IDs and viewing diffs between two commits to see file changes.
Explore how git branches organize development, release, hotfix, and feature work on main and release branches, and learn to list, create, switch, rename, merge, and delete branches.
Discover how to merge Git branches, switch between main and develop, and resolve merge conflicts by editing files, then commit and review history with log and graph.
Master how git stash temporarily saves work-in-progress changes, enabling you to switch to urgent bug fixes and later resume or drop stashed work.
Learn how to stash untracked files with git stash -u, and distinguish git stash apply from git stash pop while understanding working directory and staging area.
Learn to manage multiple git stashes by creating named stashes, listing and inspecting them with stash show, and applying or popping specific stashes while tracking changes and untracked files.
Description
Git Complete
This course is designed to be a comprehensive approach to Git, which means no prior knowledge or experience is required but students will emerge at the end with a very solid understanding and hands-on experience with Git and related source control concepts.
Course Organization
The course is divided into four major components:
Introduction and Setup
Learning Git Source Control
All About GitHub
Bonuses
Each one of the above components spans multiple sections in this course.
New! Closed captions throughout the course!
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. The Bonus section has a more comprehensive, step-by-step process for those that prefer it.
Course Introduction and Overview provides an introduction to this course and the Git source control system and sets the stage for the rest of the course.
After the introduction, the first thing we do is Git Installation for both Windows and Mac.
Quick Start a very quick (15 minutes), hands-on introduction to Git. We start off by signing up for GitHub, creating a repository there, the makiing a local copy (clone), local changes (add/commit) and then update GitHub with our changes (push).
In Basic Commands, we walk through all the foundation 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 ways to make Comparisons in Git, including all the different local states, between commits, and between local and remote repositories.
We give great attending to Branching and Merging in Git. We start off with the simple "happy path" and learn about "Fast-Forward" merges and how to control them. The we walk through common "automatic" merges. Finally, we cause trouble on purpose so we can step through resolving conflicting merges with our visual merge tool.
With a strong foundation in branching and merging, we will then cover a more complex topic, Rebasing. In that section, we cover several rebasing examples, including how to resolve a rebase conflict.
In the Stashing section, we save our work-in-progress while we attend to more pressing issues, then pick up where we left off after that.
NEW: In the Tagging section, we mark important milestones or releases within our project. We also use those tags later for comparing differences between important milestones. We also look at how to use tags within GitHub.
All tools have installation and configuration sections to ensure no one is left behind.
Course Features
Presentations provide audio/video training of conceptual ideas. Since few like slide-ware presentations, slide-presentations are kept to a minimum.
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 bonus content! Some content may be in direct response to student feedback or discussions -- so get engaged with the course discussions feature!