我們的小型團隊目前採用GitHub Workflow,code放在GitHub上,每個project只有一個repository,branch分兩種:master branch用來做deployment,feature branch用來做開發。開發流程如下:
- 開發者用feature branch寫code,寫完發pull request,再找人做code review。
- 若需要改code,用
git commit --amend
修改,再用git push --force
覆寫之前發的pull request。 - 程式merge到master branch之後,先deploy到staging,驗證完後上production。
幾個問題:
- 大家的branch,生命周期都很短嗎?有些feature branch想說以後還有機會用到,捨不得刪。(根據GitHub Workflow,branch是輕量的,連修bug都開新branch;在GitHub介面merge PR之後,它還貼心提醒你可以放心刪除branch了。)
- 刪掉的branch,以後可以再叫回來用、或開同名的新branch嗎?
- 大家對於branch的命名,有沒有遵循甚麼原則?目前我們就是隨意取兩三個英文單字,用減號連起來。
- 我們用
git commit --amend
和git push --force
覆寫尚未merge的branch,以免code review過程產生一堆commit,這種做法會不會有問題?(我們是看了一篇國外的文章 “Why and how to correctly amend GitHub pull requests” 之後,決定採用這種方式的。)