我的日常 git 操作

將日常的 git 操作記錄下來作為團隊的開發規範。

開發

遵循 Git flow

  1. 務必在個人開發環境安裝 git flow
  2. 可依據個人習慣使用 command 或是 sourcetree 進行 git 各項操作
  3. Git flow 的說明可參考 Git Flow 是什麼?為什麼需要這種東西?
  4. 各項操作參照 git-flow cheatsheet 文章內的方式進行

工作規範

Checkout

  1. 工作的 branch 一定從 develop 切(checkout)出 feature branch
  2. 每一 feature branch 只開發最小單位功能,以避免與 develop 產生過大的差異,導致 merge 的難度提高

Commit

  1. 第一行為必填的標題(Subject),需重點說明,建議少於 50 字元
  2. 空一行後可撰寫詳細描述(Body),為選填,僅摘要描述
  3. Commit 寫法可參考 Write good git commit message
  4. 僅可能使用英文(Google translator 是好幫手 :thumbsup: )

Pull 及 Push

  1. 每次進行 pull/ push 前,先執行 fetch,以取得最新的 branches 的狀態,並依據當下情境進行更新
  2. 從 develop 進行 checkout 前,需 pull 取得最新狀態
  3. 每日下午 5 點將 feature branch push 到 remote 進行保存(買保險的概念 :smile: )

Pull Request

  1. feature branch 項目完成後,不可直接 merge 回 develop
  2. 請至 repository server 發出 pull request,請求其他人進行 code review

Merge to develop

  1. Code review 完成後,由最後一位將 issue close,並將該 feature branch merge 到 develop

Repository 備份

可行方式如下:

  1. 每日排程備份 repository server 的資料
  2. repository server 的資料存放在如 Gluster 的 file system