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
git, let it flow!
Search
cjies
December 27, 2016
Programming
9
2.2k
git, let it flow!
如何讓多人協作更加輕鬆,版控更加明確。Git flow here you are! 😉
F2E&RGBA 設計 Meetup 十二月號
cjies
December 27, 2016
Tweet
Share
More Decks by cjies
See All by cjies
es module bundling with webpack 2
cjies
1
550
git flow
cjies
0
310
Other Decks in Programming
See All in Programming
React + TextAliveでカッコいいLyric Applicatioinを作ろう!!
tosuri13
0
400
今インフラ技術をイチから学び直すなら
yuhta28
1
140
rails_girls_is_my_gate_to_join_the_ruby_commuinty
maimux2x
0
200
オートマトン学習しろ / Do automata learning
makenowjust
3
130
Method Swizzlingを行うライブラリにおけるマルチモジュール設計
yoshikma
0
120
GenU導入でCDKに初挑戦し、悪戦苦闘した話
hideg
0
170
Amazon BedrockでサーバレスなAIお料理ボットを作成する!!
tosuri13
0
230
How to Break into Reading Open Source
kaspth
2
220
AndroidアプリのUIバリエーションをあの手この手で確認する / Check UI variations of Android apps by various means
tkmnzm
1
180
Why Prism?
kddnewton
4
1.7k
Securify_エンジニア採用資料
3shake
0
100
unique パッケージから学ぶ interning と weak reference @ Asakusa.go#3
karamaru
2
810
Featured
See All Featured
Creatively Recalculating Your Daily Design Routine
revolveconf
215
12k
Fashionably flexible responsive web design (full day workshop)
malarkey
401
65k
Fantastic passwords and where to find them - at NoRuKo
philnash
48
2.8k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
29
2.6k
What's new in Ruby 2.0
geeforr
340
31k
How To Stay Up To Date on Web Technology
chriscoyier
786
250k
From Idea to $5000 a Month in 5 Months
shpigford
379
46k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
45
4.8k
How to Ace a Technical Interview
jacobian
274
23k
Typedesign – Prime Four
hannesfritz
39
2.3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.4k
Faster Mobile Websites
deanohume
304
30k
Transcript
$ git let it flow! CJ 2016/12/27 F2E&RGBA 設計 Meetup
⼗十⼆二⽉月號
CJies Tan front end n00b @ iCHEF cjies.com
what is git?
⛰ git ⼀一開始是為了了 更更好地管理理 Linux 核⼼心⽽而開發的 Linux
連猴⼦子都能懂的Git⼊入⾨門指南 https://backlogtool.com/git-guide/tw/
dropbox git 檢查點 ⼿手動 / ⾃自動上傳 commit 修改記錄錄 檔案為單位 ⼀一⾏行行為單位
內容差異異 別想了了 diff 版本控制 集中式 (dropbox 掛了了就真 GG) 分散式 (每⼀一個⼈人都有完整備份)
gitlab bitbucket github git server(s)
Q&A? 喘氣⼀一下...
團隊開發⼀一般會遇到的問題
各⾃自寫各的,不不知道怎麼整合? 不不⼩小⼼心覆蓋了了別⼈人的東⻄西 豬隊友上傳有問題的程式,就下班了了... 無法確認誰的才是最終版本 ⼤大家被搞得⼀一團亂 GG
None
git flow 其實這才是今天的主題...
a successful git branching model to versioning your source code.
- Vincent Driessen, 2010 http://nvie.com/posts/a-successful-git-branching-model/
commit 點 branch 線 merge ⾯面
single branching master
develop hotfix release feature feature master v1.0 v1.1 v1.2
master & develop develop master • 永遠在 production-ready 狀狀態 •
開發⽤用主線,永遠是最新的狀狀態
feature branch • 從 develop 分⽀支出來來開發新功能 • 完成後合併回 develop •
可多個 features 並⾏行行 • ⽤用完即棄 feature 1 develop feature 2
release branch • develop 發佈到 master 的記錄錄 • 過程中只修 bugs
• 完成後合併進 master & develop • ⽤用版號命名 release develop master
hotfix branch • 對 master 做緊急修正 • 過程中⼀一樣只修 bugs •
完成後合併進 master & develop • ⽤用完即棄 hotfix master develop
pros of git flow
更更加了了解專案整體、各⽀支線的發展狀狀況 ⾃自⼰己的⽀支線⾃自⼰己開,分⼯工更更加明確 可以更更加容易易抓到戰犯 bug pick what you want
Q&A? 繼續喘氣⼀一下...
question 1: 我需要 git flow 嗎? (真的有幫到我?)
git flow 好像很複雜耶... @@ (有更更簡單的嗎?) question 2:
how to use git flow? https://speakerdeck.com/cjies/git-flow?slide=16 http://danielkummer.github.io/git-flow-cheatsheet/ question 3:
pull requests 除了了 git flow 既定流程外,還有⼀一個更更重要的...
what is pull requests? feature develop 利利⽤用 pull requests 確認是否能進⾏行行
merge ?
• 描述做了了什什麼事情及⽬目的 • 進⾏行行討論 & code reviews • 清楚知道哪個部分有被更更動 •
留留下記錄錄,⽅方便便之後重新翻閱 (merge requests in gitlab)
pull requests @ iCHEF • 固定 PULL_REQUEST_TEMPLATE • 進⾏行行 code
reviews • linter & test pass • 如有界⾯面更更動需提供截圖 • 不不能擺著超過⼀一個禮拜
⾄至少獲得2個 approve pull requests @ iCHEF
summary • git flow 只是⼀一種 branching strategy • 團隊合作更更有效率,分⼯工更更加明確 •
規則是死的 ⼈人是活的,尋找團隊適合的 workflow • 溝通最重要...
references • http://nvie.com/posts/a-successful-git-branching-model • https://ihower.tw/blog/archives/5140 • https://yangsu.github.io/pull-request-tutorial • https://about.gitlab.com/2014/09/29/gitlab-flow
$ exit thanks for your listening