Slide 1

Slide 1 text

Introduction to Git Scott Chacon

Slide 2

Slide 2 text

Me

Slide 3

Slide 3 text

Scott Chacon

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

git-scm.com

Slide 6

Slide 6 text

http://gitref.org

Slide 7

Slide 7 text

http://progit.org

Slide 8

Slide 8 text

http://progit.org

Slide 9

Slide 9 text

Slide 10

Slide 10 text

@chacon twitter

Slide 11

Slide 11 text

Slide 12

Slide 12 text

What is Git?

Slide 13

Slide 13 text

Git is an open source, distributed version control system designed for speed and efficiency

Slide 14

Slide 14 text

Git is an open source, distributed version control system designed for speed and efficiency

Slide 15

Slide 15 text

git-scm.com

Slide 16

Slide 16 text

Git is an open source, distributed version control system designed for speed and efficiency

Slide 17

Slide 17 text

File Checkout Version Database Version 3 Version 2 Version 1 Central VCS Server Computer A

Slide 18

Slide 18 text

File Checkout Version Database Version 3 Version 2 Version 1 Central VCS Server Computer A File Checkout Computer B

Slide 19

Slide 19 text

Version Database Version 3 Version 2 Version 1 Server Computer File Computer A Version Database Version 3 Version 2 Version 1 File Computer B Version Database Version 3 Version 2 Version 1

Slide 20

Slide 20 text

Fully Distributed

Slide 21

Slide 21 text

(almost) everything is local

Slide 22

Slide 22 text

which means

Slide 23

Slide 23 text

which means everything is fast

Slide 24

Slide 24 text

which means everything is fast every clone is a backup

Slide 25

Slide 25 text

which means everything is fast every clone is a backup work offline

Slide 26

Slide 26 text

No Network Needed

Slide 27

Slide 27 text

No Network Needed Performing a diff

Slide 28

Slide 28 text

No Network Needed Performing a diff Viewing file history

Slide 29

Slide 29 text

No Network Needed Performing a diff Viewing file history Committing changes

Slide 30

Slide 30 text

No Network Needed Performing a diff Viewing file history Committing changes Merging branches

Slide 31

Slide 31 text

No Network Needed Performing a diff Viewing file history Committing changes Merging branches Obtaining other revisions of a file

Slide 32

Slide 32 text

No Network Needed Performing a diff Viewing file history Committing changes Merging branches Obtaining other revisions of a file Switching branches

Slide 33

Slide 33 text

No Network Needed Performing a diff Viewing file history Committing changes Merging branches Obtaining other revisions of a file Switching branches

Slide 34

Slide 34 text

Immutable

Slide 35

Slide 35 text

(almost) never removes data

Slide 36

Slide 36 text

Snapshots, not Patches

Slide 37

Slide 37 text

File Based Delta Storage

Slide 38

Slide 38 text

#include int main(void) { printf("Hello\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hello.c Commit A This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; } README.txt hello.c hola.c

Slide 39

Slide 39 text

#include int main(void) { printf("Hello\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hello.c Commit A This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; } README.txt hello.c hola.c

Slide 40

Slide 40 text

#include int main(void) { printf("Hello\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hello.c Commit A This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; } README.txt hello.c hola.c

Slide 41

Slide 41 text

#include int main(void) { printf("Hello\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hello.c Commit A This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; } README.txt hello.c hola.c #include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hello.c Commit A This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; } - printf("Hola\n"); + printf("Hola\n"); Commit B README.txt hello.c hola.c

Slide 42

Slide 42 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hello.c Commit A This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; } - printf("Hola\n"); + printf("Hola\n"); Commit B README.txt hello.c hola.c

Slide 43

Slide 43 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hello.c Commit A This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; } - printf("Hola\n"); + printf("Hola\n"); Commit B README.txt hello.c hola.c

Slide 44

Slide 44 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hello.c Commit A This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; } - printf("Hola\n"); + printf("Hola\n"); Commit B README.txt hello.c hola.c hola.c

Slide 45

Slide 45 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hola.c Commit A This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; } - printf("Hola\n"); + printf("Hola\n"); Commit B Commit C README.txt hello.c hola.c (rename)

Slide 46

Slide 46 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hola.c Commit A This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; } - printf("Hola\n"); + printf("Hola\n"); Commit B Commit C README.txt hello.c hola.c (rename)

Slide 47

Slide 47 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hola project. Licensed under GPL. README.txt hola.c Commit A This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; } - printf("Hola\n"); + printf("Hola\n"); Commit B Commit C -Hello +Hola Commit D README.txt hello.c hola.c (rename) (copy) #include int main(void) { printf("Hola\n"); return 0; } hello.c #include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hola.c Commit A This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; } - printf("Hola\n"); + printf("Hola\n"); Commit B Commit C README.txt hello.c hola.c (rename)

Slide 48

Slide 48 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hola project. Licensed under GPL. README.txt hola.c Commit A This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; } - printf("Hola\n"); + printf("Hola\n"); Commit B Commit C -Hello +Hola Commit D README.txt hello.c hola.c (rename) (copy) #include int main(void) { printf("Hola\n"); return 0; } hello.c #include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hola.c Commit A This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; } - printf("Hola\n"); + printf("Hola\n"); Commit B Commit C README.txt hello.c hola.c (rename)

Slide 49

Slide 49 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hola project. Licensed under GPL. README.txt hola.c Commit A This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; } - printf("Hola\n"); + printf("Hola\n"); Commit B Commit C -Hello +Hola Commit D README.txt hello.c hola.c (rename) (copy) #include int main(void) { printf("Hola\n"); return 0; } hello.c

Slide 50

Slide 50 text

Git Snapshots

Slide 51

Slide 51 text

#include int main(void) { printf("Hello\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hello.c Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13

Slide 52

Slide 52 text

#include int main(void) { printf("Hello\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13 CHECKSUM

Slide 53

Slide 53 text

#include int main(void) { printf("Hello\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13 CHECKSUM

Slide 54

Slide 54 text

#include int main(void) { printf("Hello\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hello.c Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13

Slide 55

Slide 55 text

#include int main(void) { printf("Hello\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hello.c Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13

Slide 56

Slide 56 text

#include int main(void) { printf("Hello\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hello.c Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13

Slide 57

Slide 57 text

#include int main(void) { printf("Hello\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hello.c Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13

Slide 58

Slide 58 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hello.c Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13

Slide 59

Slide 59 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hello.c Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13 #include int main(void) { printf("Hola\n"); return 0; } 6d4 Commit B c3d README.txt 6d4 hello.c

Slide 60

Slide 60 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hello.c Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13 #include int main(void) { printf("Hola\n"); return 0; } 6d4 Commit B c3d README.txt 6d4 hello.c

Slide 61

Slide 61 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hello.c Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13 #include int main(void) { printf("Hola\n"); return 0; } 6d4 Commit B c3d README.txt 6d4 hello.c

Slide 62

Slide 62 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hello.c Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13 #include int main(void) { printf("Hola\n"); return 0; } 6d4 Commit B c3d README.txt 6d4 hello.c

Slide 63

Slide 63 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hola.c Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13 #include int main(void) { printf("Hola\n"); return 0; } 6d4 Commit B c3d README.txt 6d4 hello.c

Slide 64

Slide 64 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hola.c Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13 #include int main(void) { printf("Hola\n"); return 0; } 6d4 Commit B c3d README.txt 6d4 hello.c Commit C c3d README.txt 6d4 hola.c

Slide 65

Slide 65 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hola.c Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13 #include int main(void) { printf("Hola\n"); return 0; } 6d4 Commit B c3d README.txt 6d4 hello.c Commit C c3d README.txt 6d4 hola.c

Slide 66

Slide 66 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hola.c Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13 #include int main(void) { printf("Hola\n"); return 0; } 6d4 Commit B c3d README.txt 6d4 hello.c Commit C c3d README.txt 6d4 hola.c

Slide 67

Slide 67 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hola.c Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13 #include int main(void) { printf("Hola\n"); return 0; } 6d4 Commit B c3d README.txt 6d4 hello.c Commit C c3d README.txt 6d4 hola.c

Slide 68

Slide 68 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hola.c Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13 #include int main(void) { printf("Hola\n"); return 0; } 6d4 Commit B c3d README.txt 6d4 hello.c Commit C c3d README.txt 6d4 hola.c

Slide 69

Slide 69 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hello project. Licensed under GPL. README.txt hola.c Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13 #include int main(void) { printf("Hola\n"); return 0; } 6d4 Commit B c3d README.txt 6d4 hello.c Commit C c3d README.txt 6d4 hola.c

Slide 70

Slide 70 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hola project. Licensed under GPL. README.txt hola.c Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13 #include int main(void) { printf("Hola\n"); return 0; } 6d4 Commit B c3d README.txt 6d4 hello.c Commit C c3d README.txt 6d4 hola.c This is Scott's Hola project. Licensed under GPL. 84f #include int main(void) { printf("Hola\n"); return 0; } hello.c

Slide 71

Slide 71 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hola project. Licensed under GPL. README.txt hola.c Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13 #include int main(void) { printf("Hola\n"); return 0; } 6d4 Commit B c3d README.txt 6d4 hello.c Commit C c3d README.txt 6d4 hola.c This is Scott's Hola project. Licensed under GPL. 84f #include int main(void) { printf("Hola\n"); return 0; } hello.c

Slide 72

Slide 72 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hola project. Licensed under GPL. README.txt hola.c Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13 #include int main(void) { printf("Hola\n"); return 0; } 6d4 Commit B c3d README.txt 6d4 hello.c Commit C c3d README.txt 6d4 hola.c This is Scott's Hola project. Licensed under GPL. 84f #include int main(void) { printf("Hola\n"); return 0; } hello.c

Slide 73

Slide 73 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hola project. Licensed under GPL. README.txt hola.c Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13 #include int main(void) { printf("Hola\n"); return 0; } 6d4 Commit B c3d README.txt 6d4 hello.c Commit C c3d README.txt 6d4 hola.c This is Scott's Hola project. Licensed under GPL. 84f Commit D 84f README.txt 6d4 hola.c 6d4 hello.c #include int main(void) { printf("Hola\n"); return 0; } hello.c

