前言

大家應該都知道用表情符號規範git commit內容的一個很火很好玩的專案叫做Gitmoji

Gitmoji是一個開源專案,專門規定了在 Github提交程式碼時應當遵循的emoji規範。

但是對於初學者,面對這麼多的圖示,經常不知道圖示對應著什麼意思,我就想有沒有什麼方法幫助我們快速查閱這些圖示對應的意思,方便剛入門的中文開發者更好上手呢?這就是本文的初衷。

在彙總了自己以及網路上的方法後,有了本文這篇方便查閱gitmoji的指南,利用gitmoji幫助我們更好的git commit

1. 查閱方法:指令碼法

可以把這些圖示和他們對應的意思都做成一個指令碼,這樣想要git commit的時候執行一下指令碼就會彈出提示資訊不就行了嗎?

受到hooj0/git-emoji-guide專案的啟發(介紹部落格在git-emoji-guide中),裡面有一個git-emoji-list.md,我想的是把它修改為一個emoji.sh的指令碼,給這個指令碼新增可執行許可權後在終端中列印提示資訊。

1.1 利用 VS Code 編輯多行文字快速寫指令碼檔案

~/Documents資料夾目錄下執行gedit ./emoji.sh新建一個檔案

git-emoji-list.md的內容複製到emoji.sh後用VS Code開啟。

考慮到指令碼中的輸出方式是echo “輸出內容”,這就要求要在這麼多行的最前面都加上echo ",在多行的最後面加上"。並且每一行中的兩個小撇符號都要修改為'符號,不然無法正常輸出。

需求明確後,參考部落格vscode同時編輯多處的三種方法操作:

  • 第一步,每行最前面都加上echo ":按shift+alt,再使用滑鼠拖動,出現豎直的列游標,同時可以選中多列



    寫入echo "後效果如下

  • 第二步,每行最後面加上":選中這些行,按shift+alt+i,可以在每行末尾出現游標



    寫入"後,效果如下

  • 第三步,每一行中的第一次出現的小撇符號都修改為'符號:按住alt,用滑鼠左鍵點選,可以出現多個游標,輸入的內容可以在游標處同時增加。(這裡需要每一行都去點一下,比較繁瑣我就不具體截圖說明了,看原部落格即可理解)

  • 第四步,每一行中的第二次出現的小撇符號都修改為'符號:操作同第三步

1.2 給指令碼新增可執行許可權

之後儲存檔案,新增可執行許可權並執行即可看到提示資訊(按下Tab鍵可以補全檔名):

$ sudo chmod +x emoji.sh
$ ./emoji.sh

1.3 修改環境變數 PATH 使指令碼在所有路徑下都可以執行(全域性執行)

此時emoji.sh只能在當前路徑下執行,如果想要把它設定為全域性執行的一個指令碼,有許多種方式,我參考部落格Ubuntu:配置環境變數的兩種常用方法( .bashrc 和 /etc/profile )ubuntu設定全域性指令碼_ubuntu環境變數的三種設定方法,介紹兩種方法:

  • 第一種,直接把emoji.sh複製一份到/usr/local/bin/下:sudo cp ~/Documents/emoji.sh /usr/local/bin/。以後在任意路徑下都可以直接執行emoji.sh
  • 第二種,把當前的/home/zqchen/Documents/路徑新增到環境變數PATH中:編輯/home/zqchen/.bashrc檔案,在末尾新增一行:

    export PATH=/home/zqchen/Documents/:$PATH

    之後執行source ./bashrc使之生效,也可以起到第一種方法的效果。

這裡先佔個坑,以後有時間我會專門寫一篇介紹新增環境變數的臨時和永久的方法以及開機執行各個重要指令碼的順序。

2. 查閱方法:利用 Git 本身配置 git commit 的個性化提示資訊

第二種看到提示資訊的方法是我發現的另外一個專案GIT顏文字COMMIT(CLI命令列模式),使用的Github倉庫為:使用git顏文字美化commit,這個專案利用了emojify這一指令碼工具(可以使得命令列中顯示圖示而非圖示的符號程式碼),通過利用git config命令,新建一個專門寫有commit提示資訊的文字檔案,完成git commit的提示的。

該方法的另外兩個參考來源如下:

2.1 新建個性化提示資訊的文字檔案 gitmessage.txt

先在/home/zqchen/下執行gedit ./.zqchen_gitmessage.txt生成一個空的文字檔案,之後去cangyan/git-emoji-template專案中把commit.template檔案中的內容都複製到.zqchen_gitmessage.txt檔案中。

不知道是不是Ubuntu20.04對圖示顯示做了新支援的原因,我這裡不需要利用emojify指令碼工具就可直接顯示圖示,於是我就沒有參照原專案下載emojify

2.2 進行 git config 的配置

git config --global commit.template /home/zqchen/.zqchen_gitmessage.txt

執行這句命令其實就是將如下內容寫入到/home/zqchen/.gitconfig檔案:

這樣在終端中執行git commit並彈出nano編輯器後,Git工具就知道去哪裡找到使用者自己寫的提示資訊並將其顯示出來了。效果如下:

3. 查閱方法:使用 gitmoji-cli 工具

GithubGitmoji的建立者本人發起的一個完整的專案gitimoji-cli,這個專案也能實現很好的提示功能,但是功能太多還要下載npm等工具我就沒有用。

4. 查閱方法:類似指令碼法

後來發現hooj0/git-emoji-guide專案中的git-emoji-list.md檔案作者的本意應該是這樣用的(可以起到和我把它修改為一個指令碼相同的功能):先將git-emoji-list.md放入PATH環境變數指向的位置,方便需要檢視的時候能直接訪問檢視。

我選擇執行sudo cp /home/zqchen/Documents/git-emoji-list.md /usr/local/bin/,把git-emoji-list.md複製一份放到/usr/local/bin/下面,因為/usr/local/一般存放的都是使用者自己下載的軟體之類的,如果之後自己不想要了可以放心刪除。

$ alias emoji='cat /usr/local/bin/git-emoji-list.md'
$ emoji

alias命令是給一行冗長的命令起一個別名,參考ubuntu——cat和輸出命令詳解,發現cat命令有一個用法是直接開啟一個檔案(並沒有進入編輯狀態,是直接讀取輸出),效果和我上面修改成指令碼的效果是一樣的:

部落格Ubuntu學習之alias命令提到這裡的alias重啟後會失效,可以通過把這條命令寫入/home/user/.bashrc中達到alias永久化的目的。如果不想使用了可以unalias emoji去除這一別名。

5. 補充:在 VS Code 中直接進行 git add 和 git commit

如部落格Ubuntu下git commit後會進入類似vim介面,不知道怎麼操作所言,直接在Ubuntu的終端下git commit後進入的是nano編輯器的介面。其實也可以利用VS Code來完成這一系列操作。

暫不贅述,放上幾個連結以供參考:

6. PS:

  • 我可真菜呀...別人造好了的輪子我都不會用,還要自己再造一個功能更差的輪子...
  • 我的部落格很囉嗦是因為我主要是給自己回憶看的(沒有人看也無所謂啦,當然更希望文章可以給大家帶來一些參考價值~),因為記性太差,不寫詳細一點根本想不起來...
  • 多瞭解一下Github Gist這項服務,以前沒有接觸過

PPS:本文同步發表於CSDN - 夏小正的鮮小海 - 使用Gitmoji進行git commit的快速查閱指南