Wilson Mar bio photo

Wilson Mar

Hello. Hire me!

Email me Calendar Skype call 310 320-7878

LinkedIn Twitter Gitter Google+ Youtube

Github Stackoverflow Pinterest

Binge watch all the vidoes on distributed source version control


Wilson Mar

My playlist on Git and GitHub include:

By GitHub people

Tech Talk: Linus Torvalds on git at Google

Tom Preston-Werner

Co-founder of GitHub until 2014 ( @mojombo, http://tom.preston-werner.com/)

Scott Chacon, CIO of GitHub

Scott wrote websites git-scm.com, gitref.com, and progit.org book.

git-scm.com/documentation/external-links lists written tutorials from those outside of Git’s employment, including Ry of Ry’s Git Tutorial.

Mastering Git series by Matthew McCullough with Tim Berglund (using Git 1.7.2):

  1. Setting Up Git & Configuring Git (1/10)
  2. Three Stage Thinking, The Git File Workflow & Speed (2/10)
  3. Cloning Repositories (3/10)
  4. Command Composition, Storage, and Hashes (4/10)
  5. Branches (5/10)
  6. Remotes (6/10)
  7. Tagging (7/10)
  8. Merging (8/10)
  9. Rebasing (9/10)
  10. Undo & Bonus (10/10)

Matthew McCullough, VP Training

A rather cerebral introduction made in 2012:

  1. What is VCS? (Git-SCM) [5:59]
  2. What is Git? (Git-SCM) [8:14]

GitHub Universe conference

Git Merge conference

Briana Swift

For Free Code Camp on YouTube Sep 2016 quick (conceptual) videos with captions and graphics on a white board:

  1. Introduction to Git & GitHub [1:09]
  2. Branching and the GitHub Workflow [2:12]
  3. GitHub Workflow for Open Source [1:37]
  4. Cloning & Working Locally [1:48]
  5. Most Used Git Commands [1:58]
  6. How Commits Work [0:55]
  7. 2-Step Commit [1:29]
  8. Merging [0:42]
  9. Merge Conflicts [1:28]
  10. Rebasing [1:12]
  11. Undoing Commits [1:29]


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

Jeremy Foster

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

  2. Part 2 Distributed vs Centralized

    Clone entire history locally. Git changes your working directory for a branch.

  3. Part 3 Git vs GitHub [3:49]

  4. Part 4 GitHub Flow [8:58]


  5. Part 5 Open source. CONTRIBUTING.md [5:57]

2 GitHub in the Browser
  1. Part 1 Create repo. Avatars. Create issue. @mention [26:53]

    PROTIP: Always create repo with a README.md.

  2. Part 2 [3:01]

3 GitHub Desktop
  1. Part 1

  2. Part 2

  3. Part 3

  4. Part 4

4 GitHub Integrations with Visual Studio:
  1. Part 1

  2. Part 2

  3. Part 3

5 GitHub on the Command Line:
  1. Part 1 Pull request. Compare. @Mention [26:53]

  2. Part 2 Create project locally [17:48]


Jeremy Using Git and GitHub [54 minutes] 6 Oct 2016.

Channel 9

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:

Git Hosting


In the GitLab YouTube channel:

Client Tooling


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
    tree .git/

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

    [45:18] bisect

Training vendors

Git Real 1 and 2

This series provides a real hands-on learning experience by making you enter the commands.



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



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

Git Essential Training released 24 Aug 2012 [6h 25m] by Kevin Skoglund is in this YouTube playlist published Sep 26, 2015.

CAUTION: You’re missing the quizzes unless you’re on Lynda.com.

1) What is Git -

  1. Understanding version control

  2. 02 The history of Git

  3. 03 About distributed version control

  4. 04 Who should use Git

2) Installing Git

  1. Installing Git on a Mac

  2. 02 Installing Git on Windows

  3. 03 Installing Git Installing Git on Linux

  4. 05 Installing Git Exploring Git auto completion

  5. 06 Installing Git Using Git help

3) Getting Started

  1. 01 Initializing a repository git init

  2. Git Directory-How files are Stored HEAD,config,refs,objects

  3. Making Commits git commit , git add ,git status

  4. Writing commit messages

  5. Viewing the commit log

4) Git Concepts and Architecture

  1. Exploring the 3 trees architecture (Staging area , working directory,repository)

  2. Git and Github workflow

  3. Using hash values SHA 1

  4. Working with the HEAD pointer

5) Making Changes to Files

  1. Adding files

  2. Editing files

  3. Viewing changes with diff

  4. Git Tutorial - Deleting files

  5. git mv- Moving and renaming files

  6. git checkout- Undoing working directory

