getting git - amazon s3s3.amazonaws.com/chacon/git-talk.pdf · what is git? how does git work? how...

523
Getting Git Scott Chacon

Upload: others

Post on 21-Jul-2020

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Getting GitScott Chacon

Page 2: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

2m Who is Scott?

What is Git?

How Does Git Work?

How Do I Use Git?

2m This Slide

3m

20m

12m

How Do I Deploy with Git?4m

Where Can I Learn More?2m

75%

35 min

15%

6 min

10%

4 min

Page 3: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

2m Who is Scott?

What is Git?

How Does Git Work?

How Do I Use Git?

2m This Slide

3m

20m

12m

How Do I Deploy with Git?4m

Where Can I Learn More?2m

75%

35 min

15%

6 min

10%

4 min

2m This Slide10%

4 min

Page 4: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

2m Who is Scott?

What is Git?

How Does Git Work?

How Do I Use Git?

2m This Slide

3m

20m

12m

How Do I Deploy with Git?4m

Where Can I Learn More?2m

75%

35 min

15%

6 min

10%

4 min2m Who is Scott?

10%

4 min

Page 5: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

2m Who is Scott?

What is Git?

How Does Git Work?

How Do I Use Git?

2m This Slide

3m

20m

12m

How Do I Deploy with Git?4m

Where Can I Learn More?2m

75%

35 min

15%

6 min

10%

4 min

75%

35 min

3m What is Git?

Page 6: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

2m Who is Scott?

What is Git?

How Does Git Work?

How Do I Use Git?

2m This Slide

3m

20m

12m

How Do I Deploy with Git?4m

Where Can I Learn More?2m

75%

35 min

15%

6 min

10%

4 min

75%

35 min

20m How Does Git Work?

Page 7: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

2m Who is Scott?

What is Git?

How Does Git Work?

How Do I Use Git?

2m This Slide

3m

20m

12m

How Do I Deploy with Git?4m

Where Can I Learn More?2m

75%

35 min

15%

6 min

10%

4 min

75%

35 min

12m How Do I Use Git?

Page 8: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

2m Who is Scott?

What is Git?

How Does Git Work?

How Do I Use Git?

2m This Slide

3m

20m

12m

How Do I Deploy with Git?4m

Where Can I Learn More?2m

75%

35 min

15%

6 min

10%

4 min

4m How Do I Deploy with Git?15%

6 min

Page 9: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

2m Who is Scott?

What is Git?

How Does Git Work?

How Do I Use Git?

2m This Slide

3m

20m

12m

How Do I Deploy with Git?4m

Where Can I Learn More?2m

75%

35 min

15%

6 min

10%

4 min

2m Where Can I Learn More?

15%

6 min

Page 10: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Who Is Scott?Introducing myself...

Page 11: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

2m Who is Scott?

What is Git?

How Does Git Work?

How Do I Use Git?

2m This Slide

3m

20m

12m

How Do I Deploy with Git?4m

Where Can I Learn More?2m

75%

35 min

15%

6 min

10%

4 min2m Who is Scott?

10%

4 min

Page 12: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Scott Anthony Chacon

Page 13: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

github.com/schacon

Page 14: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 15: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

www.gitcasts.com

Page 16: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 17: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

RailsGitXen3D CamerasHuge Flat Screensjepoirrier@flickr

Page 18: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 19: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

me

Page 20: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

introduce yourself

Page 21: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

introduce yourselfand your sweet projects...

Page 22: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

why is scott here?

Page 23: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

What is Git?

Page 24: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

2m Who is Scott?

What is Git?

How Does Git Work?

How Do I Use Git?

2m This Slide

3m

20m

12m

How Do I Deploy with Git?4m

Where Can I Learn More?2m

75%

35 min

15%

6 min

10%

4 min

75%

35 min

3m What is Git?

Page 25: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git is

Page 26: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

directory contentmanagement system

git is

Page 27: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

tree history storage system

git is

Page 28: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

stupid content tracker

git is

Page 29: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

a toolkit

git is

Page 30: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 31: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 32: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

the “plumbing”

Page 33: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 34: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 35: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

the “porcelain”

Page 36: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 37: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

not subversion!

git is

Page 38: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

forget subversion!

Page 39: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

not an evolution

Page 40: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

svnrcs cvs git

not an evolution

Page 41: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

svnrcs cvs git

not an evolution

Page 42: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

svnrcs cvs git

not an evolution

Page 43: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

source control taxonomy

Page 44: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

source control taxonomy

deltastorage

file A !1

file B

file C

C1 C2 C3 C4 C5

!2

!1 !2

!1 !2 !3

A

B

C

C1 C2 C3 C4 C5

A1

B

C1

A1

B

C2

A2

B1

C2

A2

B2

C3

DAGstorage

Page 45: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

source control taxonomy

deltastorage

file A !1

file B

file C

C1 C2 C3 C4 C5

!2

!1 !2

!1 !2 !3

A

B

C

C1 C2 C3 C4 C5

A1

B

C1

A1

B

C2

A2

B1

C2

A2

B2

C3

DAGstorage

Page 46: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

source control taxonomy

deltastorage

file A !1

file B

file C

C1 C2 C3 C4 C5

!2

!1 !2

!1 !2 !3

A

B

C

C1 C2 C3 C4 C5

A1

B

C1

A1

B

C2

A2

B1

C2

A2

B2

C3

DAGstorage

Page 47: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

source control taxonomy

deltastorage

file A !1

file B

file C

C1 C2 C3 C4 C5

!2

!1 !2

!1 !2 !3

A

B

C

C1 C2 C3 C4 C5

A1

B

C1

A1

B

C2

A2

B1

C2

A2

B2

C3

DAGstorage

Page 48: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

source control taxonomy

deltastorage

file A !1

file B

file C

C1 C2 C3 C4 C5

!2

!1 !2

!1 !2 !3

A

B

C

C1 C2 C3 C4 C5

A1

B

C1

A1

B

C2

A2

B1

C2

A2

B2

C3

DAGstorage

Page 49: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

source control taxonomy

deltastorage

file A !1

file B

file C

C1 C2 C3 C4 C5

!2

!1 !2

!1 !2 !3

A

B

C

C1 C2 C3 C4 C5

A1

B

C1

A1

B

C2

A2

B1

C2

A2

B2

C3

DAGstorage

Page 50: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

source control taxonomy

deltastorage

file A !1

file B

file C

C1 C2 C3 C4 C5

!2

!1 !2

!1 !2 !3

A

B

C

C1 C2 C3 C4 C5

A1

B

C1

A1

B

C2

A2

B1

C2

A2

B2

C3

DAGstorage

Page 51: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

source control taxonomy

deltastorage

file A !1

file B

file C

C1 C2 C3 C4 C5

!2

!1 !2

!1 !2 !3

A

B

C

C1 C2 C3 C4 C5

A1

B

C1

A1

B

C2

A2

B1

C2

A2

B2

C3

DAGstorage

Page 52: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

source control taxonomy

deltastorage

file A !1

file B

file C

C1 C2 C3 C4 C5

!2

!1 !2

!1 !2 !3

A

B

C

C1 C2 C3 C4 C5

A1

B

C1

A1

B

C2

A2

B1

C2

A2

B2

C3

DAGstorage

Page 53: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

source control taxonomy

deltastorage

file A !1

file B

file C

C1 C2 C3 C4 C5

!2

!1 !2

!1 !2 !3

A

B

C

C1 C2 C3 C4 C5

A1

B

C1

A1

B

C2

A2

B1

C2

A2

B2

C3

DAGstorage

Page 54: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

source control taxonomy

deltastorage

file A !1

file B

file C

C1 C2 C3 C4 C5

!2

!1 !2

!1 !2 !3

A

B

C

C1 C2 C3 C4 C5

A1

B

C1

A1

B

C2

A2

B1

C2

A2

B2

C3

DAGstorage

Page 55: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

source control taxonomy

deltastorage

file A !1

file B

file C

C1 C2 C3 C4 C5

!2

!1 !2

!1 !2 !3

A

B

C

C1 C2 C3 C4 C5

A1

B

C1

A1

B

C2

A2

B1

C2

A2

B2

C3

DAGstorage

Page 56: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

source control taxonomy

deltastorage

file A !1

file B

file C

C1 C2 C3 C4 C5