Slide 74

Slide 74 text

#include int main(void) { printf("Hola\n"); return 0; } This is Scott's Hola project. Licensed under GPL. README.txt hola.c Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13 #include int main(void) { printf("Hola\n"); return 0; } 6d4 Commit B c3d README.txt 6d4 hello.c Commit C c3d README.txt 6d4 hola.c This is Scott's Hola project. Licensed under GPL. 84f Commit D 84f README.txt 6d4 hola.c 6d4 hello.c #include int main(void) { printf("Hola\n"); return 0; } hello.c

Slide 75

Slide 75 text

Commit A This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; } - printf("Hola\n"); + printf("Hola\n"); Commit B Commit C -Hello +Hola Commit D README.txt hello.c hola.c (rename) (copy)

Slide 76

Slide 76 text

Commit A c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. c3d #include int main(void) { printf("Hello\n"); return 0; } f13 #include int main(void) { printf("Hola\n"); return 0; } 6d4 Commit B c3d README.txt 6d4 hello.c Commit C c3d README.txt 6d4 hola.c This is Scott's Hola project. Licensed under GPL. 84f Commit D 84f README.txt 6d4 hola.c 6d4 hello.c Commit A This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; } - printf("Hola\n"); + printf("Hola\n"); Commit B Commit C -Hello +Hola Commit D README.txt hello.c hola.c (rename) (copy)

Slide 77

Slide 77 text

First Steps

Slide 78

Slide 78 text

$ git config --global user.name “Scott Chacon” $ git config --global user.email “[email protected]

Slide 79

Slide 79 text

$ git config --global color.ui true

Slide 80

Slide 80 text

Getting a Repo

Slide 81

Slide 81 text

Create One

Slide 82

Slide 82 text

git init

Slide 83

Slide 83 text

$ touch hello_world.rb $ git init $ git add . $ git commit -m ‘first commit’

Slide 84

Slide 84 text

$ touch hello_world.rb $ git init $ git add . $ git commit -m ‘first commit’

Slide 85

Slide 85 text

$ tree -a . |-- .git | |-- HEAD | |-- branches | |-- config | |-- description | |-- hooks | | |-- post-commit.sample | | |-- post-receive.sample | | |-- ... | | |-- pre-rebase.sample | | `-- update.sample | |-- info | | `-- exclude | |-- objects | | |-- info | | `-- pack | |-- refs | | |-- heads | | `-- tags | `-- remotes `-- hello_world.rb 11 directories, 25 files

Slide 86

Slide 86 text

$ tree -a . |-- .git | |-- HEAD | |-- branches | |-- config | |-- description | |-- hooks | | |-- post-commit.sample | | |-- post-receive.sample | | |-- ... | | |-- pre-rebase.sample | | `-- update.sample | |-- info | | `-- exclude | |-- objects | | |-- info | | `-- pack | |-- refs | | |-- heads | | `-- tags | `-- remotes `-- hello_world.rb 11 directories, 25 files

Slide 87

Slide 87 text

$ tree -a . |-- .git | |-- HEAD | |-- branches | |-- config | |-- description | |-- hooks | | |-- post-commit.sample | | |-- post-receive.sample | | |-- ... | | |-- pre-rebase.sample | | `-- update.sample | |-- info | | `-- exclude | |-- objects | | |-- info | | `-- pack | |-- refs | | |-- heads | | `-- tags | `-- remotes `-- hello_world.rb 11 directories, 25 files

Slide 88

Slide 88 text

$ touch hello_world.rb $ git init $ git add . $ git commit -m ‘first commit’

Slide 89

Slide 89 text

$ touch hello_world.rb $ git init $ git add . $ git commit -m ‘first commit’

Slide 90

Slide 90 text

$ tree -a . |-- .git | |-- COMMIT_EDITMSG | |-- HEAD | |-- branches | |-- config | |-- description | |-- hooks | | |-- applypatch-msg.sample | | `-- update.sample | |-- index | |-- info | | `-- exclude | |-- logs | | |-- HEAD | | `-- refs | | `-- heads | | `-- master | |-- objects | | |-- 32/09658ac8d80bc9726d3a33d77e3dfc5fe6035e | | |-- 53/9cd7886a627841d525a78d45cbc6396be20b41 | | |-- e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 | | |-- info | | `-- pack | |-- refs | | |-- heads | | | `-- master | | `-- tags | `-- remotes `-- hello_world.rb 17 directories, 33 files

Slide 91

Slide 91 text

$ tree -a . |-- .git | |-- COMMIT_EDITMSG | |-- HEAD | |-- branches | |-- config | |-- description | |-- hooks | | |-- applypatch-msg.sample | | `-- update.sample | |-- index | |-- info | | `-- exclude | |-- logs | | |-- HEAD | | `-- refs | | `-- heads | | `-- master | |-- objects | | |-- 32/09658ac8d80bc9726d3a33d77e3dfc5fe6035e | | |-- 53/9cd7886a627841d525a78d45cbc6396be20b41 | | |-- e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 | | |-- info | | `-- pack | |-- refs | | |-- heads | | | `-- master | | `-- tags | `-- remotes `-- hello_world.rb 17 directories, 33 files

Slide 92

Slide 92 text

$ tree -a . |-- .git | |-- COMMIT_EDITMSG | |-- HEAD | |-- branches | |-- config | |-- description | |-- hooks | | |-- applypatch-msg.sample | | `-- update.sample | |-- index | |-- info | | `-- exclude | |-- logs | | |-- HEAD | | `-- refs | | `-- heads | | `-- master | |-- objects | | |-- 32/09658ac8d80bc9726d3a33d77e3dfc5fe6035e | | |-- 53/9cd7886a627841d525a78d45cbc6396be20b41 | | |-- e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 | | |-- info | | `-- pack | |-- refs | | |-- heads | | | `-- master | | `-- tags | `-- remotes `-- hello_world.rb 17 directories, 33 files

Slide 93

Slide 93 text

Clone One

Slide 94

Slide 94 text

git clone

Slide 95

Slide 95 text

$ git clone git://github.com/schacon/ticgit.git Initialized empty Git repository in /private/tmp/ticgit/.git/ remote: Counting objects: 591, done. remote: Compressing objects: 100% (267/267), done. remote: Total 591 (delta 253), reused 587 (delta 252) Receiving objects: 100% (591/591), 73.05 KiB, done. Resolving deltas: 100% (253/253), done. $ cd ticgit/ $ ls LICENSE! ! Rakefile! examples! note! ! ticgit.gemspec README! ! bin! ! lib! ! spec $

Slide 96

Slide 96 text

$ git clone git://github.com/schacon/ticgit.git Initialized empty Git repository in /private/tmp/ticgit/.git/ remote: Counting objects: 591, done. remote: Compressing objects: 100% (267/267), done. remote: Total 591 (delta 253), reused 587 (delta 252) Receiving objects: 100% (591/591), 73.05 KiB, done. Resolving deltas: 100% (253/253), done. $ cd ticgit/ $ ls LICENSE! ! Rakefile! examples! note! ! ticgit.gemspec README! ! bin! ! lib! ! spec $

Slide 97

Slide 97 text

$ git clone git://github.com/schacon/ticgit.git Initialized empty Git repository in /private/tmp/ticgit/.git/ remote: Counting objects: 591, done. remote: Compressing objects: 100% (267/267), done. remote: Total 591 (delta 253), reused 587 (delta 252) Receiving objects: 100% (591/591), 73.05 KiB, done. Resolving deltas: 100% (253/253), done. $ cd ticgit/ $ ls LICENSE! ! Rakefile! examples! note! ! ticgit.gemspec README! ! bin! ! lib! ! spec $

Slide 98

Slide 98 text

$ git clone git://github.com/schacon/ticgit.git Initialized empty Git repository in /private/tmp/ticgit/.git/ remote: Counting objects: 591, done. remote: Compressing objects: 100% (267/267), done. remote: Total 591 (delta 253), reused 587 (delta 252) Receiving objects: 100% (591/591), 73.05 KiB, done. Resolving deltas: 100% (253/253), done. $ cd ticgit/ $ ls .git LICENSE! ! Rakefile! examples! note! ! ticgit.gemspec README! ! bin! ! lib! ! spec $

Slide 99

Slide 99 text

Recording a Snapshot

Slide 100

Slide 100 text

A Basic Workflow Edit files Stage the changes Review your changes Commit the changes vim / emacs / etc git add (file) repo status git commit

Slide 101

Slide 101 text

A Basic Workflow Edit files Stage the changes Review your changes Commit the changes vim / emacs / etc git add (file) repo status git commit

Slide 102

Slide 102 text

A Basic Workflow Edit files Stage the changes Review your changes Commit the changes vim / emacs / etc git add (file) repo status git commit

Slide 103

Slide 103 text

A Basic Workflow Edit files Stage the changes Review your changes Commit the changes vim / emacs / etc git add (file) git status / git diff git commit

Slide 104

Slide 104 text

A Basic Workflow Edit files Stage the changes Review your changes Commit the changes vim / emacs / etc git add (file) git status / git diff git commit

Slide 105

Slide 105 text

A Basicerer Workflow Edit files Stage and Commit vim / emacs / etc git commit -a

Slide 106

Slide 106 text

What’s going on here?

Slide 107

Slide 107 text

$ git commit Created commit 77d3001: descriptive commit message 2 files changed, 4 insertions(+), 2 deletions(-)

Slide 108

Slide 108 text

$ git commit Created commit 77d3001: descriptive commit message 2 files changed, 4 insertions(+), 2 deletions(-)

Slide 109

Slide 109 text

77d3001

Slide 110

Slide 110 text

77d3001

Slide 111

Slide 111 text

77d3001a1de6bf8f5e431972fe4d25b01e595c0b

Slide 112

Slide 112 text

77d3001a1de6bf8f5e431972fe4d25b01e595c0b

Slide 113

Slide 113 text

77d3001a1de6bf8f5e431972fe4d25b01e595c0b

Slide 114

Slide 114 text

77d3001a1de6bf8f5e431972fe4d25b01e595c0b commit size ae668.. tree parent author committer my commit message goes here and it is really, really cool c4ec5 a149e Scott Scott

