Books & Videos

Table of Contents

Chapter: Introduction

Git and GitHub LiveLessons—Workshop: Introduction

02m 12s

Chapter: Lesson 1: Configuring Git

Three levels of configuration

02m 20s

Basic configuration settings

05m 1s

Configuring line endings

03m 39s

Configuring aliases

02m 32s

Chapter: Lesson 2: Getting Started with Git

Creating your first Git repository

03m 11s

Committing in Git

05m 14s

Understanding a Git commit

02m 20s

The benefits of the staging area

05m 15s

Git log for viewing history

02m 7s

Chapter: Lesson 3: Getting Started with GitHub

Creating a repository in GitHub

03m 1s

Uploading your repo to GitHub

01m 44s

Creating a repository after starting to code

02m 18s

Chapter: Lesson 4: Files in Git—Renaming, Deleting and Ignoring

How to rename a file in Git

09m 47s

Deleting a file in Git

02m 41s

Ignoring files using a .gitignore file

06m 37s

Global gitexcludes and other Git ignore options

04m 29s

Git ignore precedence

04m 2s

Git commit -a

01m 54s

Chapter: Lesson 5: Branching, Merging and Rebasing

Introducing branching

04m 54s

Merging a branch

02m 10s

Creating a fast forward merge

05m 33s

Introducing recursive merges

04m 7s

“No fast forward” recursive merges

04m 30s

Resolving merge conflicts

14m 38s

Another merge conflict example

08m 9s

Git Diff

04m 49s

Introducing rebasing

02m 43s

Rebasing a branch

06m 6s

Handling rebase conflicts

09m 41s

Chapter: Lesson 6: Git Internals

Introducing “Git under the hood”

00m 59s

Creating the first commit

01m 35s

Exploring the object store

01m 47s

cat-file to explore object contents

05m 1s

The benefits of Git’s use of SHA1 hashes

01m 25s

Git as a content store (how many new hashes)

06m 53s

Understanding remotes and their configuration

05m 52s

Configuring your push default

02m 26s

Fetch versus pull

08m 14s

Merge versus rebase on pull

06m 7s

Chapter: Lesson 7: Collaborating via GitHub

Cloning a repository

05m 10s

Forking a repository

07m 19s

Contributing via a pull request from a fork

03m 23s

Approving a pull request from a fork

01m 43s

Use cases for fork based collaboration

02m 3s

Single repo collaboration directly on master

05m 38s

Single repo collaboration using feature branches

04m 49s

Contributing to another feature branch

01m 52s

Creating a pull request within a single repo

02m 28s

Collaborating on a pull request

03m 39s

Merging in a pull request

02m 0s

Chapter: Lesson 8: Reviewing a Project on GitHub

Getting an overview of a project on GitHub using the README

02m 2s

Getting more information about a project

02m 28s

Introducing issues

05m 2s

Viewing project state through pulse and graphs

05m 50s

Chapter: Lesson 9: Configuring a Project on GitHub

Basic configuration options and renaming a repo

02m 40s

GitHub Pages

02m 16s

Adding collaborators and integrations

03m 45s

Configuring deploy keys

00m 56s

Chapter: Lesson 10: Tags and Releases

Three types of tags

06m 12s

Release tags versus release branches

05m 38s

Cherry pick for reusing code across long running release branches

05m 1s

Git stash for reusing code

03m 41s

Pushing tags up to GitHub and using releases

02m 8s

Chapter: Lesson 11: How to Undo Almost Anything Using Git

Private versus public history and git revert

03m 49s

Don’t push too often

01m 27s

Git commit --amend

03m 52s

Git reset

06m 21s

Introducing the reflog

05m 36s

Rebase interactive

03m 2s

Chapter: Q&A

Question 1: Can you create a GitHub repo without using your browser?

00m 36s

Question 2: What’s the difference between global and system configuration?

00m 41s

Question 3: When dealing with merge conflict in a large file, how do you find the conflicts?

00m 39s

Question 4: Does Git show the two full, different versions of a file or just the differences?

00m 44s

Question 5: Does a merge commit always include all of the files I created on the branch?

01m 19s

Question 6: Isn’t it dangerous that you can make a bunch of changes to your code by merging in a branch?

01m 9s

Question 7: Do merges work the same way with merging into integration branches as into master?

01m 10s

Question 8: How do you handle long running release branches?

00m 49s