YAPC Training - Git for Ages 4 and Up

YAPC NA admin at yapcna.org
Fri Mar 22 11:56:04 PDT 2013


Sunday, June 2nd or Thursday, June 6th


This is a full day class is taught by Michael Schwern. He simplifies
his teaching into easy to understand instructions of Git.

Git is hard, the interface is not the best, it’s not your fault if you
don’t get it. The Git guts are elegant, and it is better understood
from the inside out. Rather than learning the dozens of poorly named
and highly overloaded commands, it is simpler to learn the four or
five basic actions a Git repository can do, and how the commands

A Git repository is best understood visually. The class will teach how
to visualize the state of the repository, how commands change it, and
what you want the repository to look like all using children’s toys to
build a remarkably accurate presentation of the internals. Then you
can figure what commands you need to run to get from where you are to
where you want to be.

Once the basic repository internals are understood, previously
complicated and frustrating concepts like branches, remotes and rebase
become… it would be too far to say simple, but understandable and
eventually comfortable.

The full day class includes small group exercises. Your group will be
given situations to work through, list the commands they would run,
and draw the repository as it changes. Once you’ve have done it
visually, you’ll do it again on a computer.

The class deliberately avoids detail in favor of conceptual
understanding. Rather than try to teach you everything, we teach how
to think about everything. There are excellent resources for learning
the detail, and after this class you’ll understand them better.

Specifically, the class covers:

A flexible workflow, what sequence of commands should you run and why?
Adapting the workflow to these common variants…
Local vs remote work
Merging vs rebasing
Forking vs shared repositories
The staging area
The commit ID
Branching and merging
Commands we will cover are:

Initialization: init, clone
Isolation: branch, checkout
Work: add, rm, commit
Status: diff, log, status
Sharing: merge
Remotes: push, pull, remote
Fixing: rebase, reset, reflog
Misc: stash, tag

Pre and during class Google Moderator questions.
Collective note taking.
Git workflow cheat sheets.
Git command flash cards.
We know you’re coming to conference ready to learn, so Git it!

More information about the yapc mailing list