Git Complete: The definitive, step-by-step guide to Git

Go from zero to hero with Git source control step-by-step with easy to understand examples. Become the next Git expert!
4.6 (554 ratings) Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
8,462 students enrolled
$200
Take This Course
  • Lectures 84
  • Contents Video: 5.5 hours
    Other: 21 mins
  • Skill Level All Levels
  • Languages English, captions
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 12/2014 English Closed captions available

Course 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

  • October 17th: Added Updates and Errata section
  • July 19th: 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!

What are the requirements?

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

What am I going to get from this course?

  • 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

What is the target audience?

  • 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

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Introduction
01:30

Course introduction, welcome and course goals.

02:19

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

01:01

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

02:47

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

02:29

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

05:50

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

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.

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.

Section 2: Git Installation
02:12

Git Installation section overview and what approach will be taken.

05:40

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

01:11

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

Section 3: Git Quick Start
05:30

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

09:05

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

1 page

Command listings for this section.

Section 4: Text Editor Installation
Text Editor Installation Overview
01:10
Windows Text Editor: Notepad++ Installation
05:23
Configure Notepad++ with Git (Windows Only)
04:42
Mac Text Editor: TextMate 2 Installation
03:04
Configure Text Mate 2 with Git (Mac Only)
03:01
Text Editor Resources
1 page
Section 5: Basic Git Commands
Basic Commands Overview
01:57
Starting with a Fresh Project (git init)
08:01
Adding Git to an Existing Project (git init)
06:58
Starting on GitHub by Joining an Existing Project (git clone)
06:01
Basic Git Workflow (add, commit, pull & push)
11:27
Tracked Files
05:09
Editing Files
03:59
Recursive Add
04:13
Backing Out Changes
04:27
Renaming and Moving Files
11:14
Deleting Files
10:17
History
06:27
Git Alias
04:23
Ignoring Unwanted Files and Folders
07:22
Cleanup and Back to Origin (GitHub)
02:38
Git Basics Resources
7 pages
Section 6: Visual Merge/Diff Tool Installation
Visual Merge / Diff Tool Installation Overview
01:00
P4Merge Install on Windows
02:06
P4Merge Configure on Windows
03:32
P4Merge for Windows Git Configuration
04:13
P4Merge for Mac Installation
01:52
P4Merge for Mac Git Configuration
04:02
Visual Merge / Diff Tool Resources
1 page
Section 7: Comparisons
Git Repository Setup (for comparing examples)
05:52
Comparing Working Directory and the Staging Area
02:29
Comparing Working Directory and Git Repository (Last Commit)
01:49
Comparing between the Staging Area and the Git Repository (Last Commit)
01:43
Limiting Comparsons to one File (or path)
01:59
Comparing Between Commits
04:37
Comparing Between Local and Remote Master Branches
02:05
Comparison Section Cleanup and Push back to GitHub
01:37
Section 8: Branching and Merging
Branching Basics
04:48
Happy Path / Fast Forward Merges
06:44
Happy Path / Disable Fast Forward Merges
04:12
Automatic Merges
05:30
Conflicting Merges and Resolution
11:40
Section Cleanup and Push back to GitHub
01:37
Section 9: Rebasing
Simple Rebase Example
08:21
Setup for rebasing conflict
02:50
Abort a Rebase
02:06
Rebase Conflict and Resolution
04:04
Pull with Rebase (GitHub)
04:50
Section Cleanup and push to GitHub
01:53
Section 10: Stashing
Simple Stash Example
05:55
Stashing Untracked Files and Using Pop
05:23
Managing Multiple Stashes
05:53
Stashing into a Branch
05:46
Section Cleanup and push to GitHub
01:22
Stashing Section Resources
3 pages
Section 11: Tagging
Simple Tag Example / Lightweight Tags
03:48
Annotated Tags
02:39
Comparing Tags
05:09
Tagging a Specific Commit
02:02
Updating Tags
01:44
Using Tags with GitHub
05:03
Tagging Section Resources
2 pages
Section 12: Bonus: Office Hour Sessions
Reset and Reflog (Office Hours, Session 1)
12:28
Compare Branches via GitHub (Office Hours, Session 1)
04:34
Compare Branches via Command Line (Office Hours, Session 1)
06:15
Stash vs Branch (Office Hours, Session 1)
09:50
Gitting Help (Office Hours, Session 1)
01:15
Cherry Pick (Office Hours, Session 1)
07:41
Section 13: Updates and Errata
Git Mac OS X Updates
2 pages
Section 14: Bonus: Resources and Special Offers
Bonus: Exclusive Student Discounts
Article

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Jason Taylor, Sr. Software Engineer, Technical Trainer on 13 Udemy Courses

With nearly 20 years of programming and software development experience, I started out teaching myself programming while in High School. I put myself through college working for a local Internet Service Provider as a programmer. Before finishing college, I developed and sold an award winning website to a Dot-Com start-up. After college, I have worked at several companies ranging from start-ups to large enterprises focusing on Java and client-side technologies (HTML/CSS/JavaScript). Throughout my career, I have opportunity to learn many software development best practices and exposure to several version control systems.

Ready to start learning?
Take This Course