Slide 115

Slide 115 text

77d3001a1de6bf8f5e431972fe4d25b01e595c0b commit size ae668.. tree parent author committer my commit message goes here and it is really, really cool c4ec5 a149e Scott Scott tree c4ec543b0322744e55c5efc9b6c4e449d398dbff parent a149e2160b3f7573768cdc2fce24d0881f3577e1 author Scott Chacon 1223402504 -0700 committer Scott Chacon 1223402504 -0700 descriptive commit message

Slide 116

Slide 116 text

77d3001a1de6bf8f5e431972fe4d25b01e595c0b commit size ae668.. tree parent author committer my commit message goes here and it is really, really cool c4ec5 a149e Scott Scott

Slide 117

Slide 117 text

77d3001a1de6bf8f5e431972fe4d25b01e595c0b commit size ae668.. tree parent author committer my commit message goes here and it is really, really cool c4ec5 a149e Scott Scott app.yaml index.yaml main.py ./ c4e 03e 1d3 3d5

Slide 118

Slide 118 text

77d3001a1de6bf8f5e431972fe4d25b01e595c0b commit size ae668.. tree parent author committer my commit message goes here and it is really, really cool c4ec5 a149e Scott Scott app.yaml index.yaml main.py ./ c4e 03e 1d3 3d5 100644 blob 3d5cd3e1fc4424472ea247d1bb5fcfc3809aadab app.yaml 100644 blob 1d31bf2dba611ba0de871320b4d73cdc39cc862b index.yaml 100644 blob 03e68c28b73e2650bee34763369faf6e029d5053 main.py

Slide 119

Slide 119 text

77d3001a1de6bf8f5e431972fe4d25b01e595c0b commit size ae668.. tree parent author committer my commit message goes here and it is really, really cool c4ec5 a149e Scott Scott app.yaml index.yaml main.py ./ c4e 03e 1d3 3d5

Slide 120

Slide 120 text

commit size ae668.. tree parent author committer my commit message goes here and it is really, really cool c4ec5 a149e Scott Scott app.yaml index.yaml main.py ./ c4e 03e 1d3 3d5 commit size tree parent author committer this is the previous commit and I am very proud of it 2de54 38def Scott Scott

Slide 121

Slide 121 text

commit size ae668.. tree parent author committer my commit message goes here and it is really, really cool c4ec5 a149e Scott Scott app.yaml index.yaml main.py ./ c4e 03e 1d3 3d5 commit size tree parent author committer this is the previous commit and I am very proud of it 2de54 38def Scott Scott app.yaml index.yaml main.py ./ c4e 03e 1d3 3d5

Slide 122

Slide 122 text

commit size ae668.. tree parent author committer my commit message goes here and it is really, really cool c4ec5 a149e Scott Scott app.yaml index.yaml main.py ./ c4e 03e 1d3 3d5 commit size tree parent author committer this is the previous commit and I am very proud of it 2de54 38def Scott Scott commit size tree parent author committer this is the commit before that and I'm not sure why 2fe65 90ecd Scott Scott app.yaml index.yaml main.py ./ c4e 03e 1d3 3d5 app.yaml index.yaml main.py ./ c4e 03e 1d3 3d5 commit size tree parent author committer this is the commit before that and I'm not sure why 2fe65 90ecd Scott Scott app.yaml index.yaml main.py ./ c4e 03e 1d3 3d5

Slide 123

Slide 123 text

commit size ae668.. tree parent author committer my commit message goes here and it is really, really cool c4ec5 a149e Scott Scott app.yaml index.yaml main.py ./ c4e 03e 1d3 3d5 commit size tree parent author committer this is the previous commit and I am very proud of it 2de54 38def Scott Scott commit size tree parent author committer this is the commit before that and I'm not sure why 2fe65 90ecd Scott Scott app.yaml index.yaml main.py ./ c4e 03e 1d3 3d5 app.yaml index.yaml main.py ./ c4e 03e 1d3 3d5 commit size tree parent author committer this is the commit before that and I'm not sure why 2fe65 90ecd Scott Scott app.yaml index.yaml main.py ./ c4e 03e 1d3 3d5 48e 77d a14 38d c4e 3d5 1d3 03e f46 23f 30e 67e 32a 5b1

Slide 124

Slide 124 text

commit size ae668.. tree parent author committer my commit message goes here and it is really, really cool c4ec5 a149e Scott Scott app.yaml index.yaml main.py ./ c4e 03e 1d3 3d5 commit size tree parent author committer this is the previous commit and I am very proud of it 2de54 38def Scott Scott commit size tree parent author committer this is the commit before that and I'm not sure why 2fe65 90ecd Scott Scott app.yaml index.yaml main.py ./ c4e 03e 1d3 3d5 app.yaml index.yaml main.py ./ c4e 03e 1d3 3d5 commit size tree parent author committer this is the commit before that and I'm not sure why 2fe65 90ecd Scott Scott app.yaml index.yaml main.py ./ c4e 03e 1d3 3d5 48e 77d a14 38d c4e 3d5 1d3 03e f46 23f 30e 67e 32a 5b1

Slide 125

Slide 125 text

Repository 3d4 03e ae6 5b1 1d3 c36 f46 23f 6fe 30e 67e 32a ffe 38d 5b1 1d3 254 a14 d23 2d3 48e 735 de3 c4e c4e 77d 3d5

Slide 126

Slide 126 text

Repository 3d4 03e ae6 5b1 1d3 c36 f46 23f 6fe 30e 67e 32a ffe 38d 5b1 1d3 254 a14 d23 2d3 48e 735 de3 c4e c4e 77d 3d5 git checkout branch

Slide 127

Slide 127 text

Repository 3d4 03e ae6 5b1 1d3 c36 f46 23f 6fe 30e 67e 32a ffe 38d 5b1 1d3 254 a14 d23 2d3 48e 735 de3 c4e c4e 77d 3d5 git checkout branch

Slide 128

Slide 128 text

Working Directory Index Rakefile README simplegit.rb ./ lib/ ./Rakefile ./README ./lib/simplegit.rb ./ ./lib/ c36 3d4 03e 5b1 1d3 Repository 3d4 03e ae6 5b1 1d3 c36 f46 23f 6fe 30e 67e 32a ffe 38d 5b1 1d3 254 a14 d23 2d3 48e 735 de3 c4e c4e 77d 3d5

Slide 129

Slide 129 text

Repository 3d4 03e ae6 5b1 1d3 c36 f46 23f 6fe 30e 67e 32a ffe 38d 5b1 1d3 254 a14 d23 2d3 48e 735 de3 c4e c4e 77d 3d5 Working Directory Index Rakefile README simplegit.rb ./ lib/ ./Rakefile ./README ./lib/simplegit.rb ./ ./lib/ c36 3d4 03e 5b1 1d3

Slide 130

Slide 130 text

Repository 3d4 03e ae6 5b1 1d3 c36 f46 23f 6fe 30e 67e 32a ffe 38d 5b1 1d3 254 a14 d23 2d3 48e 735 de3 c4e c4e 77d 3d5 Working Directory Index Rakefile README simplegit.rb ./ lib/ ./Rakefile ./README ./lib/simplegit.rb ./ ./lib/ c36 3d4 03e 5b1 1d3

Slide 131

Slide 131 text

Repository 3d4 03e ae6 5b1 1d3 c36 f46 23f 6fe 30e 67e 32a ffe 38d 5b1 1d3 254 a14 d23 2d3 48e 735 de3 c4e c4e 77d 3d5 Working Directory Index Rakefile README simplegit.rb ./ lib/ ./Rakefile ./README ./lib/simplegit.rb ./ ./lib/ c36 3d4 03e 5b1 1d3

Slide 132

Slide 132 text

Repository 3d4 03e ae6 5b1 1d3 c36 f46 23f 6fe 30e 67e 32a ffe 38d 5b1 1d3 254 a14 d23 2d3 48e 735 de3 c4e c4e 77d 3d5 Working Directory Index Rakefile README simplegit.rb ./ lib/ ./Rakefile ./README ./lib/simplegit.rb ./ ./lib/ c36 3d4 03e 5b1 1d3 git add

Slide 133

Slide 133 text

Repository 3d4 03e ae6 5b1 1d3 c36 f46 23f 6fe 30e 67e 32a ffe 38d 5b1 1d3 254 a14 d23 2d3 48e 735 de3 c4e c4e 77d 3d5 Working Directory Index Rakefile README simplegit.rb ./ lib/ ./Rakefile ./README ./lib/simplegit.rb ./ ./lib/ c36 3d4 03e 5b1 1d3 git add 34f

Slide 134

Slide 134 text

Repository 3d4 03e ae6 5b1 1d3 c36 f46 23f 6fe 30e 67e 32a ffe 38d 5b1 1d3 254 a14 d23 2d3 48e 735 de3 c4e c4e 77d 3d5 Working Directory Index Rakefile README simplegit.rb ./ lib/ ./Rakefile ./README ./lib/simplegit.rb ./ ./lib/ c36 3d4 03e 5b1 1d3 git commit 34f a08 3da 34f ae9

Slide 135

Slide 135 text

Repository 3d4 03e ae6 5b1 1d3 c36 f46 23f 6fe 30e 67e 32a ffe 38d 5b1 1d3 254 a14 d23 2d3 48e 735 de3 c4e c4e 77d 3d5 Working Directory Index Rakefile README simplegit.rb ./ lib/ ./Rakefile ./README ./lib/simplegit.rb ./ ./lib/ c36 3d4 03e 5b1 1d3 34f a08 3da 34f ae9

Slide 136

Slide 136 text

Repository 3d4 03e ae6 5b1 1d3 c36 f46 23f 6fe 30e 67e 32a ffe 38d 5b1 1d3 254 a14 d23 2d3 48e 735 de3 c4e c4e 77d 3d5 Working Directory Index Rakefile README simplegit.rb ./ lib/ ./Rakefile ./README ./lib/simplegit.rb ./ ./lib/ c36 3d4 03e 5b1 1d3 34f a08 3da 34f ae9

Slide 137

Slide 137 text

Branching and Merging

Slide 138

