$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Learn Git
Search
Lin Zhang
May 06, 2013
Programming
0
130
Learn Git
Git introduction, commands, tips and Github.
Lin Zhang
May 06, 2013
Tweet
Share
Other Decks in Programming
See All in Programming
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
38
26k
Socio-Technical Evolution: Growing an Architecture and Its Organization for Fast Flow
cer
PRO
0
370
認証・認可の基本を学ぼう前編
kouyuume
0
250
生成AIを利用するだけでなく、投資できる組織へ
pospome
2
350
これならできる!個人開発のすゝめ
tinykitten
PRO
0
110
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
350
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
190
【Streamlit x Snowflake】データ基盤からアプリ開発・AI活用まで、すべてをSnowflake内で実現
ayumu_yamaguchi
1
120
TestingOsaka6_Ozono
o3
0
160
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
0
350
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
230
ゲームの物理 剛体編
fadis
0
350
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Building Flexible Design Systems
yeseniaperezcruz
330
39k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Documentation Writing (for coders)
carmenintech
77
5.2k
GraphQLとの向き合い方2022年版
quramy
50
14k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Building Applications with DynamoDB
mza
96
6.8k
Speed Design
sergeychernyshev
33
1.4k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
A Tale of Four Properties
chriscoyier
162
23k
Transcript
Learn Git Lin Zhang - @marshluca 2013.5.4 13年5月4⽇日星期六
Agenda • Git Introduction • Git Commands • Git Tips
• Github 13年5月4⽇日星期六
Git Introduction • Distributed Version Control System • Linux Torvalds
created for Linux Kernel • 2005.4 released 13年5月4⽇日星期六
谁在⽤用Git 13年5月4⽇日星期六
My Version Control System • 2009 Subversion (co, ci, up)
• 2011 Git (repo on private server) • 2012 Github, Bitbucket (pull request) 13年5月4⽇日星期六
Subversion-Style Workflow 13年5月4⽇日星期六
Integration Manager Workflow 13年5月4⽇日星期六
13年5月4⽇日星期六
脱离SVN苦海 git svn clone -‐-‐stdlayout -‐-‐no-‐metadata \ -‐A users.txt
svn://hostname/path dest_dir-‐tmp http://stackoverflow.com/questions/79165/how-‐to-‐migrate-‐svn-‐ with-‐history-‐to-‐a-‐new-‐git-‐repository 13年5月4⽇日星期六
完全离线开发 13年5月4⽇日星期六
四种状态 13年5月4⽇日星期六
Git Commands 13年5月4⽇日星期六
初试⽜牛⼑刀 • mkdir -p repo && cd repo • git
init • touch README • git add README • git status • git commit -m ‘First Commit’ 13年5月4⽇日星期六
分⽀支合并 • git branch my-branch • git checkout my-branch •
git rebase develop • git merge my-branch 13年5月4⽇日星期六
远程交互 • git remote add upstream <git-repo-url> • git fetch
upstream • git pull upstream master • git push origin master 13年5月4⽇日星期六
还有很多... • git mv file • git rm file •
git log • git diff • git reset --hard HEAD • git tag -a v1.0 -m ‘tagging v1.0’ 13年5月4⽇日星期六
Git Tips 13年5月4⽇日星期六
#Tip1 Make Alias In Config 13年5月4⽇日星期六
#Tip2 Manage Remote Branches • git checkout --track origin/branch •
git branch -D local-branch • git push origin local-branch:remote-branch • git push origin :remote-branch 13年5月4⽇日星期六
#Tip3 Amend on commit • with reset • git reset
HEAD~ • update • git commit -am ‘some message’ • with amend • update • git commit -a --amend 13年5月4⽇日星期六
#Tip4 Stash Local Changes Before Merge/Patch • git stash •
git stash save ‘your message’ • git stash list • git stash pop • git stash apply stash@{0} • git stash drop stash@{0} • git stash clear 13年5月4⽇日星期六
#Tip5 pick existed commits git cherry-pick master~3 git cherry-pick master~4
master~2 13年5月4⽇日星期六
#Tip6 Push之前可以做的事 • git reset HEAD~2 • --soft • --hard
• git amend -a --amend • git rebase -i HEAD~3 13年5月4⽇日星期六
#Tip7 Merge with --no-ff fast-forward no fast-forward 13年5月4⽇日星期六
#Tip8 pull with rebase 13年5月4⽇日星期六
D---E master / A---B---C---F origin/master D--------E / \ A---B---C---F----G master,
origin/master git pull origin master A---B---C---F---D'---E' master, origin/master git pull --rebase origin master 13年5月4⽇日星期六
#Tip9 Recover your changes • git revert HEAD~ • git
revert HEAD~1 --no-edit --mainline 2 13年5月4⽇日星期六
#Tip10 冲突了怎么办? • 导致冲突的元凶 merge, patch • 导致冲突的直接命令 • merge,
pull, rebase, cherry-pick 13年5月4⽇日星期六
冲突类型及解决 • 逻辑冲突 • auto merged/patched • ⽂文件树冲突 • git
mergetool • 内容冲突 • merge/patch • rebase 13年5月4⽇日星期六
什么是⼈人⾁肉合并 >.< • 干掉7个>,< • 卷⼟土重来 • git reset --hard
HEAD • git merge --abort • git rebase --abort 13年5月4⽇日星期六
如何避免⼤大⾯面积冲突 13年5月4⽇日星期六
Commit Guidelines • Commit related changes • Commit small and
often • Dont commit half-done work • Test code before commit • Write good commit message 13年5月4⽇日星期六
Branch Guidelines • Keep master branch always deployable • Develop
features on new local branches • Stash you local changes when switch to another branch 13年5月4⽇日星期六
Merge Guidelines • Merge more often and earyly • Merge
with rebase • Test code before merge 13年5月4⽇日星期六
Rebase Guidelines • Never rebase your master branch • Never
rebase a published branch • Rebase your feature branches 13年5月4⽇日星期六
Social Coding on Github 13年5月4⽇日星期六
Follow && Watch 13年5月4⽇日星期六
Repositories 13年5月4⽇日星期六
Fork, Pull Request 13年5月4⽇日星期六
Github Issues Talk is cheap, show me the code! 13年5月4⽇日星期六
Github Pages 13年5月4⽇日星期六
Recommend tools 13年5月4⽇日星期六
Gitx 13年5月4⽇日星期六
tig 13年5月4⽇日星期六
git flow 13年5月4⽇日星期六
feature, release, hotfix • git flow init -d • git
flow feature start feature-x • git flow feature rebase • git flow feature finish feature-x 13年5月4⽇日星期六
References • http://progit.org • http://book.git-scm.com • http://gitref.org • http://thkoch2001.github.io/whygitisbetter/ •
http://ihower.tw/blog/archives/category/git 13年5月4⽇日星期六
Thanks ! Q/A 13年5月4⽇日星期六