Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Git Good with Git! — Intermediate
Search
erynofwales
August 06, 2012
Technology
1
230
Git Good with Git! — Intermediate
Intermediate Git workshop.
erynofwales
August 06, 2012
Tweet
Share
Other Decks in Technology
See All in Technology
250905 大吉祥寺.pm 2025 前夜祭 「プログラミングに出会って20年、『今』が1番楽しい」
msykd
PRO
1
510
テストを軸にした生き残り術
kworkdev
PRO
0
180
エラーとアクセシビリティ
schktjm
0
1k
AI時代に非連続な成長を実現するエンジニアリング戦略
sansantech
PRO
3
1.1k
Nstockの一人目エンジニアが 3年間かけて向き合ってきた セキュリティのこととこれから〜あれから半年〜
yo41sawada
0
210
大「個人開発サービス」時代に僕たちはどう生きるか
sotarok
19
9.3k
RSCの時代にReactとフレームワークの境界を探る
uhyo
10
3.1k
おやつは300円まで!の最適化を模索してみた
techtekt
PRO
0
280
オブザーバビリティが広げる AIOps の世界 / The World of AIOps Expanded by Observability
aoto
PRO
0
310
Platform開発が先行する Platform Engineeringの違和感
kintotechdev
3
490
カミナシ社の『ID管理基盤』製品内製 - その意思決定背景と2年間の進化 #AWSUnicornDay / Kaminashi ID - The Big Whys
kaminashi
3
820
落ちる 落ちるよ サーバーは落ちる
suehiromasatoshi
0
140
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Raft: Consensus for Rubyists
vanstee
140
7.1k
Being A Developer After 40
akosma
90
590k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Git: the NoSQL Database
bkeepers
PRO
431
66k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
800
How to Ace a Technical Interview
jacobian
279
23k
RailsConf 2023
tenderlove
30
1.2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.5k
Music & Morning Musume
bryan
46
6.8k
Transcript
Git Good with Git! – Intermediate Eryn Wells (@erynofwales) 1
Tuesday, 2012 August 7
Do you have Git installed? http://git-scm.com 2 Tuesday, 2012 August
7
Clone this repo git clone https://github.com/erynofwales/talks- intermediate-git-demo.git 3 Tuesday, 2012
August 7
Ask questions! @erynofwales
[email protected]
4 Tuesday, 2012 August 7
Review 5 Tuesday, 2012 August 7
What is Git? 6 Tuesday, 2012 August 7
Distributed Content Tracking 7 Tuesday, 2012 August 7
Distributed Content Tracking 8 Tuesday, 2012 August 7
You 9 Tuesday, 2012 August 7
You 9 Tuesday, 2012 August 7
Distributed Content Tracking 10 Tuesday, 2012 August 7
Anatomy of a Git Repo 11 Tuesday, 2012 August 7
1. Working Tree 12 Tuesday, 2012 August 7
2. Stage (a.k.a. the index) 13 Tuesday, 2012 August 7
3. Repository 14 Tuesday, 2012 August 7
Three-Stage Workflow 15 Tuesday, 2012 August 7
1. Make some changes vim emacs TextMate git rm git
mv 16 Tuesday, 2012 August 7
2. Stage your changes git diff git diff --cached git
add 17 Tuesday, 2012 August 7
3. Commit your changes git commit 18 Tuesday, 2012 August
7
Getting Status git diff git status 19 Tuesday, 2012 August
7
Git <3 Graphs 20 Tuesday, 2012 August 7
JavaScript Ruby Python Shell Java PHP C C++ Perl Objective-C
0% 5% 10% 15% 20% 3% 4% 4% 7% 7% 8% 8% 9% 14% 20% Top Languages (C) 2012 GITHUB, FETCHED 2012-08-04 21 Tuesday, 2012 August 7
JavaScript Ruby Python Shell Java PHP C C++ Perl Objective-C
0% 5% 10% 15% 20% 3% 4% 4% 7% 7% 8% 8% 9% 14% 20% Top Languages (C) 2012 GITHUB, FETCHED 2012-08-04 21 Tuesday, 2012 August 7
Directed Acyclic Graphs 22 Tuesday, 2012 August 7
Directed Acyclic Graphs 23 Tuesday, 2012 August 7
A B C E D F G 24 Tuesday, 2012
August 7
Directed Acyclic Graphs 25 Tuesday, 2012 August 7
A B C E D F G 26 Tuesday, 2012
August 7
Directed Acyclic Graphs 27 Tuesday, 2012 August 7
A B C E D F 28 Tuesday, 2012 August
7
A B C E D F 29 Tuesday, 2012 August
7
Peeking Under the Hood 30 Tuesday, 2012 August 7
A B C E D F master foo HEAD 31
Tuesday, 2012 August 7
Hash ALL the things f4b0043b2bc107524d09b1640f9f32c809005474 cd88047e5d30663d7c158a1e6b0d5b2161faad32 32 Tuesday, 2012 August
7
772be54 1b2b4c0 a7b938f 662009f 35ab7c0 3821f34 master foo HEAD 33
Tuesday, 2012 August 7
Branches and tags 34 Tuesday, 2012 August 7
A B C E D F master foo HEAD 35
Tuesday, 2012 August 7
HEAD 36 Tuesday, 2012 August 7
Fun with Graphs 37 Tuesday, 2012 August 7
A B C E D F master foo HEAD 38
Tuesday, 2012 August 7
git commit 39 Tuesday, 2012 August 7
git commit A B C E D F master foo
HEAD A B C E D F master foo HEAD 40 Tuesday, 2012 August 7
git commit git commit -m ‘blah blah blah’ A B
C E D F master foo HEAD A B C E D F master foo HEAD 40 Tuesday, 2012 August 7
git commit git commit -m ‘blah blah blah’ A B
C E D F G master foo HEAD A B C E D F G master foo HEAD 40 Tuesday, 2012 August 7
git commit git commit -m ‘blah blah blah’ A B
C E D F G master foo HEAD A B C E D F G master foo HEAD 40 Tuesday, 2012 August 7
git reset 41 Tuesday, 2012 August 7
git reset A B C E D F G master
foo HEAD A B C E D F G master foo HEAD 42 Tuesday, 2012 August 7
git reset git reset F A B C E D
F G master foo HEAD A B C E D F G master foo HEAD 42 Tuesday, 2012 August 7
git reset git reset F A B C E D
F G master foo HEAD A B C E D F G master foo HEAD 42 Tuesday, 2012 August 7
git checkout 43 Tuesday, 2012 August 7
git checkout A B C E D F G master
foo HEAD A B C E D F G master foo HEAD 44 Tuesday, 2012 August 7
git checkout git checkout master A B C E D
F G master foo HEAD A B C E D F G master foo HEAD 44 Tuesday, 2012 August 7
git checkout git checkout master A B C E D
F G master foo HEAD A B C E D F G master foo HEAD 44 Tuesday, 2012 August 7
git checkout A B C E D F G master
foo HEAD A B C E D F G master foo HEAD 45 Tuesday, 2012 August 7
git checkout git checkout F A B C E D
F G master foo HEAD A B C E D F G master foo HEAD 45 Tuesday, 2012 August 7
git checkout git checkout F A B C E D
F G master foo HEAD A B C E D F G master foo HEAD 45 Tuesday, 2012 August 7
git checkout git checkout F A B C E D
F G master foo HEAD A B C E D F G master foo HEAD DETACHED HEAD 45 Tuesday, 2012 August 7
git branch 46 Tuesday, 2012 August 7
git branch A B C E D F G master
foo HEAD 47 Tuesday, 2012 August 7
git branch A B C E D F G master
foo HEAD git branch bar 47 Tuesday, 2012 August 7
git branch A B C E D F G master
foo bar HEAD 48 Tuesday, 2012 August 7
git merge 49 Tuesday, 2012 August 7
git merge A B C E D F G master
foo HEAD 50 Tuesday, 2012 August 7
git merge A B C E D F G master
foo HEAD git merge foo 50 Tuesday, 2012 August 7
git merge A B C E D H F G
master foo HEAD 51 Tuesday, 2012 August 7
git merge A B C E D H F G
master foo HEAD 52 Tuesday, 2012 August 7
git rebase 53 Tuesday, 2012 August 7
git rebase A B C E D F G master
foo HEAD 54 Tuesday, 2012 August 7
git rebase A B C E D F G master
foo HEAD git rebase master 54 Tuesday, 2012 August 7
git rebase A B C D E' F' G' master
foo HEAD 55 Tuesday, 2012 August 7
Remotes 56 Tuesday, 2012 August 7
What are remotes? 57 Tuesday, 2012 August 7
What are remotes? Any repository that’s not your current one!
57 Tuesday, 2012 August 7
Another directory on your machine /some/repo/path Another server https://github.com/erynofwales/shortcake.git ssh://
[email protected]
:erynofwales/shortcake.git
git://github.com/erynofwales/shortcake.git 58 Tuesday, 2012 August 7
Remote branches origin/master 59 Tuesday, 2012 August 7
How do you make remotes? 60 Tuesday, 2012 August 7
How do you make remotes? With git remote! 60 Tuesday,
2012 August 7
git remote and git remote -v git remote add git
remote rm 61 Tuesday, 2012 August 7
git clone 62 Tuesday, 2012 August 7
A B C E D F master foo HEAD GITHUB
63 Tuesday, 2012 August 7
A B C E D F master foo HEAD GITHUB
A B C E D F master foo HEAD LOCAL 63 Tuesday, 2012 August 7
git fetch 64 Tuesday, 2012 August 7
git fetch A B C E D F G master
foo HEAD 65 Tuesday, 2012 August 7
git fetch A B C E D F G master
foo HEAD git fetch origin foo 65 Tuesday, 2012 August 7
git fetch A B C E D F G H
master foo origin/foo HEAD FETCH_HEAD 66 Tuesday, 2012 August 7
git fetch A B C E D F G H
master foo origin/foo HEAD FETCH_HEAD git merge origin/foo 66 Tuesday, 2012 August 7
git fetch A B C E D F G H
master foo origin/foo HEAD 67 Tuesday, 2012 August 7
git pull 68 Tuesday, 2012 August 7
git pull A B C E D F G master
foo HEAD 69 Tuesday, 2012 August 7
git pull A B C E D F G master
foo HEAD git pull origin foo 69 Tuesday, 2012 August 7
git pull A B C E D F G H
master foo origin/foo HEAD 70 Tuesday, 2012 August 7
git push 71 Tuesday, 2012 August 7
git pull A B C E D F G H
master foo origin/foo HEAD 72 Tuesday, 2012 August 7
git pull git push origin foo A B C E
D F G H master foo origin/foo HEAD 72 Tuesday, 2012 August 7
git pull A B C E D F G H
master foo origin/foo HEAD 73 Tuesday, 2012 August 7
GitHub 74 Tuesday, 2012 August 7
SSH Keys 75 Tuesday, 2012 August 7
Creating Repositories 76 Tuesday, 2012 August 7
Forking 77 Tuesday, 2012 August 7
Pull Requests 78 Tuesday, 2012 August 7
Tweaking Git 79 Tuesday, 2012 August 7
git config and .gitconfig 80 Tuesday, 2012 August 7
[user] ! name = Eryn Wells ! email =
[email protected]
[core] editor = vim quotepath = false [color] ui = auto [merge] tool = vimdiff [alias] st = status co = checkout ci = commit br = branch lg = log --graph --pretty=format:'%Cred%h%Creset - %C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative push = push -u [ui] ! color = true [mergetool] ! keepBackup = true 81 Tuesday, 2012 August 7
Personal stuff git config user.name “Your Name” git config user.email
“
[email protected]
” 82 Tuesday, 2012 August 7
Aliases git config --set alias.[name] “big long command” 83 Tuesday,
2012 August 7
Aliases git config alias.st status git config alias.br branch 83
Tuesday, 2012 August 7
Aliases git config alias.co checkout git config alias.ci commit 83
Tuesday, 2012 August 7
Aliases git config alias.lg “log --graph --pretty=format:'%Cred%h %Creset -%C(yellow)%d%Creset %s
%Cgreen(%cr) %C(bold blue)< %an>%Creset' --abbrev-commit --date=relative” 83 Tuesday, 2012 August 7
.gitignore 84 Tuesday, 2012 August 7
*.log *.pot *.pyc local_settings.py 85 Tuesday, 2012 August 7
# Xcode build/* *.pbxuser !default.pbxuser *.mode1v3 !default.mode1v3 *.mode2v3 !default.mode2v3 *.perspectivev3
!default.perspectivev3 *.xcworkspace !default.xcworkspace xcuserdata profile *.moved-aside 86 Tuesday, 2012 August 7
Questions? 87 Tuesday, 2012 August 7