Slide 138 text

branches

Slide 139

Slide 139 text

branches lightweight, movable pointers to a commit C1 branch

Slide 140

Slide 140 text

branching

Slide 141

Slide 141 text

git branch

Slide 142

Slide 142 text

git checkout

Slide 143

Slide 143 text

Commit 98ca9 master HEAD c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; }

Slide 144

Slide 144 text

Commit 98ca9 master HEAD c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; }

Slide 145

Slide 145 text

Commit 98ca9 master HEAD c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; }

Slide 146

Slide 146 text

Commit 98ca9 master HEAD c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; }

Slide 147

Slide 147 text

Commit 98ca9 master HEAD c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; } 98ca9 i18n master HEAD git branch i18n

Slide 148

Slide 148 text

Commit 98ca9 master HEAD c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; } 98ca9 i18n master HEAD git branch i18n

Slide 149

Slide 149 text

Commit 98ca9 master HEAD c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; } 98ca9 i18n master HEAD git branch

Slide 150

Slide 150 text

$ git branch * master i18n Commit 98ca9 master HEAD c3d README.txt f13 hello.c This is Scott's Hello project. Licensed under GPL. #include int main(void) { printf("Hello\n"); return 0; } 98ca9 i18n master HEAD git branch

Slide 151

Slide 151 text

$ find .git/refs .git/refs .git/refs/heads .git/refs/heads/default .git/refs/heads/experiment

Slide 152

Slide 152 text

$ find .git/refs .git/refs .git/refs/heads .git/refs/heads/master .git/refs/heads/i18n

Slide 153

Slide 153 text

$ find .git/refs .git/refs .git/refs/heads .git/refs/heads/master .git/refs/heads/i18n $ cat .git/refs/heads/master 98ca909dc9e38af91565082bdf93577ff555489e

Slide 154

Slide 154 text

98ca9 a23fe i18n master HEAD HEAD

Slide 155

Slide 155 text

98ca9 a23fe i18n master HEAD HEAD git checkout i18n

Slide 156

Slide 156 text

98ca9 a23fe i18n master HEAD HEAD

Slide 157

Slide 157 text

98ca9 a23fe i18n master HEAD HEAD git commit

Slide 158

Slide 158 text

98ca9 a23fe i18n master HEAD HEAD git commit

Slide 159

Slide 159 text

git commit 98ca9 a23fe master i18n HEAD

Slide 160

Slide 160 text

98ca9 a23fe master i18n HEAD

Slide 161

Slide 161 text

git commit 98ca9 a23fe master i18n HEAD

Slide 162

Slide 162 text

git commit 98ca9 a23fe 3acd1 master i18n HEAD

Slide 163

Slide 163 text

98ca9 a23fe 3acd1 master i18n HEAD

Slide 164

Slide 164 text

98ca9 a23fe 3acd1 master i18n HEAD git checkout -b iss53 master

Slide 165

Slide 165 text

98ca9 a23fe iss53 3acd1 master HEAD i18n git checkout -b iss53 master

Slide 166

Slide 166 text

98ca9 a23fe iss53 3acd1 master HEAD i18n git checkout master; git checkout -b iss53

Slide 167

Slide 167 text

98ca9 a23fe iss53 3acd1 master HEAD i18n git checkout master; git branch iss53; git checkout iss53

Slide 168

Slide 168 text

98ca9 a23fe iss53 3acd1 master HEAD i18n git checkout -b iss53 master

Slide 169

Slide 169 text

98ca9 a23fe iss53 3acd1 master HEAD i18n

Slide 170

Slide 170 text

git commit 98ca9 a23fe iss53 34ac2 3acd1 master HEAD i18n

Slide 171

Slide 171 text

98ca9 a23fe iss53 34ac2 3acd1 master HEAD i18n

Slide 172

Slide 172 text

git commit 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n

Slide 173

Slide 173 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n

Slide 174

Slide 174 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n c3d README.txt f13 hello.c c3d README.txt f13 hello.c 43d issue.c c3d README.txt f13 hello.c 5ff issue.c c3d README.txt f13 hello.c d3a i18n.c c3d README.txt 9ec hello.c 3a6 i18n.c

Slide 175

Slide 175 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n c3d README.txt f13 hello.c c3d README.txt f13 hello.c 43d issue.c c3d README.txt f13 hello.c 5ff issue.c c3d README.txt f13 hello.c d3a i18n.c c3d README.txt 9ec hello.c 3a6 i18n.c

Slide 176

Slide 176 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n c3d README.txt f13 hello.c c3d README.txt f13 hello.c 43d issue.c c3d README.txt f13 hello.c 5ff issue.c c3d README.txt f13 hello.c d3a i18n.c c3d README.txt 9ec hello.c 3a6 i18n.c

Slide 177

Slide 177 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n c3d README.txt f13 hello.c c3d README.txt f13 hello.c 43d issue.c c3d README.txt f13 hello.c 5ff issue.c c3d README.txt f13 hello.c d3a i18n.c c3d README.txt 9ec hello.c 3a6 i18n.c

Slide 178

Slide 178 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n c3d README.txt f13 hello.c c3d README.txt f13 hello.c 43d issue.c c3d README.txt f13 hello.c 5ff issue.c c3d README.txt f13 hello.c d3a i18n.c c3d README.txt 9ec hello.c 3a6 i18n.c

Slide 179

Slide 179 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n c3d README.txt f13 hello.c c3d README.txt f13 hello.c 43d issue.c c3d README.txt f13 hello.c 5ff issue.c c3d README.txt f13 hello.c d3a i18n.c c3d README.txt 9ec hello.c 3a6 i18n.c

Slide 180

Slide 180 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n

Slide 181

Slide 181 text

merging

Slide 182

Slide 182 text

git merge

Slide 183

Slide 183 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n

Slide 184

Slide 184 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n git checkout master

Slide 185

Slide 185 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n

Slide 186

Slide 186 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n git merge iss53

Slide 187

Slide 187 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n git merge iss53 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n

Slide 188

Slide 188 text

fast-forward merge

Slide 189

Slide 189 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n git merge iss53 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n

Slide 190

Slide 190 text

git merge iss53 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n

Slide 191

Slide 191 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n

Slide 192

Slide 192 text

git merge i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n

Slide 193

Slide 193 text

non fast-forward merge

Slide 194

Slide 194 text

git merge i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n

Slide 195

Slide 195 text

git merge i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n

Slide 196

Slide 196 text

git merge i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n c3d README.txt f13 hello.c c3d README.txt f13 hello.c 5ff issue.c c3d README.txt 9ec hello.c 3a6 i18n.c

Slide 197

Slide 197 text

git merge i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n c3d README.txt f13 hello.c c3d README.txt f13 hello.c 5ff issue.c c3d README.txt 9ec hello.c 3a6 i18n.c

Slide 198

Slide 198 text

git merge i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n c3d README.txt f13 hello.c c3d README.txt f13 hello.c 5ff issue.c c3d README.txt 9ec hello.c 3a6 i18n.c

Slide 199

Slide 199 text

git merge i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n c3d README.txt f13 hello.c c3d README.txt f13 hello.c 5ff issue.c c3d README.txt 9ec hello.c 3a6 i18n.c

Slide 200

Slide 200 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n c3d README.txt f13 hello.c c3d README.txt f13 hello.c 5ff issue.c c3d README.txt 9ec hello.c 3a6 i18n.c 95c41 c3d README.txt 9ec hello.c 5ff issue.c 3a6 i18n.c git merge i18n

Slide 201

Slide 201 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n c3d README.txt f13 hello.c c3d README.txt f13 hello.c 5ff issue.c c3d README.txt 9ec hello.c 3a6 i18n.c 95c41 c3d README.txt 9ec hello.c 5ff issue.c 3a6 i18n.c git merge i18n

Slide 202

Slide 202 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n c3d README.txt f13 hello.c c3d README.txt f13 hello.c 5ff issue.c c3d README.txt 9ec hello.c 3a6 i18n.c 95c41 c3d README.txt 9ec hello.c 5ff issue.c 3a6 i18n.c

Slide 203

Slide 203 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n c3d README.txt f13 hello.c c3d README.txt f13 hello.c 5ff issue.c c3d README.txt 9ec hello.c 3a6 i18n.c 95c41 c3d README.txt 9ec hello.c 5ff issue.c 3a6 i18n.c

Slide 204

Slide 204 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n c3d README.txt f13 hello.c c3d README.txt f13 hello.c 5ff issue.c c3d README.txt 9ec hello.c 3a6 i18n.c 95c41 c3d README.txt 9ec hello.c 5ff issue.c 3a6 i18n.c

Slide 205

Slide 205 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n c3d README.txt f13 hello.c c3d README.txt f13 hello.c 5ff issue.c c3d README.txt 9ec hello.c 3a6 i18n.c 95c41 c3d README.txt 9ec hello.c 5ff issue.c 3a6 i18n.c

Slide 206

Slide 206 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n c3d README.txt f13 hello.c c3d README.txt f13 hello.c 5ff issue.c c3d README.txt 9ec hello.c 3a6 i18n.c 95c41 c3d README.txt 9ec hello.c 5ff issue.c 3a6 i18n.c

Slide 207

Slide 207 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n c3d README.txt f13 hello.c c3d README.txt f13 hello.c 5ff issue.c c3d README.txt 9ec hello.c 3a6 i18n.c 95c41 c3d README.txt 9ec hello.c 5ff issue.c 3a6 i18n.c

Slide 208

Slide 208 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41

Slide 209

Slide 209 text

merge conflicts

Slide 210

Slide 210 text

$ git merge iss53 Auto-merging index.html CONFLICT (content): Merge conflict in index.html Automatic merge failed; fix conflicts and then commit the result.

Slide 211

Slide 211 text

$ git merge iss53 Auto-merging index.html CONFLICT (content): Merge conflict in index.html Automatic merge failed; fix conflicts and then commit the result.

Slide 212

Slide 212 text

$ git merge iss53 Auto-merging index.html CONFLICT (content): Merge conflict in index.html Automatic merge failed; fix conflicts and then commit the result. $ git status index.html: needs merge # On branch master # Changed but not updated: # (use "git add ..." to update what will be committed) # (use "git checkout -- ..." to discard changes in working directory) # #! unmerged: index.html #

