git 入門教程之個性化 git

雪之夢技術驛站發表於2019-03-27

前情概要

初識 git 時,我們就已經接觸過 git 的基本配置,使用 git config 命令配置使用者名稱和郵箱:

# 配置當前專案(`local`)的使用者名稱(`snowdreams1006`)
git config --local user.name "snowdreams1006"

# 配置當前專案(`local`)的郵箱(`snowdreams1006@163.com`)
git config --local user.email "snowdreams1006@163.com"
複製程式碼

快速回憶一下配置的相關語法:

# 檢視預設全部配置: `local>global>system`
git config --list

# 檢視當前專案配置,等同於 `.git/config` 檔案
git config --local --list

# 檢視當前使用者配置,等同於 `~/.gitconfig` 檔案 或 `~/.config/git/config` 檔案
git config --global --list

# 檢視當前系統配置,等同於 `/etc/gitconfig` 檔案
git config --system --list
複製程式碼

man git-config 檢視幫助文件,git 的配置檔案是普通文字,也可以直接編輯.

高頻配置

總體來說,git 的配置項基本分為兩類: 客戶端和服務端.其中大部分屬於客戶端配置, 除非使用自己搭建私服,否則沒機會手動配置服務端(第三方伺服器基本都支援視覺化配置,比如禁止強制推送等配置).

alias 別名

熟悉 linux 操作的小夥伴對 ll 這個命令可能再熟悉不過了,是 ls -l 的縮寫,稱之為別名.

git 也支援別名,有個別名我們可以將常用的命令都縮短,大大降低出概率,提高工作效率.

# `git checkout` 縮寫成 `git co`
git config --global alias.co checkout

# `git commit` 縮寫成 `git ci`
git config --global alias.ci commit

# `git branch` 縮寫成 `git br`
git config --global alias.br branch
複製程式碼

如此一來,以後再也不用擔心打錯字了,簡化命令,懶人至上!

core.editor 編輯器

預設情況下,git 使用的是 $VISUAL$EDITOR 配置的文字編輯器,如果沒有設定,則呼叫 vi 編輯器建立和編輯文字資訊.

檢視當前編輯器配置項:

# 檢視編輯器配置項: 若沒配置過,則無內容輸出,已配置過的話,會輸出相應編輯器資訊
git config core.editor
複製程式碼

假設使用 sublime 作為預設編輯器,那麼便可如下設定:

# `Mac` 系統如下設定: 設定成自己的 `Sublime` 的安裝路徑
git config --local core.editor "'/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl' -n -w"

# `Windows` 系統如下設定: 設定成自己的 `Sublime` 的安裝路徑
git config --local core.editor "'F:\Sublime Text 3 sublime text.exe' -n -w"
複製程式碼

此時再次檢視編輯器配置項應該會輸出剛才配置資訊,接下來我們驗證下編輯器的效果:

git-custom-config-editor.gif

檢視提交歷史,已經提交成功(之前備註資訊是在命令列中直接輸入的,而現在是在編輯器中編輯)

$ git log --pretty=oneline --abbrev-commit
43fa8aa (HEAD -> master) validate sublime successfully
00e16d7 ok
2400f11 git config --local core.editor "'/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl' -n -w"
0d60cb8 ok
8fe5aba (origin/master, origin/HEAD) Merge branch 'master' of github.com:snowdreams1006/git-demo
$ 
複製程式碼

如果只是輸入簡單備註,根本用不到編輯器,若提交備註有格式化要求時再手動輸入就顯得力不從心了!

core.template 提交模板

如果你需要格式化提交備註,那麼這種情況下模板檔案最好不過了,和自定義的編輯器一起搭配,這樣就能約束自己和他人按照既定格式規範填寫提交備註,方便以後統一管理.

檢視當前提交模板配置:

git config commit.template
複製程式碼

假設你在當前專案下建立 commit-template.txt 模板檔案,內容如下:

# This is commit template

# snowdreams1006 

# git-demo
複製程式碼

將編輯好的模板檔案設定成提交預設資訊,需要如下設定:

git config --local commit.template commiit-template.txt
複製程式碼

此時再次執行 git config commit.template 檢視已配置提交模板,現在看一下實際效果:

git-custom-config-commit.gif

檢視提交歷史,當然也提交成功啦,可根據實際需求定製適合自己的提交模板.

$ git log --abbrev-commit
commit a2ca3f0 (HEAD -> master)
Author: snowdreams1006 <snowdreams1006@163.com>
Date:   Wed Mar 27 16:22:18 2019 +0800

    ok
    
    myself
    
    yes

commit 43fa8aa
Author: snowdreams1006 <snowdreams1006@163.com>
Date:   Wed Mar 27 14:58:36 2019 +0800

    validate sublime successfully

commit 00e16d7
Author: snowdreams1006 <snowdreams1006@163.com>
Date:   Wed Mar 27 14:56:20 2019 +0800

    ok

commit 2400f11
複製程式碼

git 還支援其他配置,暫時不一一介紹了,詳情請參考線上幫助文件: man git-config

相關文章