Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

• • /* */ • – • – browser_ver6/ browser_ver5/

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

• •

Slide 15

Slide 15 text

PLURK • •

Slide 16

Slide 16 text

PLURK • • 

Slide 17

Slide 17 text

PLURK • • 

Slide 18

Slide 18 text

PLURK • • 

Slide 19

Slide 19 text

• • • •

Slide 20

Slide 20 text

• – • – • –

Slide 21

Slide 21 text

• –

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

git config --global user.name "Dan" git config --global user.email "[email protected]"

Slide 35

Slide 35 text

• • – git init – git clone

Slide 36

Slide 36 text

cd project/ git init . git add . git commit –m "initial commit"

Slide 37

Slide 37 text

[/tmp/foo] $ ls -lah total 12K drwxr-xr-x+ 1 Dan None 0 Feb 17 11:46 . drwxrwxrwt+ 1 Dan root 8.0K Feb 17 11:46 .. drwxr-xr-x+ 1 Dan None 4.0K Feb 17 11:19 .git -rw-r--r-- 1 Dan None 0 Feb 17 11:46 Hello.txt -rw-r--r-- 1 Dan None 0 Feb 17 11:46 README .git/

Slide 38

Slide 38 text

[/tmp/foo] $ ls -lh .git -rw-r--r-- 1 Dan None 111 Feb 17 11:19 config -rw-r--r-- 1 Dan None 73 Feb 17 11:19 description -rw-r--r-- 1 Dan None 23 Feb 17 11:19 HEAD drwxr-xr-x+ 1 Dan None 4.0K Feb 17 11:19 hooks drwxr-xr-x+ 1 Dan None 0 Feb 17 11:19 info drwxr-xr-x+ 1 Dan None 0 Feb 17 11:19 objects drwxr-xr-x+ 1 Dan None 0 Feb 17 11:19 refs

Slide 39

Slide 39 text

[/tmp/foo] $ git status # 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) # modified: README # # Untracked files: # (use "git add ..." to include in what will be committed) # Hello no changes added to commit (use "git add" and/or "git commit -a")

Slide 40

Slide 40 text

[/tmp/foo] $ git status # 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) # modified: README # # Untracked files: # (use "git add ..." to include in what will be committed) # Hello no changes added to commit (use "git add" and/or "git commit -a")

Slide 41

Slide 41 text

[/tmp/foo] $ git status # 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) # modified: README # # Untracked files: # (use "git add ..." to include in what will be committed) # Hello no changes added to commit (use "git add" and/or "git commit -a")

Slide 42

Slide 42 text

[/tmp/foo] $ git status # 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) # modified: README # # Untracked files: # (use "git add ..." to include in what will be committed) # Hello no changes added to commit (use "git add" and/or "git commit -a") [/tmp/foo] $ git add .

Slide 43

Slide 43 text

[/tmp/foo] $ git status # 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) # modified: README # # Untracked files: # (use "git add ..." to include in what will be committed) # Hello no changes added to commit (use "git add" and/or "git commit -a") [/tmp/foo] $ git add . [/tmp/foo] $ git status # On branch master # Changes to be committed: # (use "git reset HEAD ..." to unstage) # new file: Hello # modified: README

Slide 44

Slide 44 text

[/tmp/foo] $ git status # 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) # modified: README # # Untracked files: # (use "git add ..." to include in what will be committed) # Hello no changes added to commit (use "git add" and/or "git commit -a") [/tmp/foo] $ git add . [/tmp/foo] $ git status # On branch master # Changes to be committed: # (use "git reset HEAD ..." to unstage) # new file: Hello # modified: README git commit

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

git add

Slide 47

Slide 47 text

git add

Slide 48

Slide 48 text

git add git commit

Slide 49

Slide 49 text

• – • git commit -a • git mv git rm

Slide 50

Slide 50 text

• –

Slide 51

Slide 51 text