Slide 213

Slide 213 text

<<<<<<< HEAD:index.html =======
please contact us at [email protected]
>>>>>>> iss53:index.html

Slide 214

Slide 214 text

$ git add [file]

Slide 215

Slide 215 text

$ git status # On branch master # Changes to be committed: # (use "git reset HEAD ..." to unstage # #! modified: index.html #

Slide 216

Slide 216 text

git mergetool

Slide 217

Slide 217 text

$ git mergetool merge tool candidates: kdiff3 tkdiff xxdiff meld gvimdiff opendiff emerge vimdiff Merging the files: index.html Normal merge conflict for 'index.html': {local}: modified {remote}: modified Hit return to start merge resolution tool (opendiff):

Slide 218

Slide 218 text

$ git commit

Slide 219

Slide 219 text

reintegration merges

Slide 220

Slide 220 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41

Slide 221

Slide 221 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 git checkout i18n

Slide 222

Slide 222 text

git commit 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 4fa23

Slide 223

Slide 223 text

git checkout master 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 4fa23

Slide 224

Slide 224 text

git merge i18n 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 4fa23

Slide 225

Slide 225 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 4fa23 git merge i18n

Slide 226

Slide 226 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 4fa23 c3d README.txt 9ec hello.c 3a6 i18n.c c3d README.txt 9ec hello.c 5ff issue.c 3a6 i18n.c 45d README.txt 9ec hello.c 3a6 i18n.c git merge i18n

Slide 227

Slide 227 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 4fa23 c3d README.txt 9ec hello.c 3a6 i18n.c c3d README.txt 9ec hello.c 5ff issue.c 3a6 i18n.c 45d README.txt 9ec hello.c 3a6 i18n.c git merge i18n

Slide 228

Slide 228 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 4fa23 c3d README.txt 9ec hello.c 3a6 i18n.c c3d README.txt 9ec hello.c 5ff issue.c 3a6 i18n.c 45d README.txt 9ec hello.c 3a6 i18n.c git merge i18n

Slide 229

Slide 229 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 4fa23 c3d README.txt 9ec hello.c 3a6 i18n.c c3d README.txt 9ec hello.c 5ff issue.c 3a6 i18n.c 45d README.txt 9ec hello.c 3a6 i18n.c git merge i18n

Slide 230

Slide 230 text

67a2d 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 4fa23 c3d README.txt 9ec hello.c 3a6 i18n.c c3d README.txt 9ec hello.c 5ff issue.c 3a6 i18n.c 45d README.txt 9ec hello.c 3a6 i18n.c 45d README.txt 9ec hello.c 5ff issue.c 3a6 i18n.c git merge i18n

Slide 231

Slide 231 text

67a2d 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 4fa23 c3d README.txt 9ec hello.c 3a6 i18n.c c3d README.txt 9ec hello.c 5ff issue.c 3a6 i18n.c 45d README.txt 9ec hello.c 3a6 i18n.c 45d README.txt 9ec hello.c 5ff issue.c 3a6 i18n.c git merge i18n

Slide 232

Slide 232 text

git merge i18n 67a2d 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 4fa23

Slide 233

Slide 233 text

Why is this cool?

Slide 234

Slide 234 text

try out an idea

Slide 235

Slide 235 text

isolate work units

Slide 236

Slide 236 text

long running topics

Slide 237

Slide 237 text

long running topics continuous merging

Slide 238

Slide 238 text

Deleting Branches

Slide 239

Slide 239 text

git branch -d branch

Slide 240

Slide 240 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 4fa23

Slide 241

Slide 241 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 4fa23

Slide 242

Slide 242 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 4fa23

Slide 243

Slide 243 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 4fa23

Slide 244

Slide 244 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 4fa23

Slide 245

Slide 245 text

git branch -D branch

Slide 246

Slide 246 text

Collaborating

Slide 247

Slide 247 text

remotes

Slide 248

Slide 248 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master

Slide 249

Slide 249 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master git clone [email protected]:project.git

Slide 250

Slide 250 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master git clone [email protected]:project.git

Slide 251

Slide 251 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master git clone [email protected]:project.git

Slide 252

Slide 252 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master git clone [email protected]:project.git

Slide 253

Slide 253 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master

Slide 254

Slide 254 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 git commit

Slide 255

Slide 255 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 git commit

Slide 256

Slide 256 text

git push

Slide 257

Slide 257 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 git push origin master

Slide 258

Slide 258 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 git push origin master

Slide 259

Slide 259 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 git push origin master

Slide 260

Slide 260 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 git push origin master i want to push some new stuff

Slide 261

Slide 261 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 git push origin master i’ve got master at 31b8

Slide 262

Slide 262 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 git push origin master cool, i see that in the history of what i want to push

Slide 263

Slide 263 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 git push origin master here’s the difference dee9 9e05

Slide 264

Slide 264 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 git push origin master dee9 9e05

Slide 265

Slide 265 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 git push origin master dee9 9e05

Slide 266

Slide 266 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 ok, everything looks good.

Slide 267

Slide 267 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 origin/master

Slide 268

Slide 268 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 git push origin master origin/master

Slide 269

Slide 269 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 git push origin master i want to push some new stuff origin/master

Slide 270

Slide 270 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 git push origin master i’ve got master at 9e05 origin/master

Slide 271

Slide 271 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 git push origin master not familiar with that origin/master

Slide 272

Slide 272 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 git push origin master crap. origin/master

Slide 273

Slide 273 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 git push origin master it would be mean of me to overwrite scott’s changes... origin/master

Slide 274

Slide 274 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 origin/master

Slide 275

Slide 275 text

git fetch

Slide 276

Slide 276 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 origin/master

Slide 277

Slide 277 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 git fetch origin/master

Slide 278

Slide 278 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 git fetch origin/master

Slide 279

Slide 279 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 origin/master

Slide 280

Slide 280 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 git merge origin/master origin/master

Slide 281

Slide 281 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 git push origin master origin/master

Slide 282

Slide 282 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 git push origin master ok, let’s try that again. i want to push some stuff origin/master

Slide 283

Slide 283 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 git push origin master i’ve got master at 9e05 origin/master

Slide 284

Slide 284 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 git push origin master freakin sweet, i can see that in my history origin/master

Slide 285

Slide 285 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 git push origin master let’s do this e1cf 8091 a967 origin/master

Slide 286

Slide 286 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 git push origin master e1cf 8091 a967 origin/master

Slide 287

Slide 287 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 git push origin master e1cf 8091 a967 origin/master

Slide 288

Slide 288 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 a967 e1cf 8091 origin/master ok, we’re good.

Slide 289

Slide 289 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 a967 e1cf 8091

Slide 290

Slide 290 text

pushing other branches

Slide 291

Slide 291 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 a967 e1cf 8091

Slide 292

Slide 292 text

git checkout -b iss53 31b8; git commit; git commit git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 a967 e1cf 8091 4ca2 74ba iss53

Slide 293

Slide 293 text

git push origin iss53 git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 a967 e1cf 8091 4ca2 74ba iss53

Slide 294

Slide 294 text

git push origin iss53 git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 a967 e1cf 8091 4ca2 74ba iss53 i want to push some stuff

Slide 295

Slide 295 text

git push origin iss53 git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 a967 e1cf 8091 4ca2 74ba iss53 i’ve got master at a967

Slide 296

Slide 296 text

git push origin iss53 git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 a967 e1cf 8091 4ca2 74ba iss53 i don’t care

Slide 297

Slide 297 text

git push origin iss53 git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 a967 e1cf 8091 4ca2 74ba iss53 i’m trying to push iss53

Slide 298

Slide 298 text

git push origin iss53 git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 a967 e1cf 8091 4ca2 74ba iss53 here you go

Slide 299

Slide 299 text

git push origin iss53 git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 a967 e1cf 8091 4ca2 74ba iss53 4ca2 74ba

Slide 300

Slide 300 text

git push origin iss53 git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 a967 e1cf 8091 4ca2 74ba iss53 4ca2 74ba

Slide 301

Slide 301 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 a967 e1cf 8091 4ca2 74ba iss53 4ca2 74ba iss53

Slide 302

Slide 302 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 a967 e1cf 8091 4ca2 74ba iss53 4ca2 74ba iss53 git fetch 4ca2 74ba

Slide 303

Slide 303 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 a967 e1cf 8091 4ca2 74ba iss53 4ca2 74ba iss53 git fetch 4ca2 74ba

Slide 304

Slide 304 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 a967 e1cf 8091 4ca2 74ba iss53 4ca2 74ba iss53 git fetch 4ca2 74ba

Slide 305

Slide 305 text

git.ourcompany.com Nick's Computer origin/master f42c 31b8 Scott's Computer origin/master f42c 31b8 f42c 31b8 master master master dee9 9e05 e1cf 8091 dee9 9e05 dee9 9e05 a967 a967 e1cf 8091 4ca2 74ba iss53 4ca2 74ba iss53 4ca2 74ba origin/iss53

Slide 306

Slide 306 text

git pull

Slide 307

Slide 307 text

pull == fetch + merge

Slide 308

Slide 308 text

multiple remotes

Slide 309

Slide 309 text

developer nick developer jessica my repo 5ec e4a 4a7 ce0 master

Slide 310

Slide 310 text

developer nick developer jessica my repo 5ec e4a 4a7 ce0 master commit

Slide 311

Slide 311 text

developer nick developer jessica my repo 5ec e4a 4a7 ce0 master tree

Slide 312

Slide 312 text

developer nick developer jessica my repo 5ec e4a 4a7 ce0 master blobs

Slide 313

Slide 313 text

schacon/ project developer nick developer jessica "public" my repo 5ec e4a 4a7 ce0 master git push public public/master 5ec e4a 4a7 ce0

Slide 314

Slide 314 text

schacon/ project developer jessica "public" my repo 5ec e4a 4a7 ce0 master git clone (url) public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick

Slide 315

Slide 315 text

schacon/ project developer jessica "public" my repo 5ec e4a 4a7 ce0 master git commit public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f

