Git hub for designers

Post on 07-May-2015

282 views 6 download

description

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.

Transcript of Git hub for designers

GitHub for DesignersAsh Furrow, Teehan+Lax

@ashfurrow

Learn the fundamentals of git and GitHub in order to better collaborate with teams.

Agenda

• Git & GitHub

• Git is a Tool for Managing Files

• The Fundamentals

• Using Git doesn’t Mean Using the Command Line

4

Git & GitHub

Git & GitHub

• Git is a tool for managing files (more on that later)

• GitHub is a website for using git

6

Git & GitHub

• Git can be used independently of GitHub

• Even offline!

• This talk is about using Git & GitHub together

7

Git is a Tool for Managing Files

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

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

The Fundamentals

(More like FUNdamentals, amirite?)

Pulling Down from Remote

12

Your Branch

master

master

rem

ote

loca

l

Your Branch

Pull Request

PushPull Pull

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

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

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

Branching

• File system metaphor

16

Branching

17

Your Branch

master

Creating a new branch

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

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

Committing

• Commits include a “commit message” describing the changes

20

Committing

1. Stage changes

2. Commit staged changes

21

Committing

22

Your Branch

master

commit 1 commit 2

Local vs. Remote

• The master branch exists locally (on your computer) and remotely (on GitHub)

• Your new branch exists only locally

23

Local vs. Remote

• File server metaphor

24

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

Local vs. Remote

• Where did “master” come from?

• The remote

26

Pulling & Pushing

27

Your Branch

master

masterre

mot

e

loca

l

Pull

Pulling & Pushing

• Transitive verbs

• Pushing/pulling depends on context

28

Pulling & Pushing

1. Pull master from GitHub

2. Branch

3. Make commits

4. Push branch to GitHub

29

Pulling & Pushing

30

Your Branch

master

masterre

mot

e

loca

l

Your Branch

PushPull

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

Pull Requests

• Designate someone on your team as a “Gatekeeper”

32

Pull Requests

33

Your Branch

master

master

rem

ote

loca

l

Your Branch

Pull Request

PushPull

Pull Requests

• Now all of your changes exist on master

• Only the remote master

• You need to “pull” master down again

34

Pulling Down from Remote

35

Your Branch

master

master

rem

ote

loca

l

Your Branch

Pull Request

PushPull Pull

Cloning

Cloning

• Copies the remote repo to your local

• Only done once per repo

• “Initial Setup”

37

Pulling & Pushing

1. Clone

2. Pull master from GitHub

3. Branch

4. Make commits

5. Push branch to GitHub

6. Pull Request

38

Issues

• GitHub has “Issues”

• Issues are conversations about the code

• Bugs, features, improvements, etc...

• You can reference issues in commit messages

39

Issues

40

Conflicts

Conflicts

• Sometimes files conflict

• Git will usually sort it out

• Sometimes it can’t

42

Conflicts

<<<<<<< HEAD

Hello world

=======

Goodbye

>>>>>>> some_other_branch_name

43

Using Git doesn’t Mean Using the Command Line

Using Git doesn’t Mean Using the Command Line

• There are powerful, GUI tools for using git

• Git Tower

• GitHub for Mac

• SourceTree

45

Using Git doesn’t Mean Using the Command Line

• Important: all these tools rely on the fundamentals we learnt earlier

46

Demo

Recap

• Git & GitHub

• Git is a Tool for Managing Files

• The Fundamentals

• Using Git doesn’t Mean Using the Command Line

48

Ash FurrowOctober 3, 2013

Thanks!