開發和維護我的開源項目之代碼倉庫管理

開發和維護我的開源項目之代碼倉庫管理

我將代碼倉庫管理分爲如下幾個部分:html

  • 分支管理策略
  • 工做流程
  • tag版本管理
  • 提交格式、日誌獲取

代碼倉庫管理

分支管理策略

  • master(穩定分支)(保護分支)git

    • master+tag(發佈版本,里程碑)
    • hotfix(臨時分支,補丁分支)
  • develop(穩定分支)(保護分支)工具

    • feature(臨時分支,功能分支)
    • release(臨時分支,預發佈分支)

masterdevelop是固定受保護、不能直接push的分支。二者區別:post

  • master始終是最後一次發佈的穩定版本
  • develop上會有未發佈的功能

每一個分支的功能獨立,便於理解。.net

工做流程

  1. 建立開發分支設計

    git checkout -b develop master
  2. 功能開發日誌

    git checkout -b feature-x develop
  3. 功能開發完成,分支合併到develop分支code

    git checkout develop
    git merge --no-ff feature-x
    git branch -d feature-x
  4. 建立預發佈分支htm

    git checkout -b release-0.1 develop
  5. 將預發佈合併到master和開發分支blog

    git checkout master
    git merge --no-ff release-0.1
    git tag -a 0.1
    git checkout develop
    git merge --no-ff release-0.1
    git branch -d release-0.1
  6. 修補bug

    git checkout -b fixbug-0.1 master
    git checkout master //合併到主線
    git merge --no-ff fixbug-0.1
    git tag -a 0.1.1
    git checkout develop //合併到開發分支
    git merge --no-ff fixbug-0.1
    git branch -d fixbug-0.1
  7. fork代碼,pull requestdevelop

tag版本管理

上一節提到了用tag打版本,版本號的命名規則:

  1. 項目立項

    0.0.0 //主版本.次版本號.修正版本號
    • 主版本號:0表示正在開發階段;
    • 次版本號:增長新的功能時增長;
    • 修訂號:修復bug等改動
  2. 開發完成

    1.0.0
    • 主版本號:全盤重構時增長;重大功能或方向改變時增長;大範圍不兼容以前的時增長;
    • 次版本號:增長新功能時增長;
    • 修訂號:修復bug、功能調整等改動

提交格式、日誌獲取

規範化的提交對後續的整理、回溯是很友好的,好比:realse的時候進行一輪日誌獲取就能生成版本變動信息(版本開發以前應有計劃)。

  • 規範化commit message

    • 提交類型(友好提醒)
    • 提交信息格式
    • 提交信息驗證
  • changelog生成

    • conventional-changelog-cli 工具

我是詳細實踐,請點我:Git commit message和工做流規範

總結

本文主要對代碼倉庫的管理做了整理,這個也是每一個項目啓動之時就應該設計好的。

參考連接

Git 工做流程
Git分支管理策略
團隊協做中的 Github flow 工做流程
Commit message 和 Change log 編寫指南
如何寫好 Git commit messages
優雅的提交你的 Git Commit Message
接口(Api)版本號命名規則

相關文章
相關標籤/搜索