Slide 316

Slide 316 text

schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f git clone (url) 5ec e4a 4a7 ce0 developer jessica

Slide 317

Slide 317 text

schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f 5ec e4a 4a7 ce0 developer jessica 2fb df7 4ea a09 git commit

Slide 318

Slide 318 text

schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f 5ec e4a 4a7 ce0 developer jessica 2fb df7 4ea a09 git push 5ec e4a 4a7 ce0 nickh/ project c12 ec5 24f 5ec e4a 4a7 ce0 jessica/ project 2fb df7 4ea a09

Slide 319

Slide 319 text

schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f 5ec e4a 4a7 ce0 developer jessica 2fb df7 4ea a09 git remote add nick git://github.com/nickh/project.git 5ec e4a 4a7 ce0 nickh/ project c12 ec5 24f 5ec e4a 4a7 ce0 jessica/ project 2fb df7 4ea a09 "nick" git remote add nick git://github.com/nickh/project.git

Slide 320

Slide 320 text

schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f 5ec e4a 4a7 ce0 developer jessica 2fb df7 4ea a09 git remote add nick git://github.com/nickh/project.git 5ec e4a 4a7 ce0 nickh/ project c12 ec5 24f 5ec e4a 4a7 ce0 jessica/ project 2fb df7 4ea a09 "nick" “nick” git remote add nick git://github.com/nickh/project.git

Slide 321

Slide 321 text

schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f 5ec e4a 4a7 ce0 developer jessica 2fb df7 4ea a09 git remote add jess git://github.com/jessica/project.git 5ec e4a 4a7 ce0 nickh/ project c12 ec5 24f 5ec e4a 4a7 ce0 jessica/ project 2fb df7 4ea a09 "nick" "jess" git remote add jess git://github.com/jessica/project.git

Slide 322

Slide 322 text

schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f 5ec e4a 4a7 ce0 developer jessica 2fb df7 4ea a09 git remote add jess git://github.com/jessica/project.git 5ec e4a 4a7 ce0 nickh/ project c12 ec5 24f 5ec e4a 4a7 ce0 jessica/ project 2fb df7 4ea a09 "nick" "jess" git remote add jess git://github.com/jessica/project.git “jess”

Slide 323

Slide 323 text

schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f 5ec e4a 4a7 ce0 developer jessica 2fb df7 4ea a09 git remote add jess git://github.com/jessica/project.git 5ec e4a 4a7 ce0 nickh/ project c12 ec5 24f 5ec e4a 4a7 ce0 jessica/ project 2fb df7 4ea a09 "nick" "jess" schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 git fetch nick 5ec c12 5ec e4a 4a7 ce0 jessica/ project 2fb df7 4ea a09 "jess" c12 ec5 24f nick/master git fetch nick

Slide 324

Slide 324 text

schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f 5ec e4a 4a7 ce0 developer jessica 2fb df7 4ea a09 git remote add jess git://github.com/jessica/project.git 5ec e4a 4a7 ce0 nickh/ project c12 ec5 24f 5ec e4a 4a7 ce0 jessica/ project 2fb df7 4ea a09 "nick" "jess" schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f 5ec e4a 4a7 ce0 developer jessica 2fb df7 4ea a09 git fetch nick 5ec e4a 4a7 ce0 nickh/ project c12 ec5 24f 5ec e4a 4a7 ce0 jessica/ project 2fb df7 4ea a09 "nick" "jess" c12 ec5 24f nick/master git fetch nick

Slide 325

Slide 325 text

schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f 5ec e4a 4a7 ce0 developer jessica 2fb df7 4ea a09 git fetch nick 5ec e4a 4a7 ce0 nickh/ project c12 ec5 24f 5ec e4a 4a7 ce0 jessica/ project 2fb df7 4ea a09 "nick" "jess" c12 ec5 24f nick/master

Slide 326

Slide 326 text

schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f 5ec e4a 4a7 ce0 developer jessica 2fb df7 4ea a09 git remote add jess git://github.com/jessica/project.git 5ec e4a 4a7 ce0 nickh/ project c12 ec5 24f 5ec e4a 4a7 ce0 jessica/ project 2fb df7 4ea a09 "nick" "jess" git fetch jess schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/ e4a git fetch jess e4a nickh/ project c12 ec5 24f jessic proje "nick" "jess ec5 24f nick/ma 2fb df7 4ea a09 jess/ma c12 schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f 5ec e4a 4a7 ce0 developer jessica 2fb df7 4ea a09 git fetch nick 5ec e4a 4a7 ce0 nickh/ project c12 ec5 24f 5ec e4a 4a7 ce0 jessica/ project 2fb df7 4ea a09 "nick" "jess" c12 ec5 24f nick/master

Slide 327

Slide 327 text

schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f 5ec e4a 4a7 ce0 developer jessica 2fb df7 4ea a09 git remote add jess git://github.com/jessica/project.git 5ec e4a 4a7 ce0 nickh/ project c12 ec5 24f 5ec e4a 4a7 ce0 jessica/ project 2fb df7 4ea a09 "nick" "jess" git fetch jess schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f 5ec e4a 4a7 ce0 developer jessica 2fb df7 4ea a09 git fetch jess 5ec e4a 4a7 ce0 nickh/ project c12 ec5 24f 5ec e4a 4a7 ce0 jessica/ project 2fb df7 4ea a09 "nick" "jess" ec5 24f nick/master 2fb df7 4ea a09 jess/master c12 schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f 5ec e4a 4a7 ce0 developer jessica 2fb df7 4ea a09 git fetch nick 5ec e4a 4a7 ce0 nickh/ project c12 ec5 24f 5ec e4a 4a7 ce0 jessica/ project 2fb df7 4ea a09 "nick" "jess" c12 ec5 24f nick/master

Slide 328

Slide 328 text

schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f 5ec e4a 4a7 ce0 developer jessica 2fb df7 4ea a09 git fetch jess 5ec e4a 4a7 ce0 nickh/ project c12 ec5 24f 5ec e4a 4a7 ce0 jessica/ project 2fb df7 4ea a09 "nick" "jess" ec5 24f nick/master 2fb df7 4ea a09 jess/master c12

Slide 329

Slide 329 text

schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f 5ec e4a 4a7 ce0 developer jessica 2fb df7 4ea a09 5ec e4a 4a7 ce0 nickh/ project c12 ec5 24f 5ec e4a 4a7 ce0 jessica/ project 2fb df7 4ea a09 "nick" "jess" ec5 24f nick/master 2fb df7 4ea a09 jess/master c12 b3b c63 git merge nick jess git merge nick/master jess/master

Slide 330

Slide 330 text

schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f 5ec e4a 4a7 ce0 developer jessica 2fb df7 4ea a09 git push public 5ec e4a 4a7 ce0 nickh/ project c12 ec5 24f 5ec e4a 4a7 ce0 jessica/ project 2fb df7 4ea a09 "nick" "jess" ec5 24f nick/master 2fb df7 4ea a09 jess/master c12 b3b c63 e4a ec5 24f 2fb df7 4ea a09 c12 b3b c63

Slide 331

Slide 331 text

schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f 5ec e4a 4a7 ce0 developer jessica 2fb df7 4ea a09 5ec e4a 4a7 ce0 nickh/ project c12 ec5 24f 5ec e4a 4a7 ce0 jessica/ project 2fb df7 4ea a09 "nick" "jess" ec5 24f nick/master 2fb df7 4ea a09 jess/master c12 b3b c63 e4a ec5 24f 2fb df7 4ea a09 c12 b3b c63

Slide 332

Slide 332 text

schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f 5ec e4a 4a7 ce0 developer jessica 2fb df7 4ea a09 5ec e4a 4a7 ce0 nickh/ project c12 ec5 24f 5ec e4a 4a7 ce0 jessica/ project 2fb df7 4ea a09 "nick" "jess" ec5 24f nick/master 2fb df7 4ea a09 jess/master c12 b3b c63 e4a ec5 24f 2fb df7 4ea a09 c12 b3b c63

Slide 333

Slide 333 text

schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f 5ec e4a 4a7 ce0 developer jessica 2fb df7 4ea a09 5ec e4a 4a7 ce0 nickh/ project c12 ec5 24f 5ec e4a 4a7 ce0 jessica/ project 2fb df7 4ea a09 "nick" "jess" ec5 24f nick/master 2fb df7 4ea a09 jess/master c12 b3b c63 e4a ec5 24f 2fb df7 4ea a09 c12 b3b c63

Slide 334

Slide 334 text

schacon/ project "public" my repo 5ec e4a 4a7 ce0 master public/master 5ec e4a 4a7 ce0 5ec e4a 4a7 ce0 developer nick c12 ec5 24f 5ec e4a 4a7 ce0 developer jessica 2fb df7 4ea a09 5ec e4a 4a7 ce0 nickh/ project c12 ec5 24f 5ec e4a 4a7 ce0 jessica/ project 2fb df7 4ea a09 "nick" "jess" ec5 24f nick/master 2fb df7 4ea a09 jess/master c12 b3b c63 e4a ec5 24f 2fb df7 4ea a09 c12 b3b c63

Slide 335

Slide 335 text

Looking Around

Slide 336

Slide 336 text

git log

Slide 337

Slide 337 text

walking your commit history

Slide 338

Slide 338 text

98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 4fa23 79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e

Slide 339

Slide 339 text

git log 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 4fa23 79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e

Slide 340

Slide 340 text

git log 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 4fa23 79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e

Slide 341

Slide 341 text

git log 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 4fa23 79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e

Slide 342

Slide 342 text

git log 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 4fa23 79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e

Slide 343

Slide 343 text

git log 98ca9 a23fe f30ab iss53 34ac2 3acd1 master HEAD i18n 95c41 4fa23 79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e

Slide 344