!2

!1 !2

!1 !2 !3

A

B

C

C1 C2 C3 C4 C5

A1

B

C1

A1

B

C2

A2

B1

C2

A2

B2

C3

DAGstorage

Page 57: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

source control taxonomy

deltastorage

file A !1

file B

file C

C1 C2 C3 C4 C5

!2

!1 !2

!1 !2 !3

A

B

C

C1 C2 C3 C4 C5

A1

B

C1

A1

B

C2

A2

B1

C2

A2

B2

C3

DAGstorage

Page 58: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

source control taxonomy

deltastorage

file A !1

file B

file C

C1 C2 C3 C4 C5

!2

!1 !2

!1 !2 !3

A

B

C

C1 C2 C3 C4 C5

A1

B

C1

A1

B

C2

A2

B1

C2

A2

B2

C3

DAGstorage

Page 59: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

svncvs

git

perforce

mercurial

time machinecp -r

rcs

source control taxonomy

darcs

deltastorage

DAGstorage

bazzar

bitkeeper

local

centralized

distributed

local

centralized

distributed

source control taxonomy

Page 60: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

svncvs

git

perforce

mercurial

time machinecp -r

rcs

source control taxonomy

darcs

deltastorage

DAGstorage

bazzar

bitkeeper

local

centralized

distributed

local

centralized

distributed

source control taxonomy

Page 61: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

svncvs

git

perforce

mercurial

time machinecp -r

rcs

source control taxonomy

darcs

deltastorage

DAGstorage

bazzar

bitkeeper

local

centralized

distributed

local

centralized

distributed

source control taxonomy

Page 62: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

svncvs

git

perforce

mercurial

time machinecp -r

rcs

source control taxonomy

darcs

deltastorage

DAGstorage

bazzar

bitkeeper

local

centralized

distributed

local

centralized

distributed

source control taxonomy

Page 63: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

svncvs

git

perforce

mercurial

time machinecp -r

rcs

source control taxonomy

darcs

deltastorage

DAGstorage

bazzar

bitkeeper

local

centralized

distributed

local

centralized

distributed

source control taxonomy

Page 64: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

svncvs

git

perforce

mercurial

time machinecp -r

rcs

source control taxonomy

darcs

deltastorage

DAGstorage

bazzar

bitkeeper

local

centralized

distributed

local

centralized

distributed

source control taxonomy

Page 65: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

svncvs

git

perforce

mercurial

time machinecp -r

rcs

source control taxonomy

darcs

deltastorage

DAGstorage

bazzar

bitkeeper

local

centralized

distributed

local

centralized

distributed

source control taxonomy

Page 66: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

svncvs

git

perforce

mercurial

time machinecp -r

rcs

source control taxonomy

darcs

deltastorage

DAGstorage

bazzar

bitkeeper

local

centralized

distributed

local

centralized

distributed

source control taxonomy

Page 67: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

svncvs

git

perforce

mercurial

time machinecp -r

rcs

source control taxonomy

darcs

deltastorage

DAGstorage

bazzar

bitkeeper

local

centralized

distributed

local

centralized

distributed

source control taxonomy

bazaar

Page 68: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

How Does Git Work?

Page 69: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

How Does Git Work?

?

Page 70: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

2m Who is Scott?

What is Git?

How Does Git Work?

How Do I Use Git?

2m This Slide

3m

20m

12m

How Do I Deploy with Git?4m

Where Can I Learn More?2m

75%

35 min

15%

6 min

10%

4 min

75%

35 min

20m How Does Git Work?

Page 71: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git

Page 72: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git directory

Page 73: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git directory

.git

Page 74: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git directory

.git

GIT_DIR

Page 75: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Git Directoryconfig file

hooks

index

object database

references

Page 76: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

Page 77: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object databasecontent

Page 78: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

new_content = type + ’ ‘ + content.size + \0 + content

content

Page 79: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

new_content = type + ’ ‘ + content.size + \0 + content

content “header”

Page 80: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

new_content = type + ’ ‘ + content.size + \0 + content

sha = Digest::SHA1.hexdigest(new_content)

content

Page 81: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

new_content = type + ’ ‘ + content.size + \0 + content

sha = Digest::SHA1.hexdigest(new_content)

content

“824aed035c0aa75d64c...”

Page 82: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

new_content = type + ’ ‘ + content.size + \0 + content

compressed = zlib::deflate(new_content)

sha = Digest::SHA1.hexdigest(new_content)

content

“824aed035c0aa75d64c...”

Page 83: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

new_content = type + ’ ‘ + content.size + \0 + content

compressed = zlib::deflate(new_content)

sha = Digest::SHA1.hexdigest(new_content)

content

“824aed035c0aa75d64c...”

path = “.git/objects/82/4aed035c0aa75d64c...”

Page 84: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

new_content = type + ’ ‘ + content.size + \0 + content

compressed = zlib::deflate(new_content)

sha = Digest::SHA1.hexdigest(new_content)

content

“824aed035c0aa75d64c...”

path = “.git/objects/82/4aed035c0aa75d64c...”

File.open(path, ‘w’) {|f| f.write(compressed)}

Page 85: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

new_content = type + ’ ‘ + content.size + \0 + content

compressed = zlib::deflate(new_content)

sha = Digest::SHA1.hexdigest(new_content)

content

“824aed035c0aa75d64c...”

path = “.git/objects/82/4aed035c0aa75d64c...”

File.open(path, ‘w’) {|f| f.write(compressed)}

“loose” format

Page 86: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object databasegit gc

Page 87: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object databasegit gc

same file with minor differences

Page 88: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

.git/objects/f1/032eed02413a1145c...

git gc

.git/objects/45/b983be36b73c0788d...

.git/objects/04/fb8aee105e6e445e8...

.git/objects/63/874f37013c1740acd...

.git/objects/1d/c9cbcb76cbb80fce1...

.git/objects/82/4aed035c0aa75d64c...

same file with minor differences

Page 89: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

.git/objects/f1/032eed02413a1145c...

git gc

.git/objects/45/b983be36b73c0788d...

.git/objects/04/fb8aee105e6e445e8...

.git/objects/63/874f37013c1740acd...

.git/objects/1d/c9cbcb76cbb80fce1...

.git/objects/82/4aed035c0aa75d64c...

.git/objects/pack/pack-999727..9f600.pack

.git/objects/pack/pack-999727..9f600.idx

same file with minor differences

Page 90: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

.git/objects/f1/032eed02413a1145c...

git gc

.git/objects/45/b983be36b73c0788d...

.git/objects/04/fb8aee105e6e445e8...

.git/objects/63/874f37013c1740acd...

.git/objects/1d/c9cbcb76cbb80fce1...

.git/objects/82/4aed035c0aa75d64c...

.git/objects/pack/pack-999727..9f600.pack

.git/objects/pack/pack-999727..9f600.idx

same file with minor differences

Page 91: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

.git/objects/f1/032eed02413a1145c...

git gc

.git/objects/45/b983be36b73c0788d...

.git/objects/04/fb8aee105e6e445e8...

.git/objects/63/874f37013c1740acd...

.git/objects/1d/c9cbcb76cbb80fce1...

.git/objects/82/4aed035c0aa75d64c...

.git/objects/pack/pack-999727..9f600.pack

.git/objects/pack/pack-999727..9f600.idx

same file with minor differences

“packed” format

Page 92: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

all git objects are stored this way

Page 93: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

new_content = type + ’ ‘ + content.size + \0 + content

4 types of git objects

Page 94: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

blob

Page 95: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

blob tree

Page 96: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

commit

blob tree

Page 97: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

commit tag

blob tree

Page 98: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

blob

Page 99: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Rakele

README

simplegit.rb

./

lib/

blob : a874b7

blob : a906cb

blob : a0a60a

Working Directory Git Directory

object databaseblob

