Binge watch all the vidoes on distributed source version control
- By Me - Wilson Mar
- By GitHub people
- From Microsoft
- From Git hosting companies
- Client Tooling
- From free training vendors
- From those who ask for money
- From Individuals
By Me - Wilson Mar
https://goo.gl/12C1BF is my playlist on Git and GitHub where I put the latest versions of each:
Introduction to the class “Git and GitHub for Developers and Testers” at Techwell conferences
By GitHub people
Tech Talk: Linus Torvalds on Git at Google
Co-founder of GitHub until 2014 ( @mojombo, http://tom.preston-werner.com/)
- Mastering Git Basics [53:22] casual
Scott Chacon, CIO of GitHub
git-scm.com/documentation/external-links lists written tutorials from those outside of Git’s employment, including Ry of Ry’s Git Tutorial.
Introduction to Git July 27, 2011 [1:22:11] talks internals.
Everything I Wish I Knew When I Started Using GitHub [43:20] by Brent Beer, GitHub Sales Engineer, speaking at OSCON in Portland, Oregon, July 2015.
Matthew McCullough, VP Training
- Setting Up Git & Configuring Git (1/10)
- Three Stage Thinking, The Git File Workflow & Speed (2/10)
- Cloning Repositories (3/10)
- Command Composition, Storage, and Hashes (4/10)
- Branches (5/10)
- Remotes (6/10)
- Tagging (7/10)
- Merging (8/10)
- Rebasing (9/10)
- Undo & Bonus (10/10)
Their repository: https://github.com/GitHub/training-kit
A rather cerebral introduction made in 2012:
Among many videos on GitHub’s video channel at:
It contains a simple history of several commits.
GitHub Universe conference
Git Merge conference
- Teaching People Git [31:14] at Git Merge 2015 by Emma Jane Hogbin Westby
For Free Code Camp on YouTube Sep 2016 quick (conceptual) videos with captions and graphics on a white board:
- Introduction to Git & GitHub [1:09]
- Branching and the GitHub Workflow [2:12]
- GitHub Workflow for Open Source [1:37]
- Cloning & Working Locally [1:48]
- Most Used Git Commands [1:58]
- How Commits Work [0:55]
- 2-Step Commit [1:29]
- Merging [0:42]
- Merge Conflicts [1:28]
- Rebasing [1:12]
- Undoing Commits [1:29]
- radiotfs.com is a podcast about Microsoft Visual Studio Team Foundation Server (TFS), Visual Studio Online, and Visual Studio Application Lifecycle Management (ALM).
Edward Thompson via O’Reilly
(@ethompson, edwaredthompson.com), Software Engineer at Microsoft who programmed libgit2 (implementations of Git using C language for C#, etc.), LibGit2Sharp, Visual Studio, Visual Studio Online Version Control
- Getting Started (Configuring; Creating, Opening, Cloning Repository)
- Working With Local Repositories
- Branching and Merging
- Working with Remote Repositories
- Working with Visual Studio Online
- Working With GitHub
- Interacting With Command Line Tools
Easiest on the eyes: Briana Swift from GitHub with Jeremy Foster, a Microsoft technical evangelist present a series on Microsoft Virtual Academy. But someone downloaded the videos to YouTube on 1 Nov 2016:
|1||Basic Concepts and the GitHub Workflow|
Clone entire history locally. Git changes your working directory for a branch.
Part 3 Git vs GitHub [3:49]
Part 4 GitHub Flow [8:58]
|2||GitHub in the Browser|
PROTIP: Always create repo with a README.md.
Part 2 [3:01]
|4||GitHub Integrations with Visual Studio:|
|5||GitHub on the Command Line:|
Jeremy Using Git and GitHub [54 minutes] 6 Oct 2016.
Microsoft broadcasts all their videos on Channel9.msdn.com.
Using Git with Visual Studio 2013 with Visual Studio Online and Windows Azure was created March, 2014 by @StevenBorg (salesy hand-wavy boss) and @JamesTupper (technical guy) of Northwest Cadence:
Mod 01: Choosing the Right Version Control begins at 12:38 (after the chit-chat)
“Learn Git before going into Visual Studio”
[3:04] On Fedora: yum install git-core, On Debian: apt-get install git
choco install poshgit
set-executionpolicy remotesignedand restart
[15:35] git config
[19:30] cinst git-credential-winstore
[7:39] Centralized Workflow (like Subversion, Perforce)
[8:10] Integration-Manager Workflow (sub repository)
[10:42] Dictator-Lieutenant Workflow
[0:50] git commit –amend
cherry-picking merges. [18:24] git revert commit
[20:01] pcottle is now http://learngitbranching.js.org/
git config alias
reset rewriting history
From Git hosting companies
In the GitLab YouTube channel:
Introduction to GitLab Workflow [49:14] [3:10] ToDos
Job @jobvo (VP of Product) introduced by Heather
IntelliJ IDEA IDE
This IDE is the darling of developers. From among videos for users of IntelliJ Community Edition on this Playlist are these on Git:
Atlassian Source Tree
Knowledge is Power: Getting out of trouble by understanding Git [46:50] at Devoxx Nov 2015 by Steve Smith dives into the Git data model.
git add some-file.txt
“A blank commit will always yield the same SHA” is WRONG because a time stamp is inside the content hashed”
He shows a video clip of “Prince of Persia” who gets out of trouble by using his time travel device.
Tim Pettersen (@kannonboy) created a useful video:
Nicola Paolucci, Git Evangelist at Atlassian Amsterdam:
Tobias Guenther (email@example.com in Germany) is a developer of Tower, a feature-rich git client for Mac OSX and (since 2017) for Windows.
Alternately, the same videos are shown at:
The web page has links to his $89 Advanced videos..
- What is Version Control [3:08]
- Installing & Configuring Git [1:40]
- The Basic workflow of Version Control [3:04]
- Creating a new repository [1:35]
- Cloning an Existing Repository [3:10]
- Inspecting Local Changes [4:10]
- Staging and Committing Changes [4:28]
- Commit History [1:40]
- Ignoring files [1:40]
- Introducing to Branches [1:40]
- Creating and Checking Out Branches [1:40]
- Merging Branches [1:40]
- Stash - Saving Changes Temporarily [3:16]
- Rebase as an Alternative to Merge [5:17]
- Branching Workflows [4:36]
From free training vendors
Git Real 1 and 2
This series on thoughtbot provides a real hands-on learning experience by making you enter the commands.
by Greg Pollock
- Introduction (1/7) [8:19]
- Staging & Remotes (2/7) [10:32]
- Cloning & Branching (3/7) [6:29]
- Collaboration Basics (4/7) [5:57]
- Git Real - Branching (5/7) [6:57]
- Rebase belong to us (6/7) [4:25]
- History and Configuration (7/7) [8:05]
Hashes as playing cards
The “Magic of Git Exposed” by Andy Benedict (andy at andybenedict.com) Apr 4, 2016 illustrates concepts using a custom deck of playing cards you can print out from US letter paper or European A4 paper.
- Part 1 [7:14] begins with an apt “incomprehensible incantations”.
[2:02] His “Git in One Sentence” is epic (and quite complete):
“Git is a version control system design to track the history of text files across multiple distributed instances, without the need for constant communication between instances, by representing files, their relationships, and their history as complete, raw data blogs stored in a compressed database indexed by statistically unique, content based, pseudo-random hashes and whose entire history and content can be accessed, from any arbitrary starting point, by means of recursive traversal or its node space, which is best represented in the form of a directed acyclic graph mapped, along with its content, in four dimensions.”
Instead of SHA hash codes, the video uses the more familiar references used in a 52-card deck of playing cards, such as the Jack of diamonds. The deck has a known sequence (Ace, King, Queen, Jack, 10, etc.) for each of four French “suits” (hearts, diamonds, clubs, spades).
Great idea. But I was confused by the explanation.
Part 3 [8:15] talks about a 3-way merge.
The deck of different players are different Git branches.
[5:44] git rebase
From the same head talking about Rails, Docker, Solidus, Elasticsearch, and React, a popular series:
- What is Git? [3:48]
- GIT: Installation, Configuration and First Commit [7:21]
- GIT: Working with Branches [6:36]
GIT: Merging and Workflow [7:10]
- GIT: Git Flow Introduction [5:06]
- GIT: Git Flow Feature Branch and Pushing to GitHub [11:16] 6 Dec 2015
- GIT: Git Flow and Github Pull Request [6:53] 1 Jan 2016
From those who ask for money
For $10 a month to Skillshare,
Learn Git: Everything You Need To Know by Adam Eubanks working on a Linux computer and using his https://github.com/khanradcoder account and
The course is also cross-sold on Udemy.com.
Each of the 12 videos is really short. The whole course is done in less than an hour.
A video of the presenter talking is at the lower-right corner. But a big microphone obsures the presenter’s face on some videos.
Nice that folders are shown along with commands.
For $300 per year, Pluralsight has purchased several other video training companies.
Git Internals pdf (from 2008, last updated 2013) by Scott Chacon (CTO of GitHub) is carried forward from PeepCode before Pluralsight bought it.
Using Git with a GUI Mar 08, 2016 [2h 38m] by Xavier Morera
How Git Works Mar 10, 2016 [1h 48m] by Paolo Perrotta
Using GitFlow Feb 22, 2016 [1h 4m] by Kevin Jones
Integrating Node Applications with GitHub by Daniel Stern
Advanced Git Tips and Tricks May 02, 2016 [2h 28m] by Enrico Campidoglio
End-to-end Software Development with Team Foundation Server 2015 May 09, 2016 [4h 26m] by Esteban Garcia
When LinkedIn bought Lynda in 2016, the whole Lynda library of videoes got included
in LinkedIn’s Premium subscription of $29/month.
That means you get to send emails to strangers and learn as well.
Someone put the videos from https://www.linkedin.com/learning/git-essential-training in YouTube. But realize that
CAUTION: You’re missing the quizzes unless you’re on Lynda.com.
1) What is Git -
- Understanding version control
- 02 The history of Git
- 03 About distributed version control
- 04 Who should use Git
2) Installing Git
- Installing Git on a Mac
- 02 Installing Git on Windows
- 03 Installing Git Installing Git on Linux
- 05 Installing Git Exploring Git auto completion
- 06 Installing Git Using Git help
3) Getting Started
- 01 Initializing a repository git init
- Git Directory-How files are Stored HEAD,config,refs,objects
- Making Commits git commit , git add ,git status
- Writing commit messages
- Viewing the commit log
4) Git Concepts and Architecture
- Exploring the 3 trees architecture (Staging area , working directory,repository)
- Git and Github workflow
- Using hash values SHA 1
- Working with the HEAD pointer
5) Making Changes to Files
- Adding files
- Editing files
- Viewing changes with diff
- Git Tutorial - Deleting files
- git mv- Moving and renaming files
- git checkout- Undoing working directory
7) Undoing Changes
- git reset HEAD -Undoing Changes Unstaging files
- Amending commits
- git checkout -Retrieving old versions
- git revert -Reverting a commit
- Git Tutorial - git reset - Using reset to undo commits
- Git Tutorial - Demonstrating a soft reset
- Git Tutorial - Demonstrating a mixed reset
- Git Tutorial -Demonstrating a hard reset
8) Ignoring files
- Ignoring Files Using .gitignore files
- Removing untracked files
- Ignoring Files Understanding what to ignore - gitignore
- Ignoring Files Ignoring tracked files
- Ignoring files globally
- Tracking empty directories
9) Navigating the Commit Tree
- Branching overview
- Branching Viewing and creating branches git branch
- Creating and switching branches
- Switching branches
- Switching branches with uncommitted changes git checkout -b
- git diff - Comparing branches
- Renaming branches
- Deleting branches
- 09 Branching Configuring the command prompt to show the branch
11) Merging Branches
- Merging Branches git merge
- Using fast forward merge vs true merge or recursive merge
- Resolving merge conflicts - 1
- SResolving merge conflicts - 2
- Exploring strategies to reduce merge conflicts
12) Stashing Changes
- Stashing- Saving changes in the stash git stash
- Viewing stashed changes
- Retrieving stashed changes
- Deleting stashed changes
- Using local and remote repositories
- Setting up a GitHub account
- Adding a remote repository
- Creating a remote branch
- Cloning a remote repository
- Tracking remote branches
- Pushing changes - git push
- Fetching changes git fetch
- Merging in fetched changes git merge
- Checking out remote branches
- Pushing to an updated remote branch git push
- Deleting a remote branch
- Enabling collaboration
- A collaboration workflow
14) Tools and Next Steps
Go to Lynda.com for these:
- Setting up aliases for common commands (Viewed)
- Using SSH keys for remote login (Viewed)
- Save Using SSH keys for remote login
- Exploring integrated development environments
- Exploring graphical user interfaces
- Understanding Git hosting
$9 a month at Laracasts.com gets you access to videos that are applicable to not just the Laravel PHP platform. There’s something about Jeffrey Way’s voice that’s it’s like a Disney toy unboxing video. (He’s at jeffrey-way.com).
In his Git Me Some Version Control series:
- Say Hi to Git [9:07]
- What Git Add Actually Does [5:28]
- Fixing and Amending Commits [4:28]
- Basic Workflow [6:07]
- Branching [10:14]
- Git Aliases [3:11]
- Handling Merge Conflicts [5:02]
- Stash Away Changes [8:14]
- Pushing to GitHub [6:26]
- Rebasing [8:09]
- Interactive Rebasing [10:17]
https://www.udacity.com/course/how-to-use-git-and-github–ud775 Udacity has a FREE hands-on tutorial by Google people. It pauses with quizzes along the way. So it takes some patience get through its thoroughness.
It starts by diving right in with diff.
Git and GitLab - From Start to Finish by Terrence (Terry) Cox. It is for those who pay a subscription of $286 per year to access all Linux Academy videos, not just these 3:20 hours over 22 vides (with no speed-up setting):
- Introduction [07:42]
- Installing Git [08:16]
- Basic Configuration [14:07]
- Empty Repositories [10:26]
- Git Basics [08:57]
- Git Ignore [07:45]
- Cloning: Local Repositories [11:43]
- Cloning: Remote Repositories [06:43]
- Tags [09:40]
- Branches [07:19]
- Merging [06:02]
- Git Log [08:23]
- Introduction to Github [07:44]
- Secure Communication [09:17]
- Working with Github [09:46]
- Intro to Bitbucket and Secure Communication [07:39]
- Working with Bitbucket [08:51]
- GitLab Prerequisites [07:59] on Centos
- GitLab CE Download, Install and Configure [10:42] CentOS7 on Apache curl from Amazon, Chef. Edit gitlab.rb for external_url. Default root / 5ivel!fe
- GitLab Architecture [09:24] Component Diagram
- GitLab User Administration and Secure Access [10:44]
- GitLab Group Administration [10:57]
- Git Merge vs Rebase? [7:40]
- An Introduction to Git and GitHub by Brian Yu (brianyu28) [38:26] shows a clear presentation, with demos.
Several people, on their personal time, created videos for others to enjoy for free.
From Sep 2015 to Nov 2016, this series I think is the most in-depth among all videos on YouTube. No diagrams. Everything shown occurs on the command line, even the title of each video.
BTW I don’t agree with Dan’s statement: “I purposefully focus on the command line usage of Git, because lets face it, if you’re using a GUI with Git, you probably have no idea what’s going on :P”
Dan is such a technical bad-ass he uses as an example something literally from rocket science (well, it’s a game about being in weightless space, but nonetheless it’s from NASA):
Introduction To Git [13:43]
Notice he defined MacOS alias gs for git status.
Your First Git Repo [13:07]
Dan’s hello world is in cpp (C++) source code, of course. ;)
He uses vim as a text editor.
And he shows how to run make to compile/build a binary file that should not be committed by defining the .gitignore file.
Discard changes with git checkout filename
Remove a cloned folder using rm -rf hello-world/.
- Traversing Git History [18:55] looks into the .git folder. git log. git show.
Notice he defined MacOS alias ll = ‘ls -al’
[20:01] fast-forward merge. FETCH-HEAD in git pull.
- Git diff and git difftool [15:48] vimdiff, meld, etc. git diff HEAD HEAD^
- Git Stash [12:54]
- Introduction to Git Push [18:11]
- Introduction to Git Submodules [26:51]
- More about git submodules [19:46]
- The Git Index [17:52]
- Introduction to Git Branches [27:40]
- Introduction to Git Merge Conflicts [23:34]
- Manipulating Branches [18:14]
- Squash Commits with Git’s Interactive Rebase [14:53]
- Git Status as an Estimate [13:49]
- Introduction to Git cherry-pick [13:15]
- Git Archive [10:57]
- Git branches aren’t branches [15:28]
- Introduction to git rebase [17:27] 22 May 2016 uses the create_commits.py Python history emulator program.
- Remove a file from all git history [16:28]
- Introduction to git bisect [17:44]
- Introduction to git grep [11:34]
- Introduction to Git Hooks [17:02] 6 Nov 2016
- Video Introduction describes various version control programs.
- Video Intro to Git
- Video Undoing things
- Video Remotes
- Video Branching
- Video Branches
- Video Rebase 3-way merge
- Video Merge Conflicts
- What is Version Control? [9:35]
- Vocab (Repo, Staging, Commit, Push, Pull) [15:16]
- Installation, Command-line & Clone [14:35]
- GitHub (Pushing to a Server) [14:44] begins with getting an account.
GIT QuickStart using Visual Studio:
- 3 GIT Repository and clone [11:36] 14 Jan 2017
- 4 Working with branches [16:54] 16 Jan 2017
- 5 How to commit changes [23:48] 23 Jan 2017
- 6 Sychronization [15:14] 26 Jan 2017
- 7 Review code with pull requests [23:14] 26 Jan 2017
- 8 Merge/Rebase branches [28:04] 7 Feb 2017
- 9 Use of Cherry-Pick [16:51] 8 Feb 2017
- 10 Squash Merge [27:21] 9 Feb 2017
- 11 Undo changes [33:56] 14 Feb 2017
- 12 Publish code
Lars Vogella in Germany turned his experience as a Eclipse developer with a knack for clear explanations into a publishing, training, and consulting business at vogella.com.
Ryan Ireland (Mijingo)
A 40-video intro for $71 at
https://mijingo.com/git-essentials (or $289 with a one-hour call). Some of them:
- Using Git Archive to Export Files [7:03] Apr 3, 2016
- Using Git in Sublime Text [7:03] Apr 3, 2016
- Changing Terms in Git Bisect
- How to Create and Apply Git Patches
It’s not the best, but this video comes up frequently on YouTube. Maybe it’s got a great name:
Git mastery in 20-minute increments series is the most fearless and deep. It was created when Seth is at cars.com in Jul 2012.
- Merging and Mergtool
- git pull –rebase shows commands update-ref, graph-dag script. Uses a program to graph branches to a graphics.
The “git-dag” utility to display Git DAGs is at https://github.com/whiteinge
Talk #2 - Digging deep into Git (Spanish)
GitHub for Noobs
Travis Neilson, “a noob, just like you, which makes me the perfect candidate” for making a 4-part series with back-beat music, cartoons, and video memes (for ad revenue and donations on Patreon.com).
- A Short History (1/4) [4:44] Feb 1, 2016 (difference between Git and GitHub)
- Common Workflows (2/4) [6:35] Feb 8, 2016
- Using the GitHub Desktop App (3/4) [23:59] Feb 15, 2016
- Using the Command Line (4/4) [23:12] Feb 22, 2016
- 000 - Introduction
- 100 - Distributed vs Central
- 200 - Basics of Committing
- 300 - More Committing
Untracked files and unstaged changes are not specific to a branch until a commit.
- 500 - Branching Part 2
- 600 - Branching Part 3
- 700 - Break
- 800 - Remote Repositories
- 900 - Intro to GitHub
- 1000 - Git Push
- 1100 - Git Fetch, Git Pull
- 1200 - Pull Requests Part 1
- 1250 - Pull Requests Part 2
- 1300 - Workflow
- 1400 - Where to go from here
- 1500 - Fast-Forward Merging Part 1
- 1550 - Fast-Forward Merging Part 2
- 1575 - Fast-Forward Merging Part 3
- 1600 - Rebasing Part 1
- 1650 - Rebasing Part 2
git rebase interactive :: practical example Nov 29, 2016 by Samer Buna
Git For Ages 4 And Up at Linux.conf.au 2013 at Canberra, Australia uses a Kinnex toy construction set to illustrate the chain of commits.
Extending DevOps practices to SQL Server databases - Branching & Merging with Git [1:00:29] 18 Jan 2017 by Redgate (database tool vendor)
Are authors of these books on Git camera-shy?
Alan Hohn wrote Conversational Git at http://blog.anvard.org/conversational-git. Code for the book’s website is in the gh-branches branch of a repo in GitHub. As of this writing, the last commit was in 2014, before Git 2.0. However, the book provides contrast of Git vs. Subversion.
David Demaree wrote Git for Humans at
This is one of a series on Git and GitHub:
- Why Git? (file-based backups vs Git clone)
- Git HEAD (Commitish references)
- Git-client based workflows
- Git whoops (correct mistakes)
- Git rebase
- Git interactive merge (imerge)
- Git custom commands
- Git utilities
- TFS vs GitHub
- GitHub REST API
- GitHub GraphQL API
- GitHub PowerShell API Programming
- GitHub GraphQL PowerShell Module