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 flow 與團隊合作
Search
Bo-Yi Wu
April 28, 2016
Technology
72
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Git flow 與團隊合作
Git Flow 進階操作與團隊合作
Bo-Yi Wu
April 28, 2016
More Decks by Bo-Yi Wu
See All by Bo-Yi Wu
從觀望到全公司落地:AI Agentic Coding 導入實戰 — 流程整合與安全治理
appleboy
1
2.3k
打造你的 AI 工作流:Agent Skill + MCP 實戰工作坊
appleboy
0
1.7k
從開發到部署全都交給 AI:實作 AI 驅動的自動化流程
appleboy
1
370
AI 不只幫你寫 Code: 當專案從 300 暴增到 1500, 我們如何撐住 DevOps
appleboy
1
500
Agent Skill 是什麼?對軟體產業帶來的變化
appleboy
0
3.6k
用 Claude Code + GitHub Copilot Review 打造 AI 驅動的開發流程
appleboy
0
2.4k
戰略轉變:從建構 AI 代理人到發展可擴展的技能生態系統
appleboy
0
360
The Smart Choice for Command-Line Image Resizing
appleboy
0
78
SSH for GitHub Actions
appleboy
0
500
Other Decks in Technology
See All in Technology
現場で役立つ技術負債の効果的な返済方法
masuda220
PRO
9
4.4k
絵ではじめるKubernetesセキュリティ
aoi1
4
660
登壇の自信を奪う3匹のオバケ / 3 Ghosts That Rob You of Your Confidence in Public Speaking
pauli
9
990
AI時代、データエンジニアが一番おもろい
genshun9
0
660
Genieを崇めよ
kameitomohiro
0
160
OpenTelemetry eBPF Instrumentationの舞台裏 / Behind the Scenes of OpenTelemetry eBPF Instrumentation
ymotongpoo
4
1.3k
【技術的負債conf】事業成長に伴う技術的負債の説明責任とAIによるモニタリング、認知的負債について
i35_267
3
1.7k
映像変換サーバーなしで端末内でHLSを生成してライブ配信
hikarusato
0
120
Claude Code本って、 読む必要あるの?
oikon48
2
470
SREは、MCPとAutopilotをこう使え!
kazumax55
3
880
What the customer really needed
kawaguti
PRO
3
210
エージェントはローカル、検証はMicroVM — Lambda MicroVMsでつくるServerless CI
fujioka6789
3
240
Featured
See All Featured
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
610
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
660
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
420
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
810
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.8k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
280
Exploring anti-patterns in Rails
aemeredith
4
510
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
940
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
530
Six Lessons from altMBA
skipperchong
29
4.5k
Transcript
團隊合作 Git tips and flow Bo-Yi Wu 2016.04.21 1
關於我 http://blog.wu-boy.com/ https://github.com/appleboy https://www.facebook.com/appleboy46 2
⼤綱 • Git ⼯作流程介紹 • Git 使⽤法則及⼩技巧 3
先來看看團隊開發流程 4
5 1.Develo p 2. Pull Request 3. Code Review 4.
Deploy
Git flow 早先 Git 開發模式 6
7
Main Branch • Develop – 最新的開發分⽀ • Master – Production
專屬分⽀ 8
Support branch • Feature – 開發新功能,從 develop 分⽀出來,完成後 merge 回
develop • Release – 準備 release 版本,從 develop 分⽀出來,只修 bugs, 完成後 merge 回 develop 和 master • Hotfix – 重⼤ bugs 修復,從 master 分⽀出來,完成後 Merge 回 develop 和 master 9
Git flow 詳細流程可以參考 https://goo.gl/XIThFY 10
有沒有覺得好多 Branch 搞得好複雜 11
Create branch • Master • Develop • Feature Merge Branch
• Master • Develop Code Conflict • Master • Develop 該從哪邊拉 branch 要 merge 回哪個 branch 要解決多次相同 Conflict 12
對團隊來說 • 開發者不易瞭解整個 Git flow • 開發者不知道從哪個 Branch 繼續開發 •
開發完成後該 merge 回 master 或 develop? • 需要解決多次衝突 (Merge 回多個分⽀) 13
PM: 那個新功能沒上 Production RD: 抱歉忘記 Merge 回 Master (回去檢查看看是不是忘記 Merge?)
14
搞得好複雜 技術主管管理不易 15
Github Flow 16
只有⼀個 Branch 叫 Master 不需要知道其他 Branch 作⽤ 因為最終都會合併到 Master 分⽀
17
Github 流程 • 開發都從 master branch 開分⽀ • 隨時都可以發 Pull
Request • Review 過的 Pull Request 才可以 Merge • 隨時都可以發佈新版本 18
Github Flow 優勢 • 只需要維護 Master 分⽀ – 禁⽌任何開發者使⽤ git
push origin master –f – 請將 master 設定無法使⽤ –f 覆蓋 • 開發者容易理解及學習 • 管理者⽅便 Code Review 及發佈新版 – 不⽤再擔⼼少 Merge branch – 不⽤再擔⼼開發⼈員玩壞 branch 19
20
21 1.Develop 2. Pull Request 3. Code Review 4. Deploy
Github Flow 快速上版
該如何制訂 Production 編號 請善⽤ git tag 來 release production 22
上 Hotfix 版本 Tag 上 production • git checkout –b
hotfix 1.0.0 • git commit –a –m ‘xxxx’ • git tag –a 1.0.1 –m ‘1.0.1’ • git checkout master • git cherry-pick commit-id Master 上 production • git commit –a –m ‘xxxx’ • git tag –a 1.0.1 –m ‘1.0.1’ 23
24 Tag 1.0.0 Patch-1 Tag 1.0.1 Patch-1 Commit C Commit
A Commit B Tag 上 production git cherry-pick patch-1
團隊 Git 使⽤法則 25
Git commit • 標題不要過長 (請勿超過 50 字元) • 標題請務必連結上 Issue
Track System – jira, github, redmine… 等 • 內容請補上 What, Why and How – 或者是在 Issue Track 上描述清楚 • 不要紀錄無關緊要的 commit – 像是 fix typo, update readme … 等 26
27 Assign Issue Create Branch Fix issue Code Review Testing
為什麼要 Code Review • 降低 Production 出包機率 • 可以學習 coder
為什麼要這樣寫 • 可以學習 reviewer 會怎麼建議 • 團隊素質⽔準提⾼ 28
29 Fix Issue Code Review Fix Issue Code Review Fix
issue git commit –a –m ‘fix typo’ git commit –a –m ‘update readme’ git commit –a –m ‘fix typo’
Git log • git commit –a –m ‘fix typo 1’
• git commit –a –m ‘fix typo 2’ • git commit –a –m ‘fix typo 3’ • git commit –a –m ‘fix typo 4’ • git commit –a –m ‘fix typo 5’ • git commit –a –m ‘fix typo 6’ 30
31 https://github.com/h5bp/Front-end-Developer-Interview-Questions/pull/241/ commits
Merge 到 Master 分⽀前 請務必 squash your commit. 32
Two way to squash your commit • Git reset (⼀般⽤法)
• Git rebase (進階⽤法) 33
git reset • git reset --soft HEAD^ – 合併多個 commit
– 修改上⼀個 commit message • git reset --hard HEAD^ (⼩⼼使⽤) – 回復到上⼀個 commit 狀態 – 這次修改,但是尚未 commit 的更動會消失 34
Demo 35
git rebase –i commitID -i 互動模式 36
37
38
整理完 commit log 後 請把 master merge 到您的 branch 39
Two way to merge master • git merge master •
git rebase master 40
41 git log --date-order
42 git log --topo-order
43
好處是確保你的 commit 保持在 Log 最上⾯ 之後追 commit log 會比較好找
44
更新⽬前 branch 到最新 git pull --rebase origin master 45
Demo 46
Git diff 好⼯具 diff-so-fancy https://github.com/so-fancy/diff-so-fancy 47
48
Git tips 49
救回已經 commit 的程式碼 git reflog 50
51
Any Question? 52