• – git add . • tmp/* log/* build/* .DS_Store Thumbs.db

Slide 52

Slide 52 text

• – git add . • tmp/* log/* build/* .DS_Store Thumbs.db

Slide 53

Slide 53 text

[/tmp/foo] $ git add . [/tmp/foo] $ git status # On branch master # Changes to be committed: # (use "git reset HEAD ..." to unstage) # new file: Hello # modified: README [/tmp/foo] $ git commit

Slide 54

Slide 54 text

[/tmp/foo] $ git add . [/tmp/foo] $ git status # On branch master # Changes to be committed: # (use "git reset HEAD ..." to unstage) # new file: Hello # modified: README [/tmp/foo] $ git commit -m 'add hello, refactor README'

Slide 55

Slide 55 text

[/tmp/foo] $ git add . [/tmp/foo] $ git status # On branch master # Changes to be committed: # (use "git reset HEAD ..." to unstage) # new file: Hello # modified: README [/tmp/foo] $ git commit -m 'add hello, refactor README' [master 356bbef] add hello, refactor README 1 files changed, 1 insertions(+), 0 deletions(-) create mode 100644 Hello [/tmp/foo] $ git status # On branch master nothing to commit (working directory clean)

Slide 56

Slide 56 text

[/tmp/git] $ git log commit 5673d695fcce217b26d1a5956c1184ff62dc74f1 Author: Junio C Hamano Date: Wed Feb 16 14:33:22 2011 -0800 Merge branch 'maint' * maint: parse_tag_buffer(): do not prefixcmp() out of range commit 759e84f07fd0fba2f3466b11b74146173d42cb6b Author: Junio C Hamano Date: Wed Feb 16 14:33:11 2011 -0800 Merge branch 'maint-1.7.3' into maint * maint-1.7.3:

Slide 57

Slide 57 text

[/tmp/git] $ git log commit 5673d695fcce217b26d1a5956c1184ff62dc74f1 Author: Junio C Hamano Date: Wed Feb 16 14:33:22 2011 -0800 Merge branch 'maint' * maint: parse_tag_buffer(): do not prefixcmp() out of range commit 759e84f07fd0fba2f3466b11b74146173d42cb6b Author: Junio C Hamano Date: Wed Feb 16 14:33:11 2011 -0800 Merge branch 'maint-1.7.3' into maint * maint-1.7.3:

Slide 58

Slide 58 text

[/tmp/git] $ git log commit 5673d695fcce217b26d1a5956c1184ff62dc74f1 Author: Junio C Hamano Date: Wed Feb 16 14:33:22 2011 -0800 Merge branch 'maint' * maint: parse_tag_buffer(): do not prefixcmp() out of range commit 759e84f07fd0fba2f3466b11b74146173d42cb6b Author: Junio C Hamano Date: Wed Feb 16 14:33:11 2011 -0800 Merge branch 'maint-1.7.3' into maint * maint-1.7.3:

Slide 59

Slide 59 text

[/tmp/git] $ git log commit 5673d695fcce217b26d1a5956c1184ff62dc74f1 Author: Junio C Hamano Date: Wed Feb 16 14:33:22 2011 -0800 Merge branch 'maint' * maint: parse_tag_buffer(): do not prefixcmp() out of range commit 759e84f07fd0fba2f3466b11b74146173d42cb6b Author: Junio C Hamano Date: Wed Feb 16 14:33:11 2011 -0800 Merge branch 'maint-1.7.3' into maint * maint-1.7.3:

Slide 60

Slide 60 text

[/tmp/git] $ git log commit 5673d695fcce217b26d1a5956c1184ff62dc74f1 Author: Junio C Hamano Date: Wed Feb 16 14:33:22 2011 -0800 Merge branch 'maint' * maint: parse_tag_buffer(): do not prefixcmp() out of range commit 759e84f07fd0fba2f3466b11b74146173d42cb6b Author: Junio C Hamano Date: Wed Feb 16 14:33:11 2011 -0800 Merge branch 'maint-1.7.3' into maint * maint-1.7.3:

Slide 61

Slide 61 text

[/tmp/git] $ git log commit 5673d695fcce217b26d1a5956c1184ff62dc74f1 Author: Junio C Hamano Date: Wed Feb 16 14:33:22 2011 -0800 Merge branch 'maint' * maint: parse_tag_buffer(): do not prefixcmp() out of range commit 759e84f07fd0fba2f3466b11b74146173d42cb6b Author: Junio C Hamano Date: Wed Feb 16 14:33:11 2011 -0800 Merge branch 'maint-1.7.3' into maint * maint-1.7.3:

Slide 62

Slide 62 text

[/tmp/git] $ git show HEAD commit ebbc1b128825df6f7500f5e34836390b24ca4966 Author: Dannvix Chen Date: Thu Feb 17 14:15:23 2011 +0800 improve README user experience diff --git a/README b/README index edb17cc..a40afab 100644 --- a/README +++ b/README @@ -1 +1,2 @@ Git test +Balah balah

Slide 63

Slide 63 text

[/tmp/git] $ $ git blame git.c 85023577 (Junio C Hamano 2006-12-19 14:34:12 -0800 1) #include "builtin.h" 2b11e317 (Johannes Schindel 2006-06-05 19:43:52 +0200 2) #include "cache.h" fd5c363d (Thiago Farina 2010-08-31 23:29:08 -0300 3) #include "exec_cmd.h" fd5c363d (Thiago Farina 2010-08-31 23:29:08 -0300 4) #include "help.h" 575ba9d6 (Matthias Lederhof 2006-06-25 15:56:18 +0200 5) #include "quote.h" d8e96fd8 (Jeff King 2009-01-28 02:38:14 -0500 6) #include "run-command.h" 8e49d503 (Andreas Ericsson 2005-11-16 00:31:25 +0100 7) 4e10738a (Jeff King 2008-07-03 07:46:57 -0400 19) static int use_pager=-1; 4e10738a (Jeff King 2008-07-03 07:46:57 -0400 20) struct pager_config { 4e10738a (Jeff King 2008-07-03 07:46:57 -0400 21) const char *cmd; 9bad7233 (Jeff King 2010-11-17 12:04:12 -0500 22) int want; 9bad7233 (Jeff King 2010-11-17 12:04:12 -0500 23) char *value; 4e10738a (Jeff King 2008-07-03 07:46:57 -0400 24) }; 4e10738a (Jeff King 2008-07-03 07:46:57 -0400 25)

Slide 64

Slide 64 text

• git checkout (HEAD^) hello.c • git reset --hard • git reset HEAD hello.c

Slide 65

Slide 65 text

• – • – – – •

Slide 66

Slide 66 text

No content

Slide 67

Slide 67 text

No content

Slide 68

Slide 68 text

No content

Slide 69

Slide 69 text

No content

Slide 70

Slide 70 text

No content

Slide 71

Slide 71 text

No content

Slide 72

Slide 72 text

[/tmp/foo] $ git branch * master

Slide 73

Slide 73 text

[/tmp/foo] $ git branch * master

Slide 74

Slide 74 text

[/tmp/foo] $ git branch * master [/tmp/foo] $ git checkout –b newidea Switched to a new branch 'newidea' [/tmp/foo] $ git branch master * newidea

Slide 75

Slide 75 text

[/tmp/foo] $ git branch * master [/tmp/foo] $ git checkout –b newidea Switched to a new branch 'newidea' [/tmp/foo] $ git branch master * newidea git branch newidea git checkout newidea

Slide 76

Slide 76 text

[/tmp/foo] $ git branch * master [/tmp/foo] $ git checkout –b newidea Switched to a new branch 'newidea' [/tmp/foo] $ git branch master * newidea [/tmp/foo] $ … vim newidea … [/tmp/foo] $ git commit –a –m 'improve README user experience'

Slide 77

Slide 77 text

[/tmp/foo] $ git branch * master [/tmp/foo] $ git checkout –b newidea Switched to a new branch 'newidea' [/tmp/foo] $ git branch master * newidea [/tmp/foo] $ … vim newidea … [/tmp/foo] $ git commit –a –m 'improve README user experience' [/tmp/foo] $ git checkout master [/tmp/foo] $ git merge newidea Updating 356bbef..ebbc1b1 Fast-forward README | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)

Slide 78

Slide 78 text

[/tmp/foo] $ git branch * master [/tmp/foo] $ git checkout –b newidea Switched to a new branch 'newidea' [/tmp/foo] $ git branch master * newidea [/tmp/foo] $ … vim newidea … [/tmp/foo] $ git commit –a –m 'improve README user experience' [/tmp/foo] $ git checkout master [/tmp/foo] $ git merge newidea Updating 356bbef..ebbc1b1 Fast-forward README | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)

Slide 79

Slide 79 text

[/tmp/foo] $ git branch * master [/tmp/foo] $ git checkout –b newidea Switched to a new branch 'newidea' [/tmp/foo] $ git branch master * newidea [/tmp/foo] $ … vim newidea … [/tmp/foo] $ git commit –a –m 'improve README user experience' [/tmp/foo] $ git checkout master [/tmp/foo] $ git merge newidea Updating 356bbef..ebbc1b1 Fast-forward README | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)

Slide 80

Slide 80 text

[/tmp/foo] $ git branch * master [/tmp/foo] $ git checkout –b newidea Switched to a new branch 'newidea' [/tmp/foo] $ git branch master * newidea [/tmp/foo] $ … vim newidea … [/tmp/foo] $ git commit –a –m 'improve README user experience' [/tmp/foo] $ git checkout master [/tmp/foo] $ git merge newidea Updating 356bbef..ebbc1b1 Fast-forward README | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)

Slide 81

Slide 81 text

[/tmp/foo] $ git branch * master [/tmp/foo] $ git checkout –b newidea Switched to a new branch 'newidea' [/tmp/foo] $ git branch master * newidea [/tmp/foo] $ … vim newidea … [/tmp/foo] $ git commit –a –m 'improve README user experience' [/tmp/foo] $ git checkout master [/tmp/foo] $ git merge newidea Updating 356bbef..ebbc1b1 Fast-forward README | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)

Slide 82

Slide 82 text

[/tmp/foo] $ git branch * master [/tmp/foo] $ git checkout –b newidea Switched to a new branch 'newidea' [/tmp/foo] $ git branch master * newidea [/tmp/foo] $ … vim newidea … [/tmp/foo] $ git commit –a –m 'improve README user experience' [/tmp/foo] $ git checkout master [/tmp/foo] $ git merge newidea Updating 356bbef..ebbc1b1 Fast-forward README | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)

Slide 83

Slide 83 text

[/tmp/foo] $ git branch * master [/tmp/foo] $ git checkout –b newidea Switched to a new branch 'newidea' [/tmp/foo] $ git branch master * newidea [/tmp/foo] $ … vim newidea … [/tmp/foo] $ git commit –a –m 'improve README user experience‘ [/tmp/foo] $ git checkout master [/tmp/foo] $ git merge newidea Updating 356bbef..ebbc1b1 Fast-forward README | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) [/tmp/foo] $ git branch –d newidea

Slide 84

Slide 84 text

[/tmp/foo] $ git clone git://git.kernel.org/pub/scm/git/git.git Initialized empty Git repository in /tmp/git/.git/ remote: Counting objects: 133887, done. remote: Compressing objects: 100% (32547/32547), done. remote: Total 133887 (delta 100281), reused 132921 (delta 99480) Receiving objects: 100% (133887/133887), 27.30 MiB | 76 KiB/s, done. Resolving deltas: 100% (100281/100281), done. [/tmp/foo] $ git push origin master

Slide 85

Slide 85 text

[/tmp/foo] $ git clone git://git.kernel.org/pub/scm/git/git.git Initialized empty Git repository in /tmp/git/.git/ remote: Counting objects: 133887, done. remote: Compressing objects: 100% (32547/32547), done. remote: Total 133887 (delta 100281), reused 132921 (delta 99480) Receiving objects: 100% (133887/133887), 27.30 MiB | 76 KiB/s, done. Resolving deltas: 100% (100281/100281), done. [/tmp/foo] $ git push origin master

Slide 86

Slide 86 text

• – git config – git init – git add – git commit – git status – git log – git tag • – git checkout – git branch – git merge – git rebase • – git remove – git fetch – git pull – git clone – git push • – git diff – git apply – git format-patch – git am

Slide 87

Slide 87 text

• – • – • – –

Slide 88

Slide 88 text

No content

Slide 89

Slide 89 text

No content

Slide 90

Slide 90 text

No content

Slide 91

Slide 91 text

No content

Slide 92

Slide 92 text

No content

Slide 93

Slide 93 text

No content

Slide 94

Slide 94 text

No content

Slide 95

Slide 95 text

No content

Slide 96

Slide 96 text

No content

Slide 97

Slide 97 text

No content

Slide 98

Slide 98 text

No content

Slide 99

Slide 99 text

No content

Slide 100

Slide 100 text

No content

Slide 101

Slide 101 text

No content

Slide 102

Slide 102 text

No content

Slide 103

Slide 103 text

No content

Slide 104

Slide 104 text

No content

Slide 105

Slide 105 text

No content

Slide 106

Slide 106 text

[~/Dropbox/Repos] $ mkdir test.git

Slide 107

Slide 107 text

[~/Dropbox/Repos] $ mkdir test.git [~/Dropbox/Repos] $ cd test.git [~/Dropbox/Repos/test.git] $ git init --bare

Slide 108

Slide 108 text

[~/Dropbox/Repos] $ mkdir test.git [~/Dropbox/Repos] $ cd test.git [~/Dropbox/Repos/test.git] $ git init --bare Initialized empty Git repository in ~/Dropbox/Repos/test.git/ [~/Dropbox/Repos/test.git] $ cd /tmp [~/Code] $ git clone file:///Users/Dan/Dropbox/Repos/test.git

Slide 109

Slide 109 text

[~/Dropbox/Repos] $ mkdir test.git [~/Dropbox/Repos] $ cd test.git [~/Dropbox/Repos/test.git] $ git init --bare Initialized empty Git repository in ~/Dropbox/Repos/test.git/ [~/Dropbox/Repos/test.git] $ cd /tmp [~/Code] $ git clone file:///Users/Dan/Dropbox/Repos/test.git [~/Code] $ cd test [~/Code/test] $ touch README [~/Code/test] $ git add . [~/Code/test] $ git commit –m 'initial commit‘ [master (root-commit) 17d28f0] initial commit 0 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 README

Slide 110

Slide 110 text

[~/Dropbox/Repos] $ mkdir test.git [~/Dropbox/Repos] $ cd test.git [~/Dropbox/Repos/test.git] $ git init --bare Initialized empty Git repository in ~/Dropbox/Repos/test.git/ [~/Dropbox/Repos/test.git] $ cd /tmp [~/Code] $ git clone file:///Users/Dan/Dropbox/Repos/test.git [~/Code] $ cd test [~/Code/test] $ touch README [~/Code/test] $ git add . [~/Code/test] $ git commit –m 'initial commit‘ [master (root-commit) 17d28f0] initial commit 0 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 README [~/Code/test] $ git push origin master

Slide 111

Slide 111 text

No content

Slide 112

Slide 112 text

• – git instaweb --httpd=webrick – http://localhost:1234/

Slide 113

Slide 113 text

No content

Slide 114

Slide 114 text

No content

Slide 115

Slide 115 text

No content

Slide 116

Slide 116 text

No content

Slide 117

Slide 117 text

• • • • •