Page 100: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database{SimpleGit Ruby Library======================

This library calls git commands and returns the output.

Author : Scott Chacon

blob [content size]\0

Zlib::Inflate

blob : a906cb

zlib::deflate

Page 101: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database{SimpleGit Ruby Library======================

This library calls git commands and returns the output.

Author : Scott Chacon

blob [content size]\0

Zlib::Inflate

blob : a906cb

content

zlib::deflate

Page 102: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database{SimpleGit Ruby Library======================

This library calls git commands and returns the output.

Author : Scott Chacon

blob [content size]\0

Zlib::Inflate

blob : a906cb

content

header

zlib::deflate

Page 103: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database{SimpleGit Ruby Library======================

This library calls git commands and returns the output.

Author : Scott Chacon

blob [content size]\0

Zlib::Inflate

blob : a906cb

content

header

compress zlib::deflate

Page 104: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database{SimpleGit Ruby Library======================

This library calls git commands and returns the output.

Author : Scott Chacon

blob [content size]\0

Zlib::Inflate

blob : a906cb

content

header

compress

object

zlib::deflate

Page 105: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

commit tag

blob tree

Page 106: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

tree

Page 107: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object databasetree

Rakele

README

simplegit.rb

./

lib/

blob : a874b7

blob : a906cb

blob : a0a60a

Working Directory Git Directory

Page 108: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object databasetree

Rakele

README

simplegit.rb

./

lib/

tree : 1a738d

tree : fe8971

Working Directory Git Directory

blob : a874b7

blob : a906cb

blob : a0a60a

Page 109: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database{100644 blob a906cb README100644 blob a874b7 Rakefile040000 tree fe8971 lib

tree [content size]\0

tree : 1a738d

Zlib::Inflatezlib::deflate

Page 110: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database{100644 blob a906cb README100644 blob a874b7 Rakefile040000 tree fe8971 lib

tree [content size]\0

tree : 1a738d

Zlib::Inflate

filename“inode” info

zlib::deflate

Page 111: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database{100644 blob a906cb README100644 blob a874b7 Rakefile040000 tree fe8971 lib

tree [content size]\0

tree : 1a738d

Zlib::Inflate

“block pointer”typemode

zlib::deflate

Page 112: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

commit tag

blob tree

Page 113: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

commit

Page 114: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

commit

tree

blob

tree

tree blob

blob

branch

HEAD

object databasecommit

Page 115: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database{Zlib::Inflate

tree e1b3ecparent a11befauthor Scott Chacon <[email protected]> 1205624433committer Scott Chacon <[email protected]> 1205624433

my second commit, which is better than the first

commit [content size]\0

commit : e1b3ec

zlib::deflate

Page 116: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database{Zlib::Inflate

tree e1b3ecparent a11befauthor Scott Chacon <[email protected]> 1205624433committer Scott Chacon <[email protected]> 1205624433

my second commit, which is better than the first

commit [content size]\0

commit : e1b3ec

zlib::deflate

Page 117: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database{Zlib::Inflate

tree e1b3ecparent a11befauthor Scott Chacon <[email protected]> 1205624433committer Scott Chacon <[email protected]> 1205624433

my second commit, which is better than the first

commit [content size]\0

commit : e1b3ec

zlib::deflate

Page 118: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database{Zlib::Inflate

tree e1b3ecparent a11befauthor Scott Chacon <[email protected]> 1205624433committer Scott Chacon <[email protected]> 1205624433

my second commit, which is better than the first

commit [content size]\0

commit : e1b3ec

zlib::deflate

Page 119: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database{Zlib::Inflate

tree e1b3ecparent a11befauthor Scott Chacon <[email protected]> 1205624433committer Scott Chacon <[email protected]> 1205624433

my second commit, which is better than the first

commit [content size]\0

commit : e1b3ec

zlib::deflate

Page 120: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

blob

branch

HEAD

commit

remote

tree

tag

object database

Page 121: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

commit tag

blob tree

Page 122: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

tag

Page 123: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

blob

branch

HEAD

commit

remote

tree

tag

object databasetag

Page 124: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database{Zlib::Inflate

object 0576fatype committag v0.1tagger Scott Chacon <[email protected]> 1205624655

this is my v0.1 tag

tag [content size]\0

tag : 0c819c

zlib::deflate

Page 125: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database{Zlib::Inflate

object 0576fatype committag v0.1tagger Scott Chacon <[email protected]> 1205624655

this is my v0.1 tag

tag [content size]\0

tag : 0c819c

zlib::deflate

Page 126: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database{Zlib::Inflate

object 0576fatype committag v0.1tagger Scott Chacon <[email protected]> 1205624655

this is my v0.1 tag

tag [content size]\0

tag : 0c819c

zlib::deflate

Page 127: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database{Zlib::Inflate

object 0576fatype committag v0.1tagger Scott Chacon <[email protected]> 1205624655

this is my v0.1 tag

tag [content size]\0

tag : 0c819c

zlib::deflate

Page 128: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database{Zlib::Inflate

object 0576fatype committag v0.1tagger Scott Chacon <[email protected]> 1205624655

this is my v0.1 tag

tag [content size]\0

tag : 0c819c

zlib::deflate

Page 129: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

commit tag

blob tree

Page 130: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

commit tag

blob tree

immutable

Page 131: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

object database

commit tag

blob tree

immutable

can’t be muted

Page 132: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Git Directoryconfig file

hooks

index

object database

references

Page 133: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

references

Page 134: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

blob

branch

HEAD

commit

remote

tree

tag

referenceslightweight, movablepointers to a commit

Page 135: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

blob

branch

HEAD

commit

remote

tree

tag

referenceslightweight, movablepointers to a commit

stored in .git/refs/*as simple files

Page 136: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

blob

branch

HEAD

commit

remote

tree

tag

references

Page 137: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

the object model

Page 138: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

commit

tree

blob

tree

tree blob

blob

branch

HEAD

Page 139: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

commit

tree

blob

tree

tree blob

blob

branch

HEAD

Page 140: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

commit

tree

blob

tree

tree blob

blob

branch

HEAD

Page 141: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

commit

tree

blob

tree

tree

commit

tree

blob

tree

tree blob

blob

branch

HEAD

tag

Page 142: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

commit

tree

blob

tree

tree

commit

tree

blob

tree

tree blob

blob

branch

HEAD

tag

Page 143: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

commit

tree

blob

tree

tree

commit

tree

blob

tree

tree blob

blob

branch

HEAD

tag

Page 144: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

commit

tree

blob

tree

tree

commit

tree

blob

tree

tree blob

blob

branch

HEAD

tag

Page 145: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

commit

tree

blob

tree

tree

commit

tree

blob

tree

tree blob

blob

branch

HEAD

tag

Page 146: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

commit

tree

blob

tree

tree

commit

tree

blob

tree

tree blob

blob

branch

HEAD

tag

Page 147: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

commit

tag

tree

blob

tree

tree

commit

tree

blob

tree

tree blob

commit

tree

blob

blob

branch

HEAD

Page 148: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

commit

tag

tree

blob

tree

tree

commit

tree

blob

tree

tree blob

commit

tree

blob

blob

branch

HEAD

Page 149: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

commit

tag

tree

blob

tree

tree

commit

tree

blob

tree

tree blob

commit

tree

blob

blob

branch

HEAD

Page 150: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

commit

tag

tree

blob

tree

tree

commit

tree

blob

tree

tree blob

commit

tree

blob

blob

branch

HEAD

Page 151: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

commit

tag

tree

blob

tree

tree

commit

tree

blob

tree

tree blob

commit

tree

blob

blob

branch

HEAD

Page 152: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

commit

tag

tree

blob

tree

tree

commit

tree

blob

tree

tree blob

commit

tree

blob

blob

branch

HEAD

Page 153: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

commit : a11bef

tag : 0c819c

tree : 1a738d

tree : fe8971

blob : a874b7

blob : a906cb

blob : a0a60a

README

Rakefile

lib

simplegit.rb

$ git checkout v0.1

.git/refs/tags/v0.1 "0c819c"

1

2

3

Page 154: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

commit : a11bef

tag : 0c819c

tree : 1a738d

tree : fe8971

blob : a874b7

blob : a906cb

blob : a0a60a

README

Rakefile

lib

simplegit.rb

$ git checkout v0.1

.git/refs/tags/v0.1 "0c819c"

1

2

3

Page 155: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

commit : a11bef

tag : 0c819c

tree : 1a738d

tree : fe8971

blob : a874b7

blob : a906cb

blob : a0a60a

README

Rakefile

lib

simplegit.rb

$ git checkout v0.1

.git/refs/tags/v0.1 "0c819c"

1

2

3

Page 156: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

commit : a11bef

tag : 0c819c

tree : 1a738d

tree : fe8971

blob : a874b7

blob : a906cb

blob : a0a60a

README

Rakefile

lib

simplegit.rb

$ git checkout v0.1

.git/refs/tags/v0.1 "0c819c"

1

2

3

Page 157: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

commit : a11bef

tag : 0c819c

tree : 1a738d

tree : fe8971

blob : a874b7

blob : a906cb

blob : a0a60a

README

Rakefile

lib

simplegit.rb

$ git checkout v0.1

.git/refs/tags/v0.1 "0c819c"

1

2

3

Page 158: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

the commit history

Page 159: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

blob

commit

treeC1}

branch

branch

Page 160: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

branching and merging

Page 161: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C1

master

C0

C2 C3

experiment

HEAD

Page 162: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C1

master

C0

C2 C3

experimentC1

master

C0

C2 C3

C4

experiment

C5

T1

git checkout -b experiment

HEAD

Page 163: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C1

master

C0

C2 C3

experiment

C1

master

C0

C2 C3

C4

experiment

C5

T1

git commit

HEAD

Page 164: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C1

master

C0

C2 C3

experiment

C1

master

C0

C2 C3

C4

experiment

C5

T1

git commitgit commit

HEAD

Page 165: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C1

master

C0

C2 C3

experiment

C1

master

C0

C2 C3

C4

experiment

C5

T1

HEAD

git checkout master

Page 166: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C1

master

C0

C2 C3

C4

experiment

C5

T1

C1

master

C0

C2 C3

C4

experiment

C5

T1git commit

HEAD

Page 167: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C1

master

C0

C2 C3

C4

experiment

C5

T1

C1

master

C0

C2 C3

C4

experiment

C5

T1git tag -a ‘v1.1’

HEAD

Page 168: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C1

master

C0

C2 C3

C4

experiment

C5

T1

git checkout experimentgit commit

HEAD

Page 169: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C1C0

C2 C3

C4

experiment

C5

C6

masterT1

git checkout mastergit merge experiment

HEAD

Page 170: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

remotes

Page 171: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C1

origin/master

C0 C2

masterC1

origin/master

C0 C2

master

Page 172: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C1

origin/master

C0 C2

masterC1

origin/master

C0 C2

master

Page 173: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C1

origin/master

C0 C2

master

C1

origin/master

C0 C2

master

Page 174: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git fetch originCL1

origin/master

C0 CL2

master

CR3CR1 CR4

origin/idea

CR2

Page 175: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

CL1

origin/master

C0 CL2

master

CR3CR1 CR4

origin/idea

CR2

git fetch origin

Page 176: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

CL1

origin/master

C0 CL2

master

CR3CR1 CR4

origin/idea

CR2

git checkout -b tryidea

CL1

origin/master

C0 CL2

master

CR3CR1 CR4

origin/idea

CR2

tryidea

CL3

Page 177: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

CL1

origin/master

C0 CL2

master

CR3CR1 CR4

origin/idea

CR2

tryidea

CL3

git merge origin/master origin/idea

Page 178: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

CL1

origin/master

C0 CL2

master

CR3CR1 CR4

origin/idea

CR2

tryidea

CL3

Page 179: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

CL1

origin/master

C0 CL2

master

CR3CR1 CR4

origin/idea

CR2

Page 180: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

remote workflow

Page 181: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

public repo

local repo

local repo

public repo

internet

A B C

Page 182: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

public repo

local repo

local repo

public repo

git push(ssh)

internet

A B C

A B C

Page 183: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

public repo

local repo

local repo

public repo

git push(ssh)

git fetch(git)

internet

A B C

A B C

A B C

Page 184: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

public repo

local repo

local repo

public repo

git push(ssh)

git fetch(git)

internet

A B C

A B C

A B C

D E F git commit

Page 185: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

public repo

local repo

local repo

public repo

git push(ssh)

git fetch(git)

git push(ssh)

internet

A B C

A B C

A B C

D E F

A B C

D E F

Page 186: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

public repo

local repo

local repo

public repo

git fetch(http)

git push(ssh)

git fetch(git)

git push(ssh)

internet

A B C

A B C

A B C

D E F

A B C

D E F

D E F

Page 187: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

public repo

local repo

local repo

public repo

git fetch(http)

git push(ssh)

git fetch(git)

git push(ssh)

internet

A B C

A B C

A B C

D E F

A B C

D E F

D E FD E F

Page 188: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

multiple remotes

Page 189: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developernick

developerjessica

my repo5ec

e4a4a7ce0 master

Page 190: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developernick

developerjessica

my repo5ec

e4a4a7ce0 master

commit

Page 191: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developernick

developerjessica

my repo5ec

e4a4a7ce0 master

tree

Page 192: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developernick

developerjessica

my repo5ec

e4a4a7ce0 master

blobs

Page 193: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

schacon/project

developernick

developerjessica

"public"

my repo5ec

e4a4a7ce0 master

git push public

public/master

5ece4a

4a7ce0

Page 194: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

schacon/project

developerjessica

"public"

my repo5ec

e4a4a7ce0 master

git clone (url)

public/master

5ece4a

4a7ce0

5ece4a

4a7ce0developer

nick

Page 195: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

schacon/project

developerjessica

"public"

my repo5ec

e4a4a7ce0 master

git commit

public/master

5ece4a

4a7ce0

5ece4a

4a7ce0developer

nickc12ec524f

Page 196: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

schacon/project

"public"

my repo5ec

e4a4a7ce0 master

public/master

5ece4a

4a7ce0

5ece4a

4a7ce0developer

nickc12ec524f git clone (url)

5ece4a

4a7ce0developer

jessica

Page 197: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

schacon/project

"public"

my repo5ec

e4a4a7ce0 master

public/master

5ece4a

4a7ce0

5ece4a

4a7ce0developer

nickc12ec524f

5ece4a

4a7ce0developer

jessica2fbdf74ea

a09git commit

Page 198: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

schacon/project

"public"

my repo5ec

e4a4a7ce0 master

public/master

5ece4a

4a7ce0

5ece4a

4a7ce0developer

nickc12ec524f

5ece4a

4a7ce0developer

jessica2fbdf74ea

a09git push

5ece4a

4a7ce0nickh/project

c12ec524f

5ece4a

4a7ce0jessica/project

2fbdf74eaa09

Page 199: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

schacon/project

"public"

my repo5ec

e4a4a7ce0 master

public/master

5ece4a

4a7ce0

5ece4a

4a7ce0developer

nickc12ec524f

5ece4a

4a7ce0developer

jessica2fbdf74ea

a09

git remote add nick git://github.com/nickh/project.git

5ece4a

4a7ce0nickh/project

c12ec524f

5ece4a

4a7ce0jessica/project

2fbdf74eaa09"nick"

git remote add nick git://github.com/nickh/project.git

Page 200: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

schacon/project

"public"

my repo5ec

e4a4a7ce0 master

public/master

5ece4a

4a7ce0

5ece4a

4a7ce0developer

nickc12ec524f

5ece4a

4a7ce0developer

jessica2fbdf74ea

a09

git remote add nick git://github.com/nickh/project.git

5ece4a

4a7ce0nickh/project

c12ec524f

5ece4a

4a7ce0jessica/project

2fbdf74eaa09"nick"“nick”

git remote add nick git://github.com/nickh/project.git

Page 201: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

schacon/project

"public"

my repo5ec

e4a4a7ce0 master

public/master

5ece4a

4a7ce0

5ece4a

4a7ce0developer

nickc12ec524f

5ece4a

4a7ce0developer

jessica2fbdf74ea

a09

git remote add jess git://github.com/jessica/project.git

5ece4a

4a7ce0nickh/project

c12ec524f

5ece4a

4a7ce0jessica/project

2fbdf74eaa09"nick" "jess"

git remote add jess git://github.com/jessica/project.git

Page 202: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

schacon/project

"public"

my repo5ec

e4a4a7ce0 master

public/master

5ece4a

4a7ce0

5ece4a

4a7ce0developer

nickc12ec524f

5ece4a

4a7ce0developer

jessica2fbdf74ea

a09

git remote add jess git://github.com/jessica/project.git

5ece4a

4a7ce0nickh/project

c12ec524f

5ece4a

4a7ce0jessica/project

2fbdf74eaa09"nick" "jess"

git remote add jess git://github.com/jessica/project.git

“jess”

Page 203: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

schacon/project

"public"

my repo5ec

e4a4a7ce0 master

public/master

5ece4a

4a7ce0

5ece4a

4a7ce0developer

nickc12ec524f

5ece4a

4a7ce0developer

jessica2fbdf74ea

a09

git remote add jess git://github.com/jessica/project.git

5ece4a

4a7ce0nickh/project

c12ec524f

5ece4a

4a7ce0jessica/project

2fbdf74eaa09"nick" "jess"

schacon/project

"public"

my repo5ec

e4a4a7ce0 master

public/master

5ece4a

4a7ce0

5ece4a

4a7ce0developer

nickc12ec524f

5ece4a

4a7ce0developer

jessica2fbdf74ea

a09

git fetch nick

5ece4a

4a7ce0nickh/project

c12ec524f

5ece4a

4a7ce0jessica/project

2fbdf74eaa09"nick" "jess"

c12ec524f nick/master

git fetch nick

Page 204: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

schacon/project

"public"

my repo5ec

e4a4a7ce0 master

public/master

5ece4a

4a7ce0

5ece4a

4a7ce0developer

nickc12ec524f

5ece4a

4a7ce0developer

jessica2fbdf74ea

a09

git fetch nick

5ece4a

4a7ce0nickh/project

c12ec524f

5ece4a

4a7ce0jessica/project

2fbdf74eaa09"nick" "jess"

c12ec524f nick/master

Page 205: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

schacon/project

"public"

my repo5ec

e4a4a7ce0 master

public/master

5ece4a

4a7ce0

5ece4a

4a7ce0developer

nickc12ec524f

5ece4a

4a7ce0developer

jessica2fbdf74ea

a09

git remote add jess git://github.com/jessica/project.git

5ece4a

4a7ce0nickh/project

c12ec524f

5ece4a

4a7ce0jessica/project

2fbdf74eaa09"nick" "jess"

git fetch jess

schacon/project

"public"

my repo5ec

e4a4a7ce0 master

public/master

5ece4a

4a7ce0

5ece4a

4a7ce0developer

nickc12ec524f

5ece4a

4a7ce0developer

jessica2fbdf74ea

a09

git fetch jess

5ece4a

4a7ce0nickh/project

c12ec524f

5ece4a

4a7ce0jessica/project

2fbdf74eaa09"nick" "jess"

ec524f nick/master

2fbdf74eaa09

jess/masterc12

schacon/project

"public"

my repo5ec

e4a4a7ce0 master

public/master

5ece4a

4a7ce0

5ece4a

4a7ce0developer

nickc12ec524f

5ece4a

4a7ce0developer

jessica2fbdf74ea

a09

git fetch nick

5ece4a

4a7ce0nickh/project

c12ec524f

5ece4a

4a7ce0jessica/project

2fbdf74eaa09"nick" "jess"

c12ec524f nick/master

Page 206: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

schacon/project

"public"

my repo5ec

e4a4a7ce0 master

public/master

5ece4a

4a7ce0

5ece4a

4a7ce0developer

nickc12ec524f

5ece4a

4a7ce0developer

jessica2fbdf74ea

a09

git fetch jess

5ece4a

4a7ce0nickh/project

c12ec524f

5ece4a

4a7ce0jessica/project

2fbdf74eaa09"nick" "jess"

ec524f nick/master

2fbdf74eaa09

jess/masterc12

Page 207: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

schacon/project

"public"

my repo5ec

e4a4a7ce0

master

public/master

5ece4a

4a7ce0

5ece4a

4a7ce0developer

nickc12ec524f

5ece4a

4a7ce0developer

jessica2fbdf74ea

a09

5ece4a

4a7ce0nickh/project

c12ec524f

5ece4a

4a7ce0jessica/project

2fbdf74eaa09"nick" "jess"

ec524f nick/master

2fbdf74eaa09

jess/masterc12

b3bc63

git merge nick jess

Page 208: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

schacon/project

"public"

my repo5ec

e4a4a7ce0

master

public/master

5ece4a

4a7ce0

5ece4a

4a7ce0developer

nickc12ec524f

5ece4a

4a7ce0developer

jessica2fbdf74ea

a09

git push public

5ece4a

4a7ce0nickh/project

c12ec524f

5ece4a

4a7ce0jessica/project

2fbdf74eaa09"nick" "jess"

ec524f nick/master

2fbdf74eaa09

jess/masterc12

b3bc63

e4aec524f

2fbdf74eaa09

c12

b3bc63

Page 209: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

schacon/project

"public"

my repo5ec

e4a4a7ce0

master

public/master

5ece4a

4a7ce0

5ece4a

4a7ce0developer

nickc12ec524f

5ece4a

4a7ce0developer

jessica2fbdf74ea

a09

5ece4a

4a7ce0nickh/project

c12ec524f

5ece4a

4a7ce0jessica/project

2fbdf74eaa09"nick" "jess"

ec524f nick/master

2fbdf74eaa09

jess/masterc12

b3bc63

e4aec524f

2fbdf74eaa09

c12

b3bc63

Page 210: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

schacon/project

"public"

my repo5ec

e4a4a7ce0

master

public/master

5ece4a

4a7ce0

5ece4a

4a7ce0developer

nickc12ec524f

5ece4a

4a7ce0developer

jessica2fbdf74ea

a09

5ece4a

4a7ce0nickh/project

c12ec524f

5ece4a

4a7ce0jessica/project

2fbdf74eaa09"nick" "jess"

ec524f nick/master

2fbdf74eaa09

jess/masterc12

b3bc63

e4aec524f

2fbdf74eaa09

c12

b3bc63

Page 211: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

schacon/project

"public"

my repo5ec

e4a4a7ce0

master

public/master

5ece4a

4a7ce0

5ece4a

4a7ce0developer

nickc12ec524f

5ece4a

4a7ce0developer

jessica2fbdf74ea

a09

5ece4a

4a7ce0nickh/project

c12ec524f

5ece4a

4a7ce0jessica/project

2fbdf74eaa09"nick" "jess"

ec524f nick/master

2fbdf74eaa09

jess/masterc12

b3bc63

e4aec524f

2fbdf74eaa09

c12

b3bc63

Page 212: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

schacon/project

"public"

my repo5ec

e4a4a7ce0

master

public/master

5ece4a

4a7ce0

5ece4a

4a7ce0developer

nickc12ec524f

5ece4a

4a7ce0developer

jessica2fbdf74ea

a09

5ece4a

4a7ce0nickh/project

c12ec524f

5ece4a

4a7ce0jessica/project

2fbdf74eaa09"nick" "jess"

ec524f nick/master

2fbdf74eaa09

jess/masterc12

b3bc63

e4aec524f

2fbdf74eaa09

c12

b3bc63

Page 213: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

rebasing

Page 214: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C1

C2

local jessica

master

Page 215: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C1

masterC2

C1

C2

local jessica

master

git clone

Page 216: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C1

master

C2

C3

C4

C1

C2

C5

C6

local jessica

master git commit

git commit

Page 217: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C1

master

C2

C3

C4

C1

C2

local jessica

pack

master

git fetch jessC6

C5

Page 218: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C1

jess/master

C2

C3

C4

C5

C6

local

master

Page 219: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C1

jess/master

C2

C3

C4

C5

C6master

git merge

Page 220: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C1

jess/master

C2

C3

C4

C5

C6

git merge

C7master

Page 221: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C1

jess/master

C2

C3

C4

C5

C6

git merge

C7master

C1

jess/master

C2

C3

C4

C5

C6master

git rebase

Page 222: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C3'

C4'

C3

C4

C1

jess/master

C2

C3

C4

C5

C6

git merge

C7master

C1

jess/master

C2

C5

C6

master

git rebase

Page 223: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C3'

C4'

C3

C4

C1

jess/master

C2

C3

C4

C5

C6

git merge

C7master

C1

jess/master

C2

C5

C6

master

git rebase

Page 224: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C3'

C4'

C3

C4

C1

jess/master

C2

C3

C4

C5

C6

git merge

C7master

C1

jess/master

C2

C5

C6

master

git rebase

1

2

Page 225: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C3'

C4'

C3

C4

C1

jess/master

C2

C3

C4

C5

C6

git merge

C7master

C1

jess/master

C2

C5

C6

master

git rebase

1

2

Page 226: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C3'

C4'

C3

C4

C1

jess/master

C2

C3

C4

C5

C6

git merge

C7master

C1

jess/master

C2

C5

C6

master

git rebase

Page 227: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C3'

C4'

C1

jess/master

C2

C3

C4

C5

C6

git merge

C7master

C1

jess/master

C2

C5

C6

master

git rebase

Page 228: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

the treeish

Page 229: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

the treeish

alternate ways to refer to objects or ranges of objects

Page 230: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Treeish

• full sha-1

• partial sha-1

• branch or tag name

• date spec

• ordinal spec

• carrot parent

• tilde spec

• tree pointer

• blob spec

• ranges

Page 231: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Full SHA1

6e453f523fa1da50ecb04431101112b3611c6a4d

Page 232: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Partial SHA16e453f523fa1da50ecb04431101112b3611c6a4d

6e453f523fa1da50

6e453

Page 233: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Branch, Remote or Tag Name

v1.0

master

origin/testing

Page 234: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Date Spec

master@{yesterday}

master@{1 month ago}

Page 235: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Ordinal Spec

master@{5}

5th prior value of ‘master’

Page 236: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Carrot Parent

master^2

2nd parent of ‘master’

Page 237: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Tilde Spec

master~2

2nd generation grandparent of ‘master’

Page 238: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Tree Pointer

master^{tree}

tree that ‘master’ points to

Page 239: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Blob Spec

master:/path/to/file

blob of that file in ‘master’ commit

Page 240: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Ranges

ce0e4..e4272

everything between two commits

Page 241: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Ranges

ce0e4..

everything since a commit

Page 242: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

examples

Page 243: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

ce0e4

master

5ec47 2f45e 4eadf 2fbb3 18cae

b3be1 a09c6 df2fa c36ae

jess/master

Page 244: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

ce0e4

master

5ec47 2f45e 4eadf 2fbb3 18cae

b3be1 a09c6 df2fa c36ae

jess/master

master^

Page 245: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

ce0e4

master

5ec47 2f45e 4eadf 2fbb3 18cae

b3be1 a09c6 df2fa c36ae

jess/master

master^2

Page 246: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

ce0e4

master

5ec47 2f45e 4eadf 2fbb3 18cae

b3be1 a09c6 df2fa c36ae

jess/master

master~2

Page 247: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

ce0e4

master

5ec47 2f45e 4eadf 2fbb3 18cae

b3be1 a09c6 df2fa c36ae

jess/master

master^^^2master~2^2

Page 248: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

ce0e4

master

5ec47 2f45e 4eadf 2fbb3 18cae

b3be1 a09c6 df2fa c36ae

jess/master

master^^^2master~2^2

Page 249: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

ce0e4

master

5ec47 2f45e 4eadf 2fbb3 18cae

b3be1 a09c6 df2fa c36ae

jess/master

master^^^2master~2^2

Page 250: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

ce0e4

master

5ec47 2f45e 4eadf 2fbb3 18cae

b3be1 a09c6 df2fa c36ae

jess/master

master~3..master^

Page 251: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

local stuff

Page 252: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

the index

Page 253: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Git Directoryconfig file

hooks

index

object database

references

Page 254: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

index

Page 255: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

index

working directory

repository

index

git add

git commit

Page 256: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

index

working directory

repository

index

git add

git commit

Page 257: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

index

working directory

repository

index

git add

git commit

Page 258: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

what?

Page 259: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD git wdir mtime fname

Object Directory Working DirectoryIndex

project/.git/index project/project/.git/objects

stage

Page 260: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD git wdir mtime fname

Object Directory Working DirectoryIndex

project/.git/index project/project/.git/objects

stage

git checkout

Page 261: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

e4a

24f

e4a

24f file1

file2

1:30

1:30

git wdir mtime fname

Index

project/.git/index

e4a

24f

stage

/file1

/file2

1:30

1:30

git checkout

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD git wdir mtime fname

Object Directory Working DirectoryIndex

project/.git/index project/project/.git/objects

stage

Page 262: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

e4a

24f

e4a

24f file1

file2

1:30

1:30

git wdir mtime fname

Index

project/.git/index

e4a

24f

stage

/file1

/file2

1:30

1:30

git checkout

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD git wdir mtime fname

Object Directory Working DirectoryIndex

project/.git/index project/project/.git/objects

stage

Page 263: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

e4a

24f

e4a

24f file1

file2

1:30

1:30

git wdir mtime fname

Index

project/.git/index

e4a

24f

stage

/file1

/file2

1:30

1:30

git checkout

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD git wdir mtime fname

Object Directory Working DirectoryIndex

project/.git/index project/project/.git/objects

stage

Page 264: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

e4a

24f

e4a

24f file1

file2

1:30

1:30

git wdir mtime fname

Index

project/.git/index

e4a

24f

stage

/file1

/file2

1:30

1:30

git checkout

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD git wdir mtime fname

Object Directory Working DirectoryIndex

project/.git/index project/project/.git/objects

stage

Page 265: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

e4a

24f

e4a

24f file1

file2

1:30

1:30

git wdir mtime fname

Index

project/.git/index

e4a

24f

stage

/file1

/file2

1:30

1:30

git checkout

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD git wdir mtime fname

Object Directory Working DirectoryIndex

project/.git/index project/project/.git/objects

stage

Page 266: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

e4a

24f

e4a

24f file1

file2

1:30

1:30

git wdir mtime fname

Index

project/.git/index

e4a

24f

stage

/file1

/file2

1:30

1:30

git checkout

Page 267: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

e4a

24f

e4a

24f file1

file2

1:30

1:30

git wdir mtime fname

Index

project/.git/index

e4a

24f

stage

/file1

/file2

1:30

1:31

vim file2

Page 268: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

1ba

24f

e4a

24f file1

file2

1:30

1:31

git wdir mtime fname

Index

project/.git/index

e4a

24f

stage

/file1

/file2

1:30

1:31

git status

Page 269: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

1ba

24f

e4a

24f file1

file2

1:30

1:31

git wdir mtime fname

Index

project/.git/index

e4a

24f

stage

/file1

/file2

1:30

1:31

git status

Page 270: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

1ba

24f

e4a

24f file1

file2

1:30

1:31

git wdir mtime fname

Index

project/.git/index

e4a

24f

stage

/file1

/file2

1:30

1:31

git status

Page 271: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

1ba

24f

e4a

24f file1

file2

1:30

1:31

git wdir mtime fname

Index

project/.git/index

e4a

24f

stage

/file1

/file2

1:30

1:31

Page 272: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

1ba

24f

e4a

24f file1

file2

1:30

1:31

git wdir mtime fname

Index

project/.git/index

1ba

24f

stage

/file1

/file2

1:30

1:311ba

git add file2

Page 273: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

1ba

24f

e4a

24f file1

file2

1:30

1:31

git wdir mtime fname

Index

project/.git/index

1ba

24f

stage

/file1

/file2

1:30

1:311ba

git add file2

Page 274: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

1ba

24f

e4a

24f file1

file2

1:30

1:31

git wdir mtime fname

Index

project/.git/index

1ba

24f

stage

/file1

/file2

1:30

1:311ba

git add file2

Page 275: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

1ba

24f

e4a

24f file1

file2

1:30

1:31

git wdir mtime fname

Index

project/.git/index

1ba

24f

stage

/file1

/file2

1:30

1:311ba

git add file2

Page 276: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

1ba

24f

e4a

24f file1

file2

1:30

1:31

git wdir mtime fname

Index

project/.git/index

1ba

24f

stage

/file1

/file2

1:30

1:311ba

git status

Page 277: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

1ba

24f

e4a

24f file1

file2

1:30

1:31

git wdir mtime fname

Index

project/.git/index

1ba

24f

stage

/file1

/file2

1:30

1:311ba

git status

Page 278: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

1ba

24f

1ba

24f file1

file2

1:30

1:31

git wdir mtime fname

Index

project/.git/index

1ba

24f

stage

/file1

/file2

1:30

1:311ba

a3e

83d

git commit

Page 279: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

1ba

24f

1ba

24f file1

file2

1:30

1:31

git wdir mtime fname

Index

project/.git/index

1ba

24f

stage

/file1

/file2

1:30

1:311ba

a3e

83d

git commit

Page 280: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

1ba

24f

1ba

24f file1

file2

1:30

1:31

git wdir mtime fname

Index

project/.git/index

1ba

24f

stage

/file1

/file2

1:30

1:311ba

a3e

83d

git commit

Page 281: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

1ba

24f

1ba

24f file1

file2

1:30

1:31

git wdir mtime fname

Index

project/.git/index

1ba

24f

stage

/file1

/file2

1:30

1:311ba

a3e

83d

git commit

Page 282: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

6d4

91b

1ba

24f file1

file2

1:32

1:32

git wdir mtime fname

Index

project/.git/index

1ba

24f

stage

/file1

/file2

1:32

1:321ba

a3e

83d

vim file1 file2 git status

Page 283: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

6d4

91b

1ba

24f file1

file2

1:32

1:32

git wdir mtime fname

Index

project/.git/index

1ba

24f

stage

/file1

/file2

1:32

1:321ba

a3e

83d

vim file1 file2 git status

Page 284: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

6d4

91b

1ba

24f file1

file2

1:32

1:32

git wdir mtime fname

Index

project/.git/index

1ba

24f

stage

/file1

/file2

1:32

1:321ba

a3e

83d

vim file1 file2 git status

Page 285: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

6d4

91b

1ba

24f file1

file2

1:32

1:32

git wdir mtime fname

Index

project/.git/index

1ba

91b

stage

/file1

/file2

1:32

1:321ba

a3e

83d

91b

git add file1

Page 286: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

6d4

91b

1ba

24f file1

file2

1:32

1:32

git wdir mtime fname

Index

project/.git/index

1ba

91b

stage

/file1

/file2

1:32

1:321ba

a3e

83d

91b

git add file1

Page 287: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

6d4

91b

1ba

24f file1

file2

1:32

1:32

git wdir mtime fname

Index

project/.git/index

1ba

91b

stage

/file1

/file2

1:32

1:321ba

a3e

83d

91b

git add file1

Page 288: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

6d4

91b

1ba

24f file1

file2

1:32

1:32

git wdir mtime fname

Index

project/.git/index

1ba

91b

stage

/file1

/file2

1:32

1:321ba

a3e

83d

91b

git status

Page 289: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

6d4

91b

1ba

24f file1

file2

1:32

1:32

git wdir mtime fname

Index

project/.git/index

1ba

91b

stage

/file1

/file2

1:32

1:321ba

a3e

83d

91b

git status

Page 290: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

6d4

91b

1ba

24f file1

file2

1:32

1:32

git wdir mtime fname

Index

project/.git/index

1ba

91b

stage

/file1

/file2

1:32

1:321ba

a3e

83d

91b

git status

Page 291: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

6d4

91b

1ba

91b file1

file2

1:32

1:32

git wdir mtime fname

Index

project/.git/index

1ba

91b

stage

/file1

/file2

1:32

1:321ba

a3e

83d

91b

1a7

6c5

git commit

Page 292: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

6d4

91b

1ba

91b file1

file2

1:32

1:32

git wdir mtime fname

Index

project/.git/index

1ba

91b

stage

/file1

/file2

1:32

1:321ba

a3e

83d

91b

1a7

6c5

git commit

Page 293: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5ec

e4a

4a7

ce0

master

ec5

24f

c12

HEAD

Object Directory Working Directory

project/project/.git/objects

6d4

91b

1ba

91b file1

file2

1:32

1:32

git wdir mtime fname

Index

project/.git/index

1ba

91b

stage

/file1

/file2

1:32

1:321ba

a3e

83d

91b

1a7

6c5

Page 294: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

How Do I Use Git?

Page 295: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

2m Who is Scott?

What is Git?

How Does Git Work?

How Do I Use Git?

2m This Slide

3m

20m

12m

How Do I Deploy with Git?4m

Where Can I Learn More?2m

75%

35 min

15%

6 min

10%

4 min

75%

35 min

12m How Do I Use Git?

Page 296: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

152 Total Commands

Page 297: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

43 Porcelain Commands

Page 298: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

We’ll Cover Half

Page 299: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

getting git

Page 300: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git.or.cz

Page 301: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git.or.cz

wgetmake

make install

Page 302: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

yum install git-core

apt-get install git-core

port install git-core +svn

Page 303: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

setup

Page 304: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git config --global user.name “Scott Chacon”

git config --global user.email “[email protected]

Page 305: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 306: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 307: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

1 Down

Page 308: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

getting a repo

Page 309: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git clone

Page 310: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Git Protocols

ssh://

http[s]://

git://

file:///

rsync://

Page 311: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Git Protocols

ssh://

http[s]://

git://

file:///

rsync://

Page 312: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Git Protocols

ssh://

http[s]://

git://

file:///

rsync://

push

Page 313: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Git Protocols

ssh://

http[s]://

git://

file:///

rsync://

pull

Page 314: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git clone

Page 315: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git clone

Page 316: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git clone

Page 317: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git clone

Page 318: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

initializing a repo

cd myproject

git init

git add .

git commit

Page 319: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 320: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 321: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 322: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 323: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 324: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 325: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

5 Down

Page 326: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

normal workflow

Page 327: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

.gitignore

Page 328: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 329: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 330: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

adding and committing

Page 331: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 332: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 333: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 334: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 335: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 336: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

working directory

repository

index

git add

git commit

Page 337: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 338: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 339: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

working directory

repository

index

git add

git commit

Page 340: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git log

Page 341: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 342: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 343: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 344: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 345: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 346: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 347: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 348: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 349: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git log --pretty

Page 350: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 351: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 352: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 353: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 354: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 355: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 356: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

6 Down

Page 357: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git diff

Page 358: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git diff (treeish1) (treeish2)

Page 359: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git diff master^ > change.diff

Page 360: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git diff master^ > change.diff

patch -p1 < change.diff

Page 361: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git diff master^ > change.diff

patch -p1 < change.diff

git apply change.diffor

Page 362: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git and patches

Page 363: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Single Commit

git format-patch origin/master --stdout > story.patch

git am < story.patch

Page 364: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Multiple Commits

$ git format-patch -o patches origin$ git send-email --to [email protected] patches

$ git am mbox

Page 365: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Multiple Commits

$ git format-patch -o patches origin$ git send-email --to [email protected] patches

$ git am mbox

1 patch file per commitin this directory

Page 366: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

example: patching rails

Page 367: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Patching Rails

git clone git://github.com/rails/rails.git

cd rails; (vim/emacs etc)

git format-patch origin/master --stdout > story.patch

upload story.patch to rails.lighthouseapp.com

Page 368: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Applying a Rails Patch

download story.patch from rails.lighthouseapp.com

git am < story.patch

Page 369: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

11 Down

Page 370: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

branch, merge, rebase

Page 371: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

master

develop

topic

Page 372: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

master

develop

topic

Page 373: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

master

develop

topic

Page 374: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

master

develop

topic

Page 375: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

master

develop

topic

Page 376: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

master

develop

topic

Page 377: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

master

develop

topic

Page 378: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

master

develop

topic

“production”

Page 379: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

master

develop

topic

“production”

“trunk”

Page 380: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

master

develop

topic

“production”

“trunk”convention!

Page 381: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

branching workflow

normal development

want to try an idea

have to do a hotfix

merge idea into development

push to production

Page 382: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

branching workflow

normal development

want to try an idea

have to do a hotfix

merge idea into development

push to production

Page 383: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 384: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 385: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 386: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 387: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 388: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 389: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 390: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C3

master

C0

develop

story95

C4

C1 C2

idea

Page 391: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

branching workflow

normal development

want to try an idea

have to do a hotfix

merge idea into development

push to production

Page 392: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 393: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 394: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 395: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C3

master

C0

develop

story95

C4

C1 C2

idea

Page 396: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C3

master

C0

develop

story95

C4

C1 C2

idea

Page 397: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 398: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 399: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

idea

C3

master

C0

develop

story95

C4

C1 C2

C5

C6

master

Page 400: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

branching workflow

normal development

want to try an idea

have to do a hotfix

merge idea into development

push to production

Page 401: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 402: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 403: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 404: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 405: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 406: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

idea

C3

master

C0

develop

story95

C4

C1 C2

C5

C6

master

Page 407: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

branching workflow

normal development

want to try an idea

have to do a hotfix

merge idea into development

push to production

Page 408: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 409: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 410: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 411: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 412: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

develop

C3

C0

story95

C4

C1 C2

C5

C6

master

Page 413: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

branching workflow

normal development

want to try an idea

have to do a hotfix

merge idea into development

push to production

Page 414: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 415: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 416: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

develop

C3

C0

story95

C4

C1 C2

C5

C6 C7

master

Page 417: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 418: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 419: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

develop

C4C0

story95

C5

C1 C2

C6'C3

master

Page 420: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

develop

C4C0

story95

C5

C1 C2

C6'C3

master

Page 421: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

develop

C4C0

story95

C5

C1 C2

C6'C3

master

Page 422: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

develop

C3

C0

story95

C4

C1 C2

C5

C6 C7

master

merge

rebasedevelop

C4C0

story95

C5

C1 C2

C6'C3

master

Page 423: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

one more time now!

Page 424: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C3

master

C0

develop

story95

C4

C1 C2

idea

Page 425: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

C3

master

C0

develop

story95

C4

C1 C2

idea

git checkout -b idea

Page 426: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

idea

C3

master

C0

develop

story95

C4

C1 C2

C5

C6

master

git commit

Page 427: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

idea

C3

master

C0

develop

story95

C4

C1 C2

C5

C6

master

git checkout mastergit commit

Page 428: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

develop

C3

C0

story95

C4

C1 C2

C5

C6

master

git checkout ideagit merge developgit branch -d idea

Page 429: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

develop

C3

C0

story95

C4

C1 C2

C5

C6 C7

master

git checkout mastergit merge develop

Page 430: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

17 Down

Page 431: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

sharing git

Page 432: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 433: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 434: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 435: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 436: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 437: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 438: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 439: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 440: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 441: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 442: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 443: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 444: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 445: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 446: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 447: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 448: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 449: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git clone git://github.com/schacon/simplegit2.git

Page 450: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

distributed workflow

Page 451: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

distributed workflowfetch, pull and push

Page 452: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

fetch

Page 453: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 454: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 455: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 456: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 457: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 458: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 459: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

pull

Page 460: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

pull = fetch + merge

Page 461: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

push

Page 462: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 463: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 464: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 465: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

git push

Page 466: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 467: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

We Know Em All!

Page 468: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

review

Page 469: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

• Local Commands

• git config

• git init

• git add

• git commit

• git status

• git tag

• git log

Page 470: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

• Local Commands

• git config

• git init

• git add

• git commit

• git status

• git tag

• git log

• Branchy Commands

• git checkout

• git branch

• git merge

• git rebase

Page 471: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

• Local Commands

• git config

• git init

• git add

• git commit

• git status

• git tag

• git log

• Branchy Commands

• git checkout

• git branch

• git merge

• git rebase

• Remotey Commands

• git remote

• git fetch

• git pull

• git clone

• git push

Page 472: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

• Local Commands

• git config

• git init

• git add

• git commit

• git status

• git tag

• git log

• Branchy Commands

• git checkout

• git branch

• git merge

• git rebase

• Remotey Commands

• git remote

• git fetch

• git pull

• git clone

• git push

• Patchy Commands

• git diff

• git apply

• git format-patch

• git am

Page 473: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

• Local Commands

• git config

• git init

• git add

• git commit

• git status

• git tag

• git log

• Branchy Commands

• git checkout

• git branch

• git merge

• git rebase

• Remotey Commands

• git remote

• git fetch

• git pull

• git clone

• git push

• Patchy Commands

• git diff

• git apply

• git format-patch

• git am

Page 474: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

popular workflows

Page 475: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

central repository model

Page 476: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developerdeveloper

developer

shared repositorydeveloper

developer

developer

developerdeveloper

developer

Page 477: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developer

shared repository

developer developer

git clone

Page 478: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developer

shared repository

developer developer

git push

Page 479: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developer

shared repository

developer developer

git push

Page 480: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developer

shared repository

developer developer

Page 481: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developer

shared repository

developer developer

git fetchgit merge

Page 482: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developer

shared repository

developer developer

git push

Page 483: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

dictator and lieutenants model

Page 484: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developerdeveloper

dictator

developer

lieutenant

blessed repository

developer

lieutenant

Page 485: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developerdeveloper

dictator

developer

lieutenant

blessed repository

developer

lieutenant

git clone

Page 486: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developerdeveloper

dictator

developer

lieutenant

blessed repository

developer

lieutenant

git fetchgit merge

Page 487: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developerdeveloper

dictator

developer

lieutenant

blessed repository

developer

lieutenant

git fetchgit merge

Page 488: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developerdeveloper

dictator

developer

lieutenant

blessed repository

developer

lieutenant

git fetch; git merge

Page 489: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developerdeveloper

dictator

developer

lieutenant

blessed repository

developer

lieutenant

git push

Page 490: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developerdeveloper

dictator

developer

lieutenant

blessed repository

developer

lieutenant

git fetch

Page 491: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

integration manager model

Page 492: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developerpublic

developerpublic

integration manager

blessedrepository

developerprivate

developerprivate

Page 493: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developerpublic

developerpublic

integration manager

blessedrepository

developerprivate

developerprivate

github.com/schacon/ticgit

/yob/ticgit /pope/ticgit

Page 494: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developerpublic

developerpublic

integration manager

blessedrepository

developerprivate

developerprivate

github.com/schacon/ticgit

/yob/ticgit /pope/ticgit“forks”

Page 495: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developerpublic

developerpublic

integration manager

blessedrepository

developerprivate

developerprivate

git push

Page 496: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developerpublic

developerpublic

integration manager

blessedrepository

developerprivate

developerprivate

git clone

Page 497: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developerpublic

developerpublic

integration manager

blessedrepository

developerprivate

developerprivate

git push

Page 498: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developerpublic

developerpublic

integration manager

blessedrepository

developerprivate

developerprivate

git fetchgit merge

Page 499: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developerpublic

developerpublic

integration manager

blessedrepository

developerprivate

developerprivate

git push

Page 500: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developerpublic

developerpublic

integration manager

blessedrepository

developerprivate

developerprivate

git fetchgit rebase / merge

Page 501: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

developerpublic

developerpublic

integration manager

blessedrepository

developerprivate

developerprivate

git push

Page 502: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

How Do I Deploy with Git?

Page 503: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

2m Who is Scott?

What is Git?

How Does Git Work?

How Do I Use Git?

2m This Slide

3m

20m

12m

How Do I Deploy with Git?4m

Where Can I Learn More?2m

75%

35 min

15%

6 min

10%

4 min

4m How Do I Deploy with Git?15%

6 min

Page 504: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

capistrano + git

Page 505: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

deploy.rb

Page 506: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

deploy.rb

Page 507: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

deploy.rb

Page 508: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 509: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 510: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 511: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

other cap options

set :branch, "master"

set :git_shallow_clone, 1

set :git_enable_submodules, 1

Page 512: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

ruby + git

Page 513: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

ruby + git

grit

git gem

git-ruby

Page 514: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

ruby + git

grit

git gem

git-ruby

Page 515: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 516: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can
Page 517: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

github.com/schacon/ruby-git

Page 518: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Where Can I Learn More?

Page 519: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

2m Who is Scott?

What is Git?

How Does Git Work?

How Do I Use Git?

2m This Slide

3m

20m

12m

How Do I Deploy with Git?4m

Where Can I Learn More?2m

75%

35 min

15%

6 min

10%

4 min

2m Where Can I Learn More?

15%

6 min

Page 520: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

Resourcesgit.or.cz

gitcasts.com

del.icio.us/popular/git

#git / #github on IRC

peepcode - git book and screencast

[email protected]

me. here.

Page 521: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

thats it!

Page 522: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

thats it!

gitcasts.com/git-talknotes, these slides, etc

Page 523: Getting Git - Amazon S3s3.amazonaws.com/chacon/git-talk.pdf · What is Git? How Does Git Work? How Do I Use Git? 2m This Slide 3m 20m 12m 4m How Do I Deploy with Git? 2m Where Can

thats it!

gitcasts.com/git-talknotes, these slides, etc

git.or.cz

gitcasts.com

del.icio.us/popular/git

#git / #github on IRC

peepcode

[email protected]