Más contenido relacionado
La actualidad más candente (20)
Similar a Git flow 與團隊合作 (20)
Git flow 與團隊合作
- 9. Support branch
• Feature
– 開發新功能,從 develop 分支出來,完成後 merge 回
develop
• Release
– 準備 release 版本,從 develop 分支出來,只修 bugs,
完成後 merge 回 develop 和 master
• Hotfix
– 重大 bugs 修復,從 master 分支出來,完成後 Merge
回 develop 和 master 9
- 12. Create branch
• Master
• Develop
• Feature
Merge Branch
• Master
• Develop
Code Conflict
• Master
• Develop
該從哪邊拉 branch 要 merge 回哪個 branch 要解決多次相同 Conflict
12
- 13. 對團隊來說
• 開發者不易瞭解整個 Git flow
• 開發者不知道從哪個 Branch 繼續開發
• 開發完成後該 merge 回 master 或
develop?
• 需要解決多次衝突 (Merge 回多個分支)
13
- 17. 只有一個 Branch 叫 Master
不需要知道其他 Branch 作用
因為最終都會合併到 Master 分支
17
- 18. Github 流程
• 開發都從 master branch 開分支
• 隨時都可以發 Pull Request
• Review 過的 Pull Request 才可以 Merge
• 隨時都可以發佈新版本
18
- 19. Github Flow 優勢
• 只需要維護 Master 分支
– 禁止任何開發者使用 git push origin master –f
– 請將 master 設定無法使用 –f 覆蓋
• 開發者容易理解及學習
• 管理者方便 Code Review 及發佈新版
– 不用再擔心少 Merge branch
– 不用再擔心開發人員玩壞 branch
19
- 23. 上 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
- 26. Git commit
• 標題不要過長 (請勿超過 50 字元)
• 標題請務必連結上 Issue Track System
– jira, github, redmine… 等
• 內容請補上 What, Why and How
– 或者是在 Issue Track 上描述清楚
• 不要紀錄無關緊要的 commit
– 像是 fix typo, update readme … 等
26
- 28. 為什麼要 Code Review
• 降低 Production 出包機率
• 可以學習 coder 為什麼要這樣寫
• 可以學習 reviewer 會怎麼建議
• 團隊素質水準提高
28
- 30. 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
- 33. Two way to squash your commit
• Git reset (一般用法)
• Git rebase (進階用法)
33
- 34. git reset
• git reset --soft HEAD^
– 合併多個 commit
– 修改上一個 commit message
• git reset --hard HEAD^ (小心使用)
– 回復到上一個 commit 狀態
– 這次修改,但是尚未 commit 的更動會消失
34
- 40. Two way to merge master
• git merge master
• git rebase master
40