Cyber Coding Course

師其意,不泥其跡

git別名之昨日報表

前言

我們可以透過 git config --global alias.[別名] "將常常要執行的長長git子命令" 縮減成簡化的別名。
所以您也可以透過git別名設定,將自己常用的git命令加入到全域的git別名中。

讓我們來看看我的實際範例,如何將長長的子命令簡化成簡單易用的別名。

範例:

MacOS 上,由於 date 的指令與 Linux 不同,所以提供兩種版本的設定方式。
下方的指令,拷貝貼到終端機上就可完成設定。
然我們就能到git的REPO中測試結果囉。
輸入: git t (今天的紀錄)
輸入: git y (昨天的紀錄)
MacOS:
git config --global alias.y "log --pretty=format:'%h - %an, %ar : %s' --since \"$(date -v -1d +'%Y-%m-%d 00:00:00')\" --until \"$(date -v -1d +'%Y-%m-%d 23:59:59')\" --stat"
git config --global alias.t "log --pretty=format:'%h - %an, %ar : %s' --since \"$(date +'%Y-%m-%d 00:00:00')\" --until \"$(date +'Y-%m-%d 23:59:59')\" --stat"

Linux:
git config --global alias.y "log --pretty=format:'%h - %an, %ar : %s' --since \"$(date -d "yesterday" +'%Y-%m-%d 00:00:00')\" --until \"$(date -d "yesterday" +'%Y-%m-%d 23:59:59')\" --stat"
git config --global alias.t "log --pretty=format:'%h - %an, %ar : %s' --since \"$(date +'%Y-%m-%d 00:00:00')\" --until \"$(date +'Y-%m-%d 23:59:59')\" --stat"

執行結果

我只要在git的repo輸入 git t ,即可取代長長的git子命令囉。
git log
如果,我們要看,這些檔案的差異怎麼做呢,多個-p的參數即可。
例如: git t -p

自動化

如果您想要自動產生這樣的Git報表,每日將昨天的結果,發信到郵件中,
可以看看我Github上的Python程式,幫您搞定這件事情。
https://github.com/DevinY/git-yesterday-report

這是我花了兩天學習Python後,第一隻Python程式。
對於學習Python的心得感想是,他真是一門學習曲線溫和的語言呀。
就算您不懂Python,我想看了我github中的main.py也能猜到我在做什麼了。

作者: Devin Yang