Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Harvard ABCD-WWW Git presentation

Jeff Byrnes
December 21, 2011

Harvard ABCD-WWW Git presentation

An introduction to Git, and why it's so awesome.

Jeff Byrnes

December 21, 2011
Tweet

More Decks by Jeff Byrnes

Other Decks in Programming

Transcript

  1. GIT, VERSION CONTROL, AND YOU. An introduction to the tastiest

    version control system. Ever. Courtesy of Jeff Byrnes [email protected]
  2. WHATCHU TALKIN’ ‘BOUT? • Who is this guy? • What

    is Git? • More importantly, what’s source control? • Why do I need it? • What makes Git so uber-sweet? And no so sweet? • Get the party started • Command me, o Git • Back to the Future • Branch me, baby • Embracing conflict • More resources
  3. WHO IS THIS GUY? • Jeff Byrnes • Web Developer

    (self- taught; HTML/CSS/PHP/JS) • Trained Musician (upright & electric bass) • Learned Git in just a few months, and now I’m here to share!
  4. WHAT IS GIT? • A distributed version control system •

    Created by Linus Torvalds, the guy behind Linux • Used by lots of people, big to small (think Google, Twitter, etc.) • Especially popular amongst open-source projects • GitHub, anyone? jQuery, Linux, etc.
  5. SOURCE CONTROL? • Source control is like a wiki for

    your text • Lots of different systems (here’s three): • CVS • Subversion • Mercurial Sorry, there isn’t a logo for CVS. It was made way back when logos weren’t cool.
  6. SOURCE CONTROL? • Older systems (CVS, Subversion) are centralized •

    Network access is required • Everyone is dependent on the server Server Committer Committer
  7. SOURCE CONTROL? • Git (and a few others) are distributed

    • This means every copy of the repository is a clone • So you can run off on your own & go nuts, or even push/pull to each other Server Clone Clone
  8. SOURCE CONTROL? • Well great, Jeff, but what if I’m

    a one-person operation? • It’s also fast. Like whoa fast. • It also tracks changes on a line-by-line basis, instead of on a file-by-file basis Give some examples of how line-by-line rocks the hizzouse
  9. THE SWEET • A history of your changes • Line-by-line

    changes • Cheap branching • No server needed
  10. THE NO-SO-SWEET • Not great for binary files (images, movies,

    etc.) • Lots to learn • Still very much a programmer’s tool
  11. GET THE PARTY STARTED • Install & identify yourself •

    Mac & Linux users: rejoice • Windows users: I’m sorry • git init • That’s it. Be sure to go over git config --global for username & email
  12. AT YOUR COMMAND • git add • git commit •

    git branch • git merge • git push / git pull
  13. BACK TO THE FUTURE (THINK, MCFLY, THINK!) • Lots of

    commands to undo • Here’s the two basic ones: • git revert • git reset
  14. BRANCH ME • A branch is a separate strand of

    work • Think features, bug fixes, flights of fancy • git checkout -b branchname Branches are cheap, and should be used wildly. Explain how checking out a branch changes the whole working tree.
  15. EMBRACE CONFLICT (MERGES AREN’T SCARY) • Git is conservative •

    Git always defers to your judgment • Throws a merge conflict if it even thinks something is awry • GUI tools (e.g., Tower, Sourcetree, TortoiseGit) make merges way easier
  16. MORE RESOURCES • Git - git-scm.com • Git Book -

    book.git-scm.com • Successful branching model - nvie.com/posts/a-successful-git- branching-model/ • Git Ready - gitready.com • Get Started w/ Git - alistapart.com/articles/get-started-with-git/ • Git Reference - gitref.org • Think Like A Git - think-like-a-git.net • Interactive Git Cheatsheet - ndpsoftware.com/git-cheatsheet.html