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
Learning Git
Search
Rob Dumas
October 16, 2012
Technology
5.1k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Learning Git
From a talk I gave to the Chicagoland Library Drupal Group.
Rob Dumas
October 16, 2012
More Decks by Rob Dumas
See All by Rob Dumas
Git in 5 Minutes
bitsandbooks
9
2k
Other Decks in Technology
See All in Technology
5分でわかるDuckDB Quack
chanyou0311
4
270
小さいから、全部わかる。— 常駐AI "xangi" のすすめ
sugupoko
0
180
アラート調査向けAIエージェントの本番導入とその後/AI Agents for Alert Investigation: Production Deployment and After
taddy_919
1
270
感情と身体を置き去りにしない、エンジニアの生きのこり方 ──いまから、ここから「自分の状態」を扱うという選択
saorimurooka
0
410
“詰む”前に仕組みを作れ 〜技術の波に溺れないためのキャッチアップ術〜
takasyou
7
4.5k
デジタル・デザイン:次の50年を描く「進化する青写真」
y150saya
0
450
コミュニティの有益性 ~JAWS Days 2026 での体験を通して~ / The Benefits of a Community ~Through My Experience at JAWS Days 2026~
seike460
PRO
0
310
「勝手に広まる」人気 AI エージェントを爆速で作ろう!(AWS Summit Japan 2026講演資料)
minorun365
PRO
10
2.7k
背中から、背中へ /paying forward to community
naitosatoshi
0
170
Amazon Redshift zero-ETL 統合を活用した軽量なマルチプロダクトデータ可視化基盤 / Lightweight Multi-Product Data Visualization with Amazon Redshift Zero-ETL
kaminashi
0
120
WebGIS AI Agentの紹介
_shimizu
0
600
テスト設計の本質を改めて考えてみる~生成AIを活用する時代だからこそ、作ったテストの説明性を高めよう~
yamasaki696
1
190
Featured
See All Featured
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
740
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
570
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
Why Our Code Smells
bkeepers
PRO
340
58k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
250
Designing Powerful Visuals for Engaging Learning
tmiket
1
430
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
170
Automating Front-end Workflow
addyosmani
1370
210k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
180
Become a Pro
speakerdeck
PRO
31
6k
Transcript
version control
rob dumas chicago public library @stray
✓why version control? ✓installing git ✓your first repository ✓branching &
merging in this lecture:
r2d.to/gitstart links
we’re all victims of data loss; some of us just
don’t know it…yet.
BACKUPS ARE REALLY F**KING IMPORTANT photo credit: alexander muse (flic.kr/p/noL2K)
snapshots
snapshots
1.0 2.0 3.0 4.0 5.0 developers work in teams and
need to track the changes to their code over time
version control
version control change joel on software: “distributed version contol is
here to say, baby” (r2d.to/QJw8lr)
✓ what files have changed ✓ who made those changes
✓ when the changes were made ✓ how those changed files differ ✓ why they were changed (hopefully) accountability
wikipedia record of changes to articles over time
git-scm.com
what’s so GREAT about git?
✓ no cost (“free as in beer”) ✓ gpl version
2 (“free as in speech”) gnu.org/licenses/gpl-2.0.html git is free & open source
✓ built for any size group ✓ encourages non-linear development
✓ complete local repositories git is local & distributed
✓ “deltas” for efficiency (binary files stored whole) ✓ cryptographically-authenticated
history using SHA1 hashes ✓ commits are atomic git is fast & secure
git is stable & popular
installing git git-scm.com/downloads sudo apt-get install git brew install git
(or yum) (requires xcode & homebrew)
git-scm.com/downloads/guis baked right in other git gui apps textmate bundle
netbeans xcode and more!
for windows users peepcode.com/products/ meet-the-command-line
is git installed? $ git -‐-‐version git version 1.7.12.1
~/.gitconfig $ git config -‐-‐global user.name "Joe User" $
git config -‐-‐global user.email "
[email protected]
"
basic workflow create/ clone repository make changes commit changes stage
changes 1 2 3 4
photo credit: muy yum (flic.kr/p/7ByV6Y) stage work area git
git basics
creating a repository $ mkdir myproject $ cd myproject $
git init Initialized empty Git repository in ~/myproject/.git/
myproject/.git/ don’t touch these files!
cloning a repository $ git clone REPO_LOCATION Cloning into 'myproject'...
remote: Counting objects: 36, done. remote: Compressing objects: 100% (33/33), done. remote: Total 36 (delta 10), reused 29 (delta 3) Receiving objects: 100% (36/36), 7.13 KiB, done. Resolving deltas: 100% (10/10), done. folder or URL
repo status (“clean”) $ git status # On branch master
nothing to commit (working directory clean)
repo status (“dirty”) $ git status # On branch master
# Untracked files: # (use "git add <file>..." to include in what will be committed) # # myfile.html nothing added to commit but untracked files present (use "git add" to track)
adding files $ git add myfile.html you have to add
the files you’ve changed each time you commit!
repo status (staged) $ git status # On branch master
# Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: myfile.html #
committing changes $ git commit -‐m "Added new file,
myfile.html, to repo." [master (root-‐commit) b80da17] Added new file, myfile.html, to repo. 0 files changed create mode 100644 myfile.html
other commands $ git log $ git diff COMMIT_HASH $
git rm $ git mv
.gitignore nuclear-‐launch-‐codes.txt source/* *.temp put files, folders and patterns in
this file to tell git to ignore them.
branching & merging
master
master dev
master dev
creating a branch $ git branch awesome $ git checkout
awesome Switched to branch 'awesome'
merging a branch $ git checkout master Switched to branch
'master' $ git merge awesome Updating 5bed678..217f575 Fast-‐forward myfile.txt | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 myfile.txt
the ‘stache
the stash $ git stash $ git stash apply $
git stash list $ git stash drop STASH_ID
v1.0 master dev tagging
tagging $ git tag -‐a v1.0 -‐m "Product release"
$ git tag -‐a ronburgundy -‐m "Brick killed a guy with a trident."
distributed git
push & pull $ git push origin master $ git
pull origin master
git on the server ✓your own git server ✓github
github image source: the octodex (octodex.github.com)
further reading
get started with git alistapart.com/articles/get-started-with-git
Version Control with Git 2nd. Edition by Loeliger & McCullough
© 2012 O’Reilly Media ISBN 978-1-4493-1638-9 r2d.to/oreillygitbook
r2d.to/gitstart links
thank you!