Pro Yearly is on sale from $80 to $50! »

GitHub for Designers

0ebf471a3ae8df42a84f93a7efbbdbd0?s=47 Ash Furrow
October 03, 2013

GitHub for Designers

In this talk, Teehan+Lax developer Ash Furrow will guide designers through the basics of GitHub. He’ll discuss why GitHub is important and teach you the high-level concepts that will get you started with GitHub today.

0ebf471a3ae8df42a84f93a7efbbdbd0?s=128

Ash Furrow

October 03, 2013
Tweet

Transcript

  1. GitHub for Designers Ash Furrow, Teehan+Lax @ashfurrow

  2. None
  3. Learn the fundamentals of git and GitHub in order to

    better collaborate with teams.
  4. Agenda • Git & GitHub • Git is a Tool

    for Managing Files • The Fundamentals • Using Git doesn’t Mean Using the Command Line 4
  5. Git & GitHub

  6. Git & GitHub • Git is a tool for managing

    files (more on that later) • GitHub is a website for using git 6
  7. Git & GitHub • Git can be used independently of

    GitHub • Even offline! • This talk is about using Git & GitHub together 7
  8. Git is a Tool for Managing Files

  9. Git is a Tool for Managing Files • Git manages

    simple files • Text and flat graphics, not PSDs • CSS, HTML, PNG • PSDs are too complex for git to manage • Use LayerVault, instead 9
  10. Git is a Tool for Managing Files • What does

    “manage” mean? • History (who did what, and when?) • Conflicts (multiple people modifying the same file) 10
  11. The Fundamentals (More like FUNdamentals, amirite?)

  12. Pulling Down from Remote 12 Your Branch master master remote

    local Your Branch Pull Request Push Pull Pull
  13. A Repose About Repos • A repository – or “repo”

    – is a home for git to put all its files • Repos can exist locally (on your computer) or remotely (on GitHub) – more on this later 13
  14. Branches • Hard to define • Branches are used to

    isolate changes to files • Branches are cheap • Create lots of ‘em • Ideally one for each new feature/bug fix 14
  15. Branching • Creating a new branch is called “branching” •

    Branch to create new features • Create new branches off of “master” branch • Master is the canonical branch • “Latest and Greatest” 15
  16. Branching • File system metaphor 16

  17. Branching 17 Your Branch master Creating a new branch

  18. Commits • When you’ve completed a feature or a fix,

    make a commit • Commits are snapshots of the staged changes you made • Not all changes need to be committed 18
  19. Committing • Branches are just a series of commits •

    Committing enters that commit into the git log • You can see who changed what, and when 19
  20. Committing • Commits include a “commit message” describing the changes

    20
  21. Committing 1. Stage changes 2. Commit staged changes 21

  22. Committing 22 Your Branch master commit 1 commit 2

  23. Local vs. Remote • The master branch exists locally (on

    your computer) and remotely (on GitHub) • Your new branch exists only locally 23
  24. Local vs. Remote • File server metaphor 24

  25. Local vs. Remote • All work is done locally on

    local branches • When ready, you “push” a branch to the remote • More on pushing shortly 25
  26. Local vs. Remote • Where did “master” come from? •

    The remote 26
  27. Pulling & Pushing 27 Your Branch master master remote local

    Pull
  28. Pulling & Pushing • Transitive verbs • Pushing/pulling depends on

    context 28
  29. Pulling & Pushing 1. Pull master from GitHub 2. Branch

    3. Make commits 4. Push branch to GitHub 29
  30. Pulling & Pushing 30 Your Branch master master remote local

    Your Branch Push Pull
  31. Pull Requests • Pull requests are requests to have changes

    “pulled” into another branch, usually master • Pull requests exist only on GitHub • “Request” because someone else is looking it over for mistakes • Not that you ever make those 31
  32. Pull Requests • Designate someone on your team as a

    “Gatekeeper” 32
  33. Pull Requests 33 Your Branch master master remote local Your

    Branch Pull Request Push Pull
  34. Pull Requests • Now all of your changes exist on

    master • Only the remote master • You need to “pull” master down again 34
  35. Pulling Down from Remote 35 Your Branch master master remote

    local Your Branch Pull Request Push Pull Pull
  36. Cloning

  37. Cloning • Copies the remote repo to your local •

    Only done once per repo • “Initial Setup” 37
  38. Pulling & Pushing 1. Clone 2. Pull master from GitHub

    3. Branch 4. Make commits 5. Push branch to GitHub 6. Pull Request 38
  39. Issues • GitHub has “Issues” • Issues are conversations about

    the code • Bugs, features, improvements, etc... • You can reference issues in commit messages 39
  40. Issues 40

  41. Conflicts

  42. Conflicts • Sometimes files conflict • Git will usually sort

    it out • Sometimes it can’t 42
  43. Conflicts <<<<<<< HEAD Hello world ======= Goodbye >>>>>>> some_other_branch_name 43

  44. Using Git doesn’t Mean Using the Command Line

  45. Using Git doesn’t Mean Using the Command Line • There

    are powerful, GUI tools for using git • Git Tower • GitHub for Mac • SourceTree 45
  46. Using Git doesn’t Mean Using the Command Line • Important:

    all these tools rely on the fundamentals we learnt earlier 46
  47. Demo

  48. Recap • Git & GitHub • Git is a Tool

    for Managing Files • The Fundamentals • Using Git doesn’t Mean Using the Command Line 48
  49. Ash Furrow October 3, 2013 Thanks!