基於Git生成開發週報或專案版本change log

顧重發表於2018-03-05

GitHub

自動生成git commit記錄用以統計個人專案週報,全組專案週報,版本差異記錄等

例子

# 生成個人週報  ->  xxx.md
$ ./gen-log.sh

# [2018-02-27]
#  * feat: sss
#  * feat: xxx
#  * chore: xxxsss

# [2018-02-28]
#  * fix: xxx
#  * chore:fff
#  * chore:ggg

# [2018-03-01]
#  * chore: xxx
#  * chore: xxx
#  * feat: xxx

# [2018-03-02]
#  * fix:sdfdsf

# [2018-03-05]
#  * feat: xxx
複製程式碼
# 生成個人週報覆蓋已有檔案
$ ./gen-log.sh -f
複製程式碼
# 生成團隊週報  ->  20xx.xx.xx.md
$ ./gen-log.sh -a ''

# [2018-02-26]
#  * refactor: sdfa (dachui)
#  * fix: 1639 (顧重)
#  * feat: gggg (dachui)
#  * feat: aaaaa (dachui)

# [2018-02-27]
#  * chore: sdf (dachui)
#  * chore: 程式碼格式化 (dachui)
#  * chore: sdf (顧重)

# [2018-02-28]
#  * fix: 1111 (顧重)
#  * chore: 22222 (dachui)

# [2018-03-01]
#  * chore: vvvv (顧重)
#  * chore: ssss (顧重)
#  * feat: bbbb (顧重)
#  * fix: asdf (dachui)

# [2018-03-05]
#  * feat: 2222 (顧重)
複製程式碼
# 生成待發布版本資訊 ->  vx.x.x.md
$ ./gen-log.sh -a '' -t master -o develop -s 1970-01-01

# > 2018-03-05

# #### 新增
# * sdf (lizhen)
# * 234 (dachui)
# * hh (dachui)
# * bbb (dachui)

# #### 修改
# * 2222 (asdf)

# #### 重構
# * vvvv (dachui)

# #### 文件
# * aaaa (dachui)

# #### 其他
# * ssss&優化程式碼 (lizhen)
# * vvvv (dachui)
# * 123 (顧重)
複製程式碼
# 生成目錄為version
$ ./gen-log.sh -d version
複製程式碼

配置

  • -a 貢獻者;預設:git 全域性配置 name;可傳 '' 表示所有貢獻者
  • -s 起始時間;預設:上週一
  • -e 終止時間;預設:當天
  • -o 設定比對分支源分支名;預設當前分支
  • -r 本地專案路徑;預設當前目錄
  • -t 設定比對分支目標分支名;預設當前分支
  • -v 設定比對版本;預設package.json中version欄位值
  • -f 設定是否強制覆蓋已有檔案;預設:不覆蓋
  • -d 設定輸出目錄;預設:log

使用

  • 開啟終端(預設已配置git環境),執行

cd ~/Downloads && git clone git@github.com:GiantZero-x/proj-gen-git-log.git && ./proj-gen-git-log && chmod +x gen-log.sh

  • 執行./gen-log.sh -r <path-to-your-repository>
  • 自動在log資料夾(若無會自動建立)下生成{user}.md檔案

進階

# 輸出 someone 2018年1月1日至2018年1月31日commit記錄至./git-log/someone.md檔案中,若已存在該檔案直接覆蓋
./gen-log.sh -r <path-to-your-repository> -a someone -s 2018-01-01 -e 2018-01-31 -d git-log -f
複製程式碼

注意

  • 每個版本需修改package.json版本號
  • 儘可能保證功能分支commit message簡明扼要並且沒有無意義commit
  • 對比模式需要兩個分支都存在本地, 並且所有commit message以(feat、fix、refactor、style、docs、chore)開頭,例feat: 完成作者列表展示

其他

  • 根據配置項可生成各種git記錄,歡迎優化、擴充、拍磚、Star!

相關文章