Slide 344 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log commit 16758d868a4e97c9d4281940438b7ea1680cfc0a Merge: 5eea9cf 4b2a7ae Author: Scott Chacon Date: Wed Jul 28 16:29:23 2010 -0700 Merge branch 'i18n' commit 4b2a7ae83bcbb213c7d88c6fada3700f77d43a2e Author: Scott Chacon Date: Wed Jul 28 16:28:45 2010 -0700 fix spacing issues in both c files commit 1d6389c30cf766daf3dcfe7cc1e3b7fdbfc5cc48 Author: Scott Chacon Date: Wed Jul 28 16:28:18 2010 -0700 added i18n file commit 5eea9cf450d5b200d7f134e4024d1c062cb5b341 Author: Scott Chacon Date: Wed Jul 28 16:27:35 2010 -0700 documented issue file commit 4db9f5c2b4c3935ff787f0fa85e9265c3e306fca Author: Scott Chacon Date: Wed Jul 28 16:27:10 2010 -0700 added issue file

Slide 345

Slide 345 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log commit 16758d868a4e97c9d4281940438b7ea1680cfc0a Merge: 5eea9cf 4b2a7ae Author: Scott Chacon Date: Wed Jul 28 16:29:23 2010 -0700 Merge branch 'i18n' commit 4b2a7ae83bcbb213c7d88c6fada3700f77d43a2e Author: Scott Chacon Date: Wed Jul 28 16:28:45 2010 -0700 fix spacing issues in both c files commit 1d6389c30cf766daf3dcfe7cc1e3b7fdbfc5cc48 Author: Scott Chacon Date: Wed Jul 28 16:28:18 2010 -0700 added i18n file commit 5eea9cf450d5b200d7f134e4024d1c062cb5b341 Author: Scott Chacon Date: Wed Jul 28 16:27:35 2010 -0700 documented issue file commit 4db9f5c2b4c3935ff787f0fa85e9265c3e306fca Author: Scott Chacon Date: Wed Jul 28 16:27:10 2010 -0700 added issue file

Slide 346

Slide 346 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log commit 16758d868a4e97c9d4281940438b7ea1680cfc0a Merge: 5eea9cf 4b2a7ae Author: Scott Chacon Date: Wed Jul 28 16:29:23 2010 -0700 Merge branch 'i18n' commit 4b2a7ae83bcbb213c7d88c6fada3700f77d43a2e Author: Scott Chacon Date: Wed Jul 28 16:28:45 2010 -0700 fix spacing issues in both c files commit 1d6389c30cf766daf3dcfe7cc1e3b7fdbfc5cc48 Author: Scott Chacon Date: Wed Jul 28 16:28:18 2010 -0700 added i18n file commit 5eea9cf450d5b200d7f134e4024d1c062cb5b341 Author: Scott Chacon Date: Wed Jul 28 16:27:35 2010 -0700 documented issue file commit 4db9f5c2b4c3935ff787f0fa85e9265c3e306fca Author: Scott Chacon Date: Wed Jul 28 16:27:10 2010 -0700 added issue file

Slide 347

Slide 347 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log commit 16758d868a4e97c9d4281940438b7ea1680cfc0a Merge: 5eea9cf 4b2a7ae Author: Scott Chacon Date: Wed Jul 28 16:29:23 2010 -0700 Merge branch 'i18n' commit 4b2a7ae83bcbb213c7d88c6fada3700f77d43a2e Author: Scott Chacon Date: Wed Jul 28 16:28:45 2010 -0700 fix spacing issues in both c files commit 1d6389c30cf766daf3dcfe7cc1e3b7fdbfc5cc48 Author: Scott Chacon Date: Wed Jul 28 16:28:18 2010 -0700 added i18n file commit 5eea9cf450d5b200d7f134e4024d1c062cb5b341 Author: Scott Chacon Date: Wed Jul 28 16:27:35 2010 -0700 documented issue file commit 4db9f5c2b4c3935ff787f0fa85e9265c3e306fca Author: Scott Chacon Date: Wed Jul 28 16:27:10 2010 -0700 added issue file

Slide 348

Slide 348 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log commit 16758d868a4e97c9d4281940438b7ea1680cfc0a Merge: 5eea9cf 4b2a7ae Author: Scott Chacon Date: Wed Jul 28 16:29:23 2010 -0700 Merge branch 'i18n' commit 4b2a7ae83bcbb213c7d88c6fada3700f77d43a2e Author: Scott Chacon Date: Wed Jul 28 16:28:45 2010 -0700 fix spacing issues in both c files commit 1d6389c30cf766daf3dcfe7cc1e3b7fdbfc5cc48 Author: Scott Chacon Date: Wed Jul 28 16:28:18 2010 -0700 added i18n file commit 5eea9cf450d5b200d7f134e4024d1c062cb5b341 Author: Scott Chacon Date: Wed Jul 28 16:27:35 2010 -0700 documented issue file commit 4db9f5c2b4c3935ff787f0fa85e9265c3e306fca Author: Scott Chacon Date: Wed Jul 28 16:27:10 2010 -0700 added issue file

Slide 349

Slide 349 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log commit 16758d868a4e97c9d4281940438b7ea1680cfc0a Merge: 5eea9cf 4b2a7ae Author: Scott Chacon Date: Wed Jul 28 16:29:23 2010 -0700 Merge branch 'i18n' commit 4b2a7ae83bcbb213c7d88c6fada3700f77d43a2e Author: Scott Chacon Date: Wed Jul 28 16:28:45 2010 -0700 fix spacing issues in both c files commit 1d6389c30cf766daf3dcfe7cc1e3b7fdbfc5cc48 Author: Scott Chacon Date: Wed Jul 28 16:28:18 2010 -0700 added i18n file commit 5eea9cf450d5b200d7f134e4024d1c062cb5b341 Author: Scott Chacon Date: Wed Jul 28 16:27:35 2010 -0700 documented issue file commit 4db9f5c2b4c3935ff787f0fa85e9265c3e306fca Author: Scott Chacon Date: Wed Jul 28 16:27:10 2010 -0700 added issue file

Slide 350

Slide 350 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log commit 16758d868a4e97c9d4281940438b7ea1680cfc0a Merge: 5eea9cf 4b2a7ae Author: Scott Chacon Date: Wed Jul 28 16:29:23 2010 -0700 Merge branch 'i18n' commit 4b2a7ae83bcbb213c7d88c6fada3700f77d43a2e Author: Scott Chacon Date: Wed Jul 28 16:28:45 2010 -0700 fix spacing issues in both c files commit 1d6389c30cf766daf3dcfe7cc1e3b7fdbfc5cc48 Author: Scott Chacon Date: Wed Jul 28 16:28:18 2010 -0700 added i18n file commit 5eea9cf450d5b200d7f134e4024d1c062cb5b341 Author: Scott Chacon Date: Wed Jul 28 16:27:35 2010 -0700 documented issue file commit 4db9f5c2b4c3935ff787f0fa85e9265c3e306fca Author: Scott Chacon Date: Wed Jul 28 16:27:10 2010 -0700 added issue file

Slide 351

Slide 351 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log commit 16758d868a4e97c9d4281940438b7ea1680cfc0a Merge: 5eea9cf 4b2a7ae Author: Scott Chacon Date: Wed Jul 28 16:29:23 2010 -0700 Merge branch 'i18n' commit 4b2a7ae83bcbb213c7d88c6fada3700f77d43a2e Author: Scott Chacon Date: Wed Jul 28 16:28:45 2010 -0700 fix spacing issues in both c files commit 1d6389c30cf766daf3dcfe7cc1e3b7fdbfc5cc48 Author: Scott Chacon Date: Wed Jul 28 16:28:18 2010 -0700 added i18n file commit 5eea9cf450d5b200d7f134e4024d1c062cb5b341 Author: Scott Chacon Date: Wed Jul 28 16:27:35 2010 -0700 documented issue file commit 4db9f5c2b4c3935ff787f0fa85e9265c3e306fca Author: Scott Chacon Date: Wed Jul 28 16:27:10 2010 -0700 added issue file

Slide 352

Slide 352 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log commit 16758d868a4e97c9d4281940438b7ea1680cfc0a Merge: 5eea9cf 4b2a7ae Author: Scott Chacon Date: Wed Jul 28 16:29:23 2010 -0700 Merge branch 'i18n' commit 4b2a7ae83bcbb213c7d88c6fada3700f77d43a2e Author: Scott Chacon Date: Wed Jul 28 16:28:45 2010 -0700 fix spacing issues in both c files commit 1d6389c30cf766daf3dcfe7cc1e3b7fdbfc5cc48 Author: Scott Chacon Date: Wed Jul 28 16:28:18 2010 -0700 added i18n file commit 5eea9cf450d5b200d7f134e4024d1c062cb5b341 Author: Scott Chacon Date: Wed Jul 28 16:27:35 2010 -0700 documented issue file commit 4db9f5c2b4c3935ff787f0fa85e9265c3e306fca Author: Scott Chacon Date: Wed Jul 28 16:27:10 2010 -0700 added issue file

Slide 353

Slide 353 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log commit 16758d868a4e97c9d4281940438b7ea1680cfc0a Merge: 5eea9cf 4b2a7ae Author: Scott Chacon Date: Wed Jul 28 16:29:23 2010 -0700 Merge branch 'i18n' commit 4b2a7ae83bcbb213c7d88c6fada3700f77d43a2e Author: Scott Chacon Date: Wed Jul 28 16:28:45 2010 -0700 fix spacing issues in both c files commit 1d6389c30cf766daf3dcfe7cc1e3b7fdbfc5cc48 Author: Scott Chacon Date: Wed Jul 28 16:28:18 2010 -0700 added i18n file commit 5eea9cf450d5b200d7f134e4024d1c062cb5b341 Author: Scott Chacon Date: Wed Jul 28 16:27:35 2010 -0700 documented issue file commit 4db9f5c2b4c3935ff787f0fa85e9265c3e306fca Author: Scott Chacon Date: Wed Jul 28 16:27:10 2010 -0700 added issue file

Slide 354