7) Undoing Changes

  1. git reset HEAD -Undoing Changes Unstaging files

  2. Amending commits

  3. git checkout -Retrieving old versions

  4. git revert -Reverting a commit

  5. Git Tutorial - git reset - Using reset to undo commits

  6. Git Tutorial - Demonstrating a soft reset

  7. Git Tutorial - Demonstrating a mixed reset

  8. Git Tutorial -Demonstrating a hard reset

8) Ignoring files

  1. Ignoring Files Using .gitignore files

  2. Removing untracked files

  3. Ignoring Files Understanding what to ignore - gitignore

  4. Ignoring Files Ignoring tracked files

  5. Ignoring files globally

  6. Tracking empty directories

9) Navigating the Commit Tree

10) Branching

  1. Branching overview

  2. Branching Viewing and creating branches git branch

  3. Creating and switching branches

  4. Switching branches

  5. Switching branches with uncommitted changes git checkout -b

  6. git diff - Comparing branches

  7. Renaming branches

  8. Deleting branches

  9. 09 Branching Configuring the command prompt to show the branch

11) Merging Branches

  1. Merging Branches git merge

  2. Using fast forward merge vs true merge or recursive merge

  3. Resolving merge conflicts - 1

  4. SResolving merge conflicts - 2

  5. Exploring strategies to reduce merge conflicts

12) Stashing Changes

  1. Stashing- Saving changes in the stash git stash

  2. Viewing stashed changes

  3. Retrieving stashed changes

  4. Deleting stashed changes

13) Remotes

  1. Using local and remote repositories

  2. Setting up a GitHub account

  3. Adding a remote repository

  4. Creating a remote branch

  5. Cloning a remote repository

  6. Tracking remote branches

  7. Pushing changes - git push

  8. Fetching changes git fetch

  9. Merging in fetched changes git merge

  10. Checking out remote branches

  11. Pushing to an updated remote branch git push

  12. Deleting a remote branch

  13. Enabling collaboration

  14. A collaboration workflow

14) Tools and Next Steps

  1. Setting up aliases for common commands (Viewed)
  2. Using SSH keys for remote login (Viewed)
  3. Save Using SSH keys for remote login
  4. Exploring integrated development environments
  5. Exploring graphical user interfaces
  6. 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:

  1. Say Hi to Git [9:07]
  2. What Git Add Actually Does [5:28]
  3. Fixing and Amending Commits [4:28]
  4. Basic Workflow [6:07]
  5. Branching [10:14]
  6. Git Aliases [3:11]
  7. Handling Merge Conflicts [5:02]
  8. Stash Away Changes [8:14]
  9. Pushing to GitHub [6:26]
  10. Rebasing [8:09]
  11. Interactive Rebasing [10:17]

More advanced:

One-off episodes:

Codemy School

A series of talking head waving hands:

  1. What is Git? [3:48]

  2. GIT: Installation, Configuration and First Commit

  3. GIT: Working with Branches

  4. GIT: Merging and Workflow

  5. GIT: Git Flow Introduction

  6. GIT: Git Flow Feature Branch and Pushing to GitHub [11:16] 6 Dec 2015

  7. GIT: Git Flow and Github Pull Request [6:53] 1 Jan 2016


Hands-on tutorial, starting with diff, by Google darlings:



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

  1. A Short History (1/4) [4:44] Feb 1, 2016 (difference between Git and GitHub)

  2. Common Workflows (2/4) [6:35] Feb 8, 2016

  3. Using the GitHub Desktop App (3/4) [23:59] Feb 15, 2016

  4. Using the Command Line (4/4) [23:12] Feb 22, 2016

Casey Li

In 2012 Casey Li uploaded a “Gitting to Know You” series on his YouTube channel. In his playlist:

Dan Gitschooldude

  1. 001 Introduction To Git
  2. 002 Your First Git Repo
  3. 003 Traversing Git History
  4. 004 Git remote, fetch, merge, and pull
  5. 005 Git diff and git difftool
  6. 006 Git Stash
  7. 007 Introduction to Git Push
  8. 008 Introduction to Git Submodules
  9. 009 More about git submodules
  10. 010 The Git Index
  11. 011 Introduction to Git Branches
  12. 012 Introduction to Git Merge Conflicts
  13. 013 Manipulating Branches
  14. 014 Squash Commits with Git’s Interactive Rebase
  15. 015 Git Status as an Estimate
  16. 016 Introduction to Git cherry-pick
  17. 017 Git Archive
  18. 018 Git branches aren’t branches
  19. 019 Introduction to git rebase
  20. 020 Remove a file from all git history
  21. 021 Introduction to git bisect
  22. 022 Introduction to git grep
  23. 023 Introduction to Git Hooks