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
Dead-Simple Version Control for your Team
Search
Matthew Reidsma
July 25, 2012
How-to & DIY
3.5k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Dead-Simple Version Control for your Team
How we use Git and Github to build stuff at Grand Valley State University Libraries
Matthew Reidsma
July 25, 2012
More Decks by Matthew Reidsma
See All by Matthew Reidsma
More Than Usable
matthewreidsma
0
500
Everyone is a Distance Learner
matthewreidsma
1
470
The UX of Scholarship
matthewreidsma
0
350
Good for Whom? Harvard University Libraries
matthewreidsma
0
390
More than Usable: Library Services for Humans
matthewreidsma
2
60k
Data to Action: A UX Libs Workshop
matthewreidsma
0
110
Customizing Vendor Tools for Better Customer Service
matthewreidsma
1
190
TLN: Responsive Web Design for Libraries
matthewreidsma
1
270
cssMaker
matthewreidsma
1
190
Other Decks in How-to & DIY
See All in How-to & DIY
献立を支える技術
godan
1
120
JAWS-UG鹿児島2.0 reboot - JAWS-UG/AWS Communitiesのご紹介
awsjcpm
0
130
Trying "Vibe No-code/Low-code" with MCP #noderedjp
n0bisuke2
0
170
私の ダイエット トレーナー AIさんから 自己紹介が あります
itsukiisamu
0
160
ミニ四駆でト技会ミニカーバトルに参戦?
covao
0
100
5年間ぐらい、 スプリントレトロスペクティブは、 「+/Δ」しかしてないので、 あらためて良いのか悪いか考えてみる / Doing Plus Delta for about five years
camel_404
1
500
餃子コミュニティの活性化/TechGYOZA
nishiuma
2
410
私がカンファレンスのプロポーザルを書くときに考えていること
kotomin_m
1
800
ライブ感を生む 巻き込み型スライドの作り方/Create your slide like a heavy metal concert
ikuodanaka
5
1.7k
2026年、書籍をちゃんと読むぞ👊 〜約3万円分の書籍を積読にしないためにやること〜
subroh0508
5
910
LLMを「機能」として組み込む技術:「Figma to はてなCMS」におけるプロンプトエンジニアリングからAIエージェント構築にわたる精度向上の軌跡
nanimonodemonai
0
600
ときメモは 運営が30年かけて “実プレイ”していた
mzryuka
0
140
Featured
See All Featured
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
370
Faster Mobile Websites
deanohume
310
32k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
470
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
The Curious Case for Waylosing
cassininazir
1
500
Utilizing Notion as your number one productivity tool
mfonobong
4
580
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
280
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Transcript
DEAD-SIMPLE VERSION CONTROL FOR YOUR TEAM GIT WITH MATTHEW REIDSMA
GRAND VALLEY STATE UNIVERSITY
WHO DOESN’T USE VERSION CONTROL?
VERSION CONTROL WHO?
OH BOY.
WHY YOU NEED VERSION CONTROL
GIT
GIT
WHY GIT IS AWESOME
HOW GIT WORKS
WORKING DIRECTORY
WORKING DIRECTORY INDEX (STAGING AREA) add
WORKING DIRECTORY INDEX (STAGING AREA) LOCAL REPOSITORY add commit
WORKING DIRECTORY INDEX (STAGING AREA) LOCAL REPOSITORY REMOTE REPOSITORY add
commit push
My-Computer: mreidsma$ _
My-Computer: mreidsma$ _ SCARY
None
$cd MyAwesomeApp
$cd MyAwesomeApp $touch index.html
$cd MyAwesomeApp $git init Initialized empty Git repository in /MyAwesomeApp/.git/
$touch index.html
$cd MyAwesomeApp $git init Initialized empty Git repository in /MyAwesomeApp/.git/
$git add . $touch index.html
$cd MyAwesomeApp $git init Initialized empty Git repository in /MyAwesomeApp/.git/
$git add . $git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # #! new file: index.html # $touch index.html
None
$git commit -m “First commit” [master (root-commit) 7ce2952] First commit
1 file changed, 2 insertions(+) create mode 100644 index.html
$git commit -m “First commit” $git remote add origin
[email protected]
:gvsulib/
awesomeapp.git [master (root-commit) 7ce2952] First commit 1 file changed, 2 insertions(+) create mode 100644 index.html
$git commit -m “First commit” $git remote add origin
[email protected]
:gvsulib/
awesomeapp.git [master (root-commit) 7ce2952] First commit 1 file changed, 2 insertions(+) create mode 100644 index.html $git push origin master
None
BRANCHING
[master]
[master]
[master]
[master]
[master]
[master] [branch]
[master] [branch]
[master] [branch] merge
BRANCHES ARE CHEAP
None
$cd MyAwesomeApp
$cd MyAwesomeApp $git branch newFeature
$cd MyAwesomeApp $git checkout newFeature $git branch newFeature Switched to
branch ‘newFeature’
$cd MyAwesomeApp $git checkout newFeature $git branch newFeature <!-- AWESOME
FEATURE ADDING ACTION HERE --> Switched to branch ‘newFeature’
$cd MyAwesomeApp $git checkout newFeature $git add . $git branch
newFeature <!-- AWESOME FEATURE ADDING ACTION HERE --> Switched to branch ‘newFeature’
$cd MyAwesomeApp $git checkout newFeature $git add . $git status
# On branch newFeature # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # #! modified: index.html # $git branch newFeature <!-- AWESOME FEATURE ADDING ACTION HERE --> Switched to branch ‘newFeature’
None
$git commit -m “Best feature ever” [newFeature 18q7d58] Best feature
ever 1 file changed, 1 insertions(+)
$git commit -m “Best feature ever” $git checkout master [newFeature
18q7d58] Best feature ever 1 file changed, 1 insertions(+) Switched to branch ‘master’
$git commit -m “Best feature ever” $git checkout master [newFeature
18q7d58] Best feature ever 1 file changed, 1 insertions(+) $git merge newFeature Switched to branch ‘master’ Updating 7ce2952..18q7d58 index.html | 1 + 1 file changed, 1 insertion(+)
BUT YOU CHANGED THE FILE
WORKFLOWS
LOCAL
LOCAL REMOTE
LOCAL LOCAL
LOCAL REMOTE LOCAL
LOCAL LOCAL REMOTE WEB SERVER
LOCAL LOCAL REMOTE WEB SERVER
HOW WE DO IT @ GVSU
None
None
GITHUB
GITHUB WEB SERVER
MASTER IS ALWAYS DEPLOYABLE
None
$ssh
[email protected]
$ssh
[email protected]
$git mkdir MyAwesomeApp
$ssh
[email protected]
$git cd MyAwesomeApp $git mkdir MyAwesomeApp
$ssh
[email protected]
$git cd MyAwesomeApp remote: Counting objects: 1, done.
remote: Compressing objects: 100% (1/1), done. remote: Total 1 (delta 21), reused 1 (delta 14) Unpacking objects: 100% (1/1), done. $git mkdir MyAwesomeApp $git clone https://github.com/gvsulib/ awesomeapp.git Cloning into awesomeapp...
None
$ssh
[email protected]
$ssh
[email protected]
$git cd MyAwesomeApp
$ssh
[email protected]
$git cd MyAwesomeApp $git pull origin master
BUT
None
None
https://gist.github.com/3138516
OTHER FANCY FEATURES
.gitignore
diff
log
filter-branch
stash
reset
RESOURCES John Fink: A Gentle Introduction to Modern Version Control
http://acrl.ala.org/techconnect/?p=1191 Flashbake - automated git for writers http:/bitbucketlabs.net/flashbake Download git http://git-scm.com Git Reference http://gitref.org Git and Github Bootcamp http://help.github.com/articles/set-up-git
None
THANK YOU
[email protected]
@mreidsma http://github.com/mreidsma http://github.com/gvsulib