Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
git
Search
Mindaugas Mozūras
March 21, 2012
Programming
5k
17
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
git
Introduction to Git. A presentation I gave at local user-groups.
Mindaugas Mozūras
March 21, 2012
More Decks by Mindaugas Mozūras
See All by Mindaugas Mozūras
Sustainable Speed
mmozuras
0
680
The Secret
mmozuras
0
380
Am I Still Productive?
mmozuras
0
550
The Three Last Conversations
mmozuras
0
450
Vinted Adventure
mmozuras
0
500
Frequent Releases & Major Changes
mmozuras
1
1.2k
Engineering for Engineering's Sake
mmozuras
1
1.7k
Life Embetterment With Hundreds of Deployments a Day
mmozuras
1
610
How to Build an Open Source Project in 3 Years
mmozuras
2
660
Other Decks in Programming
See All in Programming
ChromeでローカルLLM
ryu1013
0
160
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
ジョジョの世界をXRで再現する
mofurune
0
180
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
28
34k
npm との違いを手がかりにGo の依存管理を理解したい
optim
0
1k
JIS keyboard support in Omarchy
lef237
0
150
[2026-10-09]一枚の布で作らなくてもいい。 信頼性は「パッチワーク」で紡がれる~既存の運用と新しい可能性をつなぎ合わせてきたCREの話~
tosite
0
110
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
200
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
300
Railsバージョンを4倍にした話
optim
0
510
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
160
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
3
710
Featured
See All Featured
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
580
Being A Developer After 40
akosma
92
590k
Typedesign – Prime Four
hannesfritz
42
3.2k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
540
How to make the Groovebox
asonas
2
2.5k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Product Roadmaps are Hard
iamctodd
55
13k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
460
A better future with KSS
kneath
240
18k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
Transcript
git or: how I learned to stop worrying and love
source control
why you should care
Traditional version control systems have deficiencies
Subversion, Perforce, CVS, TFS...
OH, THE PAIN! SLOW TREE CONFLICTS MERGING IS CHALLENGING BRANCHES
ARE JUST COPIES
using svn
using git
is awesome git
It’s distributed! Distributed Version Control System
Every repository is equal.
You can work offline.
Fast as lightning.
add status diff log commit branch git mercurial bazaar
Very efficient. git clone rails - 53 seconds 40mb, 2356
files, 29045 commits
Great branching and merging.
Any workflow you want, you got it...
Shared repository
Blessed repository Linus Torvalds Lieutenants Developers
everyone uses git
14% 29% 55% GitHub SourceForge Google Code CodePlex Total number
of commits 2011.01 - 2011.05
automapper backbone bootstrap cassandra coffeescript couchdb cucumber fluent-nhibernate git jekyll
less linux modernizr mongodb mono nancy ninject node nservicebus rails ravendb reddit
how toinstall
Linux: apt-get install git-core Mac OS X: brew install git
Windows: chocolatey install msysgit
getting started
git config --global user.name ... git config --global user.email ...
git init
master has no special meaning. It’s just a default branch.
git add --all
git commit
189f30b664981e4397625791c8ea3bbb5f2279a3 Commit “name” is a 40-digit SHA
There are four types of objects: tag, commit, tree and
blob.
git remote add origin git@git...
git push origin master
HEAD is a reference to the last commit in the
current branch.
git pull origin master
Basic training complete.
and history branching
git branch name
Branch is a reference to the head of a line
of work.
git checkout name
git merge name
git reset --hard commit
git rebase name
merge is fine, but in a lot of cases, rebase
is better.
git commit --amend
git rebase --interactive
Interactive rebase lets you: reword, edit, squash, fixup, exec, remove
and reorder.
You can change history of remote repository with git push
--force. Be careful!
Rewriting history is fun and useful!
svn git-
git svn clone http://...
git svn rebase ~ svn update
git svn dcommit ~ svn commit
GitHub
The best way to collaborate.
~1.5 million people, ~2.5 million repositories.
Phil Haack, Adam Roben, Paul Betts are GitHubbers
github.com/Haacked/SeeGit GitHub for Windows...?
thoughts closing
blame bisect cherry-pick clean cvsimport describe diff fetch filter-branch grep
request-pull revert svnimport stash submodule tag and more...
progit.org gitready.com gitimmersion.com ontwik.com/category/git-github RESOURCES
https://git.wiki.kernel.org/articles/i/n/t/ Interfaces,_frontends,_and_tools.html TortoiseGit Git Extensions Git Source Control Provider TOOLS
Git != Subversion + Magic
The slogan of Subversion for a while was "CVS done
right". If you start with that kind of slogan, there's nowhere you can go. There is no way to do CVS right. Linus Torvalds
Zach Holman @holman thenounproject.com thanks to:
twitter.com/mmozuras github.com/mmozuras thanks!