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
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
ぼくの開発環境2026
yuzneri
0
160
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
180
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
今から始めるClaude Code超入門
448jp
8
8.6k
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
370
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
170
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
150
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
640
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
250
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
180
Patterns of Patterns
denyspoltorak
0
1.4k
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.6k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
410
Are puppies a ranking factor?
jonoalderson
1
2.7k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
77
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
240
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
64
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
The Cult of Friendly URLs
andyhume
79
6.8k
The Language of Interfaces
destraynor
162
26k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
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⽇日星期六