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

https://goo.gl/12C1BF is my playlist on Git and GitHub where I put the latest versions of each:

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

GitKraken client

GitKraken Tutorial:

  1. Git GUI Intro 4 Apr 2016
  2. How to Rebase Oct 14, 2016 drag and drop
  3. Intro to GitFlow Jan 31, 2017

Tower client

Tower is a popular stand-alone Git client for Mac and Windows.

[Learn Git Video Course]

  1. What is Version Control [3:08]
  2. Installing & Configuring Git [1:40]
  3. The Basic workflow of Version Control [3:04]
  4. Creating a new repository [1:35]
  5. Cloning an Existing Repository [3:10]
  6. Inspecting Local Changes [4:10]
  7. Staging and Committing Changes [4:28]
  8. Commit History [1:40]
  9. Ignoring files [1:40]
  10. Introducing to Branches [1:40]
  11. Creating and Checking Out Branches [1:40]
  12. Merging Branches [1:40]
  13. Stash - Saving Changes Temporarily [3:16]
  14. Dealing with Merge Conflicts [1:40]

  15. Rebase as an Alternative to Merge [5:17]
  16. Branching Workflows [4:36]

CollabNet (TeamForge)

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

  1. Introduction (1/7) [8:19]
  2. Staging & Remotes (2/7) [10:32]
  3. Cloning & Branching (3/7) [6:29]
  4. Collaboration Basics (4/7) [5:57]
  5. Git Real - Branching (5/7) [6:57]
  6. Rebase belong to us (6/7) [4:25]
  7. 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



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

From the same head talking about Rails, Docker, Solidus, Elasticsearch, and React, a popular series:

  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


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.





Several people, on their personal time, created videos for others to enjoy for free.

Seth House

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.

  1. Objects
  2. refnames
  3. Remotes
  4. Merging and Mergtool
  5. git pull –rebase Video 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 ?

Dissecting Git’s Guts, Emily Xie - Git Merge 2016

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

  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

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

  1. Introduction To Git [13:43]

    Notice he defined MacOS alias gs for git status.

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

  3. Traversing Git History [18:55] looks into the .git folder. git log. git show.
  4. Git remote, fetch, merge, and pull [25:39]

    Notice he defined MacOS alias ll = ‘ls -al’

    [20:01] fast-forward merge. FETCH-HEAD in git pull.

  5. Git diff and git difftool [15:48] vimdiff, meld, etc. git diff HEAD HEAD^
  6. Git Stash [12:54]
  7. Introduction to Git Push [18:11]
  8. Introduction to Git Submodules [26:51]
  9. More about git submodules [19:46]
  10. The Git Index [17:52]
  11. Introduction to Git Branches [27:40]
  12. Introduction to Git Merge Conflicts [23:34]
  13. Manipulating Branches [18:14]
  14. Squash Commits with Git’s Interactive Rebase [14:53]
  15. Git Status as an Estimate [13:49]
  16. Introduction to Git cherry-pick [13:15]
  17. Git Archive [10:57]
  18. Git branches aren’t branches [15:28]
  19. Introduction to git rebase [17:27] 22 May 2016 uses the create_commits.py Python history emulator program.
  20. Remove a file from all git history [16:28]
  21. Introduction to git bisect [17:44]
  22. Introduction to git grep [11:34]
  23. Introduction to Git Hooks [17:02] 6 Nov 2016

Michael Koby

Videos show diagrams (no commands shown) from May 9, 2013. But blog at http://www.codecasts.tv contains code gists. Playlist:

  1. Video Introduction describes various version control programs.
  2. Video Intro to Git
  3. Video Undoing things
  4. Video Remotes
  5. Video Branching
  6. Video Branches
  7. Video Rebase 3-way merge
  8. Video Merge Conflicts


Among tutorials on JavaScript, WordPress, Sublime Text, CSS, and other front-end skills:

  1. What is Version Control? [9:35]
  2. Vocab (Repo, Staging, Commit, Push, Pull) [15:16]
  3. Installation, Command-line & Clone [14:35]
  4. GitHub (Pushing to a Server) [14:44] begins with getting an account.

Ameer Basha

GIT QuickStart using Visual Studio:

  1. 3 GIT Repository and clone [11:36] 14 Jan 2017
  2. 4 Working with branches [16:54] 16 Jan 2017
  3. 5 How to commit changes [23:48] 23 Jan 2017
  4. 6 Sychronization [15:14] 26 Jan 2017
  5. 7 Review code with pull requests [23:14] 26 Jan 2017
  6. 8 Merge/Rebase branches [28:04] 7 Feb 2017
  7. 9 Use of Cherry-Pick [16:51] 8 Feb 2017
  8. 10 Squash Merge [27:21] 9 Feb 2017
  9. 11 Undo changes [33:56] 14 Feb 2017
  10. 12 Publish code



This is one of a series on Git and GitHub:

  1. Git and GitHub videos

  2. Why Git? (file-based backups vs Git clone)
  3. Git-client based workflows
  4. Git rebase
  5. Git commits with a Tag and Signature
  6. Git utilities

  7. Git hooks
  8. GitHub data security

  9. TFS vs GitHub
  10. GitHub GraphQL API
  11. GitHub PowerShell API Programming
  12. GitHub GraphQL PowerShell Module