Git Complete

Tags: Git

Go from zero to hero with Git source control step-by-step with easy to understand examples. Become the next Git expert!

Last updated 2022-01-10 | 4.5

- Learn the key concepts of the Git source control system
- Step through the entire Git workflow
- Compare the different states in Git and compare between branches and commits

What you'll learn

Learn the key concepts of the Git source control system
Step through the entire Git workflow
Compare the different states in Git and compare between branches and commits
Manage files with Git (move
rename
delete) and update files managed outside Git
Create and fork repositories on GitHub and push changes back after working after working on them locally
Create branches and resolve merge conflicts like a pro

* Requirements

* Basic computer skills
* Ability to install software on your computer
* Admin rights may be required for software installation

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.

Recent Course Updates

  • Added Updates and Errata section
  • Added Tagging section

Course Outline

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 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 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.

Screencasts provide a video of the instructor's computer system with any actions, commands, or screens displayed and narrated. There is nearly 4 hours of screencast based video training in order to step through each command or action in sufficient detail.

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!

Who this course is for:

  • Anyone interested in using source control and specifically Git
  • Software engineers, developers, programmers new to Git
  • IT Managers or technical leads considering Git for version control on their teams
  • Freelancers or other creative professionals

Course content

14 sections • 84 lectures

Welcome and Course Goals Preview 01:30

Course introduction, welcome and course goals.

Course Overview Preview 02:19

In order to meet the course goals outlined in the previous lecture, this course will follow an outline featured in the lecture.

About the Author / Instructor Preview 01:01

A brief introduction and information about the author/instructor for this course.

Course Audience and Course Study Tips Preview 02:47

This course has a specific audience in mind -- mainly freelancers, developers, programmers, and other creative professionals.

Why Command Line? Preview 02:29

The majority of the course will be done using the command line (Git Bash / Terminal). This lecture explains why.

Why Source Control? Preview 05:50

Not everyone is convinced of the need for version control -- so I go over the main reasons one should use it.

Why Git? Preview 02:12

Once convinced of the need for version control, this lecture goes into Git's unique qualities and why Git is an excellent version control system.

Key Git Terminology Preview 02:59

At this point, we assume you plan to use Git for version control and continue with the course, so this lecture goes over some key terminology that will be helpful to understand before moving forward.

Installation Overview Preview 02:12

Git Installation section overview and what approach will be taken.

Installing Git for Windows Preview 05:40

A step-by-step installation of Git on Windows, including recommended options and choices.

Installing Git on Mac OS X Preview 01:11

A step-by-step installation of Git on the Mac platform (featuring Yosemite).

Quick Start, Part 1: Starting with GitHub and Project Setup Preview 05:30

Part one of the "Quick Start" section -- starting with GitHub and initial project setup.

Quick Start, Part 2: Configuration, Clone, and Git Basic Workflow Preview 09:05

Part two of the "Quick Start" section -- configuration, cloning from GitHub and the entire Git workflow (add, commit, push and pull).

Quick Start Resources Preview 1 page

Command listings for this section.

Text Editor Installation Overview Preview 01:10

Windows Text Editor: Notepad++ Installation Preview 05:23

Configure Notepad++ with Git (Windows Only) Preview 04:42

Mac Text Editor: TextMate 2 Installation Preview 03:04

Configure Text Mate 2 with Git (Mac Only) Preview 03:01

Text Editor Resources Preview 1 page

Basic Commands Overview Preview 01:57

Starting with a Fresh Project (git init) Preview 08:01

Adding Git to an Existing Project (git init) Preview 06:58

Starting on GitHub by Joining an Existing Project (git clone) Preview 06:01

Basic Git Workflow (add, commit, pull & push) Preview 11:27

Tracked Files Preview 05:09

Editing Files Preview 03:59

Recursive Add Preview 04:13

Backing Out Changes Preview 04:27

Renaming and Moving Files Preview 11:14

Deleting Files Preview 10:17

History Preview 06:27

Git Alias Preview 04:23

Ignoring Unwanted Files and Folders Preview 07:22

Cleanup and Back to Origin (GitHub) Preview 02:38

Git Basics Resources Preview 7 pages

Visual Merge / Diff Tool Installation Overview Preview 01:00

P4Merge Install on Windows Preview 02:06

P4Merge Configure on Windows Preview 03:32

P4Merge for Windows Git Configuration Preview 04:13

P4Merge for Mac Installation Preview 01:52

P4Merge for Mac Git Configuration Preview 04:02

Visual Merge / Diff Tool Resources Preview 1 page

Git Repository Setup (for comparing examples) Preview 05:52

Comparing Working Directory and the Staging Area Preview 02:29

Comparing Working Directory and Git Repository (Last Commit) Preview 01:49

Comparing between the Staging Area and the Git Repository (Last Commit) Preview 01:43

Limiting Comparsons to one File (or path) Preview 01:59

Comparing Between Commits Preview 04:37

Comparing Between Local and Remote Master Branches Preview 02:05

Comparison Section Cleanup and Push back to GitHub Preview 01:37

Branching Basics Preview 04:48

Happy Path / Fast Forward Merges Preview 06:44

Happy Path / Disable Fast Forward Merges Preview 04:12

Automatic Merges Preview 05:30

Conflicting Merges and Resolution Preview 11:40

Section Cleanup and Push back to GitHub Preview 01:37

Simple Rebase Example Preview 08:21

Setup for rebasing conflict Preview 02:50

Abort a Rebase Preview 02:06

Rebase Conflict and Resolution Preview 04:04

Pull with Rebase (GitHub) Preview 04:50

Section Cleanup and push to GitHub Preview 01:53

Simple Stash Example Preview 05:55

Stashing Untracked Files and Using Pop Preview 05:23

Managing Multiple Stashes Preview 05:53

Stashing into a Branch Preview 05:46

Section Cleanup and push to GitHub Preview 01:22

Stashing Section Resources Preview 3 pages

Simple Tag Example / Lightweight Tags Preview 03:48

Annotated Tags Preview 02:39

Comparing Tags Preview 05:09

Tagging a Specific Commit Preview 02:02

Updating Tags Preview 01:44

Using Tags with GitHub Preview 05:03

Tagging Section Resources Preview 2 pages

Reset and Reflog (Office Hours, Session 1) Preview 12:28

Compare Branches via GitHub (Office Hours, Session 1) Preview 04:34

Compare Branches via Command Line (Office Hours, Session 1) Preview 06:15

Stash vs Branch (Office Hours, Session 1) Preview 09:50

Gitting Help (Office Hours, Session 1) Preview 01:15

Cherry Pick (Office Hours, Session 1) Preview 07:41