Slide 1

Slide 1 text

Using Git hosting 徐赫謙

Slide 2

Slide 2 text

Choices of Git hosting • Github - http://github.com • BitBucket - http://bitbucket.org

Slide 3

Slide 3 text

Benefits of Git hosting • ⼈人員管控容易 - 減少管理成本 • 有眾多的 Services - 可以做到 push / pull 狀態監控、搭配⾃自動化 unit testing … 等 • ⽅方便整合 Project Management System - 可以搭配票號整理 (Ticket number) • 可以輕易處理協同開發 - SSH based 的 Git server 很難處理這⼀一塊 (即便是 Gitosis / Gitolite 也⼀一樣) • 有提供 Code Review 功能與 Branch merge 管控 - 避免產品在上線 之前就炸爛給你看 • 與部署⼯工具搭配良好 - 尤其是 Rails 的

Slide 4

Slide 4 text

Benefits of DIY • 免費 (不過時間成本都耗在上⾯面了)

Slide 5

Slide 5 text

Plans of Github

Slide 6

Slide 6 text

Plans of Github • Github 以 Private 專案數量進⾏行收費 • 專案數⼩小於等於 5 ,不管多少開發者,收你⼀一個 ⽉月七鎂 • 適合多開發者、專案數較少的團隊 • 注意:Private repo 是不會被別⼈人看到的

Slide 7

Slide 7 text

Plans of BitBucket

Slide 8

Slide 8 text

Plans of BitBucket • BitBucket 以開發⼈人數進⾏行收費 • 開發⼈人數⼩小於等於 10 ,不管多少 Private repo, 收你⼀一個⽉月⼗十鎂 • 適合少開發者、專案數較多的團隊 • 注意:但是有⽐比 Github 難⽤用⼀一點

Slide 9

Slide 9 text

How to use? • Commit Tree - 可以很清楚、簡單看到誰送了這條 commit 、 commit 內容、在 哪個 branch ,然後可以針對 commit 內某段程式碼進⾏行討論與 Code Review • Access management - 就是使⽤用者管理 • Branch management - 管理 Branch ,可以細到管理誰可以存取哪⼀一個 branch • Pull Request <= The most important • Service Hooks <= Cool things • Issues Tracking <= 不過建議使⽤用 Redmine • Wiki <= 不過建議在 Redmine 上⽤用 • HipChat <= 把 Branch update 的 E-mail 通知搬到 HipChat 上,更好⽤用

Slide 10

Slide 10 text

Code Review • 避免程式碼爆掉的⼀一種⼿手段 • 帶領新⼿手開發者⽤用的⼀一個好⽅方式 • 別⼈人上傳的程式碼需要被 Review ,可直接討論

Slide 11

Slide 11 text

Pull Request • 避免程式碼爆掉的⼀一種⼿手段 • 在程式碼準備從 develop merge 到 master 之前 先擋下來看⼀一看,討論該修改的部分後再允許進 ⾏行 merge • 適合搭配 Git flow 來開發 • 參考: http://ihower.tw/blog/archives/5140

Slide 12

Slide 12 text

Service Hooks • 搭配 Service Hooks 可以達到 服務整合的能⼒力 • 這部分 Github ⽐比較多 … • 最常⾒見的⽤用途是 push 上去後 ⾃自動進⾏行測試、通知 … 等等

Slide 13

Slide 13 text

Deploy example (using Rails) 1. git push commit to develop branch 2. send pull request from develop to master 3. agree and merge 4. execute “cap production deploy” on local terminal 5. done