Slide 354 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log commit 16758d868a4e97c9d4281940438b7ea1680cfc0a Merge: 5eea9cf 4b2a7ae Author: Scott Chacon Date: Wed Jul 28 16:29:23 2010 -0700 Merge branch 'i18n' commit 4b2a7ae83bcbb213c7d88c6fada3700f77d43a2e Author: Scott Chacon Date: Wed Jul 28 16:28:45 2010 -0700 fix spacing issues in both c files commit 1d6389c30cf766daf3dcfe7cc1e3b7fdbfc5cc48 Author: Scott Chacon Date: Wed Jul 28 16:28:18 2010 -0700 added i18n file commit 5eea9cf450d5b200d7f134e4024d1c062cb5b341 Author: Scott Chacon Date: Wed Jul 28 16:27:35 2010 -0700 documented issue file commit 4db9f5c2b4c3935ff787f0fa85e9265c3e306fca Author: Scott Chacon Date: Wed Jul 28 16:27:10 2010 -0700 added issue file

Slide 355

Slide 355 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log commit 16758d868a4e97c9d4281940438b7ea1680cfc0a Merge: 5eea9cf 4b2a7ae Author: Scott Chacon Date: Wed Jul 28 16:29:23 2010 -0700 Merge branch 'i18n' commit 4b2a7ae83bcbb213c7d88c6fada3700f77d43a2e Author: Scott Chacon Date: Wed Jul 28 16:28:45 2010 -0700 fix spacing issues in both c files commit 1d6389c30cf766daf3dcfe7cc1e3b7fdbfc5cc48 Author: Scott Chacon Date: Wed Jul 28 16:28:18 2010 -0700 added i18n file commit 5eea9cf450d5b200d7f134e4024d1c062cb5b341 Author: Scott Chacon Date: Wed Jul 28 16:27:35 2010 -0700 documented issue file commit 4db9f5c2b4c3935ff787f0fa85e9265c3e306fca Author: Scott Chacon Date: Wed Jul 28 16:27:10 2010 -0700 added issue file

Slide 356

Slide 356 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log commit 16758d868a4e97c9d4281940438b7ea1680cfc0a Merge: 5eea9cf 4b2a7ae Author: Scott Chacon Date: Wed Jul 28 16:29:23 2010 -0700 Merge branch 'i18n' commit 4b2a7ae83bcbb213c7d88c6fada3700f77d43a2e Author: Scott Chacon Date: Wed Jul 28 16:28:45 2010 -0700 fix spacing issues in both c files commit 1d6389c30cf766daf3dcfe7cc1e3b7fdbfc5cc48 Author: Scott Chacon Date: Wed Jul 28 16:28:18 2010 -0700 added i18n file commit 5eea9cf450d5b200d7f134e4024d1c062cb5b341 Author: Scott Chacon Date: Wed Jul 28 16:27:35 2010 -0700 documented issue file commit 4db9f5c2b4c3935ff787f0fa85e9265c3e306fca Author: Scott Chacon Date: Wed Jul 28 16:27:10 2010 -0700 added issue file

Slide 357

Slide 357 text

log formatting

Slide 358

Slide 358 text

git log --oneline

Slide 359

Slide 359 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e

Slide 360

Slide 360 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log --oneline 16758d8 Merge branch 'i18n' 4b2a7ae fix spacing issues in both c files 1d6389c added i18n file 5eea9cf documented issue file 4db9f5c added issue file 79c2add initial project import

Slide 361

Slide 361 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log --oneline iss53 5eea9cf documented issue file 4db9f5c added issue file 79c2add initial project import

Slide 362

Slide 362 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log --oneline i18n faf4ece update README to be more specific 4b2a7ae fix spacing issues in both c files 1d6389c added i18n file 79c2add initial project import

Slide 363

Slide 363 text

git log --graph

Slide 364

Slide 364 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log --oneline 16758d8 Merge branch 'i18n' 4b2a7ae fix spacing issues in both c files 1d6389c added i18n file 5eea9cf documented issue file 4db9f5c added issue file 79c2add initial project import

Slide 365

Slide 365 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log --oneline --graph * 16758d8 Merge branch 'i18n' |\ | * 4b2a7ae fix spacing issues in both c files | * 1d6389c added i18n file * | 5eea9cf documented issue file * | 4db9f5c added issue file |/ * 79c2add initial project import

Slide 366

Slide 366 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log --oneline --graph * 16758d8 Merge branch 'i18n' |\ | * 4b2a7ae fix spacing issues in both c files | * 1d6389c added i18n file * | 5eea9cf documented issue file * | 4db9f5c added issue file |/ * 79c2add initial project import

Slide 367

Slide 367 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log --oneline --graph * 16758d8 Merge branch 'i18n' |\ | * 4b2a7ae fix spacing issues in both c files | * 1d6389c added i18n file * | 5eea9cf documented issue file * | 4db9f5c added issue file |/ * 79c2add initial project import

Slide 368

Slide 368 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log --oneline --graph * 16758d8 Merge branch 'i18n' |\ | * 4b2a7ae fix spacing issues in both c files | * 1d6389c added i18n file * | 5eea9cf documented issue file * | 4db9f5c added issue file |/ * 79c2add initial project import

Slide 369

Slide 369 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log --oneline --graph * 16758d8 Merge branch 'i18n' |\ | * 4b2a7ae fix spacing issues in both c files | * 1d6389c added i18n file * | 5eea9cf documented issue file * | 4db9f5c added issue file |/ * 79c2add initial project import

Slide 370

Slide 370 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log --oneline --graph * 16758d8 Merge branch 'i18n' |\ | * 4b2a7ae fix spacing issues in both c files | * 1d6389c added i18n file * | 5eea9cf documented issue file * | 4db9f5c added issue file |/ * 79c2add initial project import

Slide 371

Slide 371 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log --oneline --graph * 16758d8 Merge branch 'i18n' |\ | * 4b2a7ae fix spacing issues in both c files | * 1d6389c added i18n file * | 5eea9cf documented issue file * | 4db9f5c added issue file |/ * 79c2add initial project import

Slide 372

Slide 372 text

git log --all git log --decorate

Slide 373

Slide 373 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log --oneline --graph --all --decorate * faf4ece (i18n) update README to be more specific | * 16758d8 (HEAD, master) Merge branch 'i18n' | |\ | |/ |/| * | 4b2a7ae fix spacing issues in both c files * | 1d6389c added i18n file | * 5eea9cf (iss53) documented issue file | * 4db9f5c added issue file |/ * 79c2add initial project import

Slide 374

Slide 374 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log --oneline --graph --all --decorate * faf4ece (i18n) update README to be more specific | * 16758d8 (HEAD, master) Merge branch 'i18n' | |\ | |/ |/| * | 4b2a7ae fix spacing issues in both c files * | 1d6389c added i18n file | * 5eea9cf (iss53) documented issue file | * 4db9f5c added issue file |/ * 79c2add initial project import

Slide 375

Slide 375 text

git config --global alias.lol “log --oneline --graph --decorate”

Slide 376

Slide 376 text

git config --global alias.lol “log --oneline --graph --decorate” git lol

Slide 377

Slide 377 text

git config --global alias.lol “log --oneline --graph --decorate” git lol

Slide 378

Slide 378 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git lol --all * faf4ece (i18n) update README to be more specific | * 16758d8 (HEAD, master) Merge branch 'i18n' | |\ | |/ |/| * | 4b2a7ae fix spacing issues in both c files * | 1d6389c added i18n file | * 5eea9cf (iss53) documented issue file | * 4db9f5c added issue file |/ * 79c2add initial project import

Slide 379

Slide 379 text

log subsets

Slide 380

Slide 380 text

git log branchA ^branchB

Slide 381

Slide 381 text

git log branchA ^branchB show me commits reachable by branchA that are not reachable by branchB

Slide 382

Slide 382 text

git log branchA ^branchB

Slide 383

Slide 383 text

git log branchA ^branchB not reachable

Slide 384

Slide 384 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e

Slide 385

Slide 385 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e iss53 ^i18n

Slide 386

Slide 386 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e iss53 ^i18n

Slide 387

Slide 387 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e iss53 ^i18n

Slide 388

Slide 388 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e iss53 ^i18n

Slide 389

Slide 389 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e iss53 ^i18n

Slide 390

Slide 390 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e iss53 ^i18n

Slide 391

Slide 391 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git lol iss53 ^i18n * 5eea9cf (iss53) documented issue file * 4db9f5c added issue file

Slide 392

Slide 392 text

what work is in our i18n branch that is not merged into master yet?

Slide 393

Slide 393 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e i18n ^master

Slide 394

Slide 394 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e i18n ^master

Slide 395

Slide 395 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e i18n ^master

Slide 396

Slide 396 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e i18n ^master

Slide 397

Slide 397 text

79c2a 1d638 5eea9 iss53 4db9f 4b2a7 master HEAD i18n 16758 faf4e $ git log i18n ^master commit faf4ecee82715967b07ff98e88796a311c8761fe Author: Scott Chacon Date: Wed Jul 28 16:30:00 2010 -0700 update README to be more specific $

Slide 398

Slide 398 text

quiz

Slide 399

Slide 399 text

git log origin/master ^master

Slide 400

Slide 400 text

git log master ^origin/master

Slide 401

Slide 401 text

Review

Slide 402

Slide 402 text

Review git init

Slide 403

Slide 403 text

Review git init git clone

Slide 404

Slide 404 text

Review git init git clone git add

Slide 405

Slide 405 text

Review git init git clone git add git status

Slide 406

Slide 406 text

Review git init git clone git add git status git commit

Slide 407

Slide 407 text

Review git init git clone git add git status git commit git branch

Slide 408

Slide 408 text

Review git init git clone git add git status git commit git branch git checkout

Slide 409

Slide 409 text

Review git init git clone git add git status git commit git branch git checkout git merge

Slide 410

Slide 410 text

Review git init git clone git add git status git commit git branch git checkout git merge git push

Slide 411

Slide 411 text

Review git init git clone git add git status git commit git branch git checkout git merge git push git fetch

Slide 412

Slide 412 text

Review git init git clone git add git status git commit git branch git checkout git merge git push git fetch git pull

Slide 413

Slide 413 text

Review git init git clone git add git status git commit git branch git checkout git merge git push git fetch git pull git log

Slide 414

Slide 414 text

Review git init git clone git add git status git commit git branch git checkout git merge git push git fetch git pull git log 12

Slide 415

Slide 415 text

Resources git-scm.com gitref.org progit.com [email protected]