Git Log 匯出 Excel
公司專案每月需要把大家的LOG紀錄都匯出來,
研究了一下發現挺有趣,就製作了這篇文章
我們專案要的格式大概是這樣

需要commit訊息、作者名稱、commit時間
我們可以去GIT官網看到相關資訊 官方文件網址
我們可以用 git log 指令在cmd上面取得log資訊
然後我們要達成上面那張圖的格式
還需要用到pretty搭配format
以下是常用的formate指令
| 選項 | 輸出說明 |
|---|---|
| %H | 該提交 SHA-1 雜湊值 |
| %h | 該提交簡短的 SHA-1 雜湊值 |
| %T | 「樹(tree)」物件的 SHA-1 雜湊值 |
| %t | 「樹」物件簡短的 SHA-1 雜湊值 |
| %P | 親代(parent)提交的 SHA-1 雜湊值 |
| %p | 親代提交簡短的 SHA-1 雜湊值 |
| %an | 作者名字 |
| %ae | 作者電子郵件 |
| %ad | 作者日期(依據 --date 選項值而有不同的格式) |
| %ar | 作者日期,相對時間格式。 |
| %cn | 提交者名字 |
| %ce | 提交者電子郵件 |
| %cd | 提交者日期 |
| %cr | 提交者日期,相對時間格式。 |
| %s | 標題 |
然後我們還需要限制日期跟作者名字
以下表格列出一些常用的選項
| 選項 | 說明 |
|---|---|
| -(n) | 只顯示最後 n 筆提交。 |
| --since, --after | 列出特定日期後的提交。 |
| --until, --before | 列出特定日期前的提交。 |
| --author | 列出作者名字符合指定字串的提交。 |
| --committer | 列出提交者名字符合指定字串的提交。 |
| --grep | 列出提交訊息中符合指定字串的提交。 |
| -S | 列出修改檔案中有加入或移除指定字串的提交。 |
如果作者太多要選出幾個的話
我們就需要用到正則去選出我們要的
就需要用到 --perl-regexp
最後就是匯出成csv檔
我們就要用 >>file.csv
最終的指令就可以變為
git log --pretty=format:%s,%an,%as -- after="2021-08-01" --until="2021-08-31" --perl-regexp --author="wenhui" >> file.csv
然後打開csv檔案會發現亂碼

這是因為預設big5編碼
我們需要把它變為UTF-8
我們打開excel上方的資料>從文字/CSV
匯入亂碼的CSV,原點選擇 65001:Unicode(UTF-8)
載入完就會是正確的文字拉~~~

Loading...