前一篇文章從原理的角度介紹了全世界最先進(jìn)的分布式版本控制系統(tǒng)——Git峰髓,在全民 Git 的今天傻寂,如果你還不知道配置滿足自己需求的自定義 Git ,那確實(shí)說(shuō)不過(guò)去了携兵。例如疾掰,你在敲命令時(shí)還是傻傻的打出所有的命令全稱。這篇文章跟大家一起通過(guò)簡(jiǎn)單的配置提高 Git 操作效率徐紧。
Git 配置
Git 初始化一個(gè)項(xiàng)目時(shí)静檬,我們需要設(shè)置用戶名稱和郵箱等信息,這是為了在提交代碼的時(shí)候并级,Git 知道在 author拂檩、email 等欄中填寫的默認(rèn)信息。除此之外嘲碧,Git 支持很多其他可供開(kāi)發(fā)者自定義的配置稻励,包括顏色、縮寫等等愈涩。
大家比較熟悉的做法應(yīng)該是通過(guò) git config 命令去修改當(dāng)前的配置望抽,常用操作如下:
// 設(shè)置當(dāng)前項(xiàng)目倉(cāng)庫(kù)提交的用戶名和郵箱
$ git config user.name "xxxx"
$ git config user.email "xxxx@gmail.com"
// 設(shè)置所有倉(cāng)庫(kù)提交的用戶名和郵箱
$ git config --global user.name "xxxx"
$ git config --global user.email "xxxx@example.com"
// 查看所有配置信息
$ git config --list
// 查看 Git 某項(xiàng)配置信息
$ git config user.name
除了通過(guò)命令去修改 Git 配置外,你也可以直接修改 Git 的配置文件來(lái)達(dá)到配置的目標(biāo)履婉。Git 一共有三種配置文件煤篙,分別對(duì)應(yīng)不同倉(cāng)庫(kù)權(quán)限的配置:
/etc/gitconfig
系統(tǒng)級(jí) Git 配置文件,當(dāng)前系統(tǒng)上每個(gè)用戶及他們倉(cāng)庫(kù)的通用配置毁腿,當(dāng)通過(guò) git config 命令并帶上 --system 選項(xiàng)時(shí)辑奈,Git 就會(huì)從此文件讀寫配置變量。~/.gitconfig 或 ~/.config/git/config 文件
用戶級(jí) Git 配置文件狸棍,只針對(duì)當(dāng)前用戶身害。 通過(guò) git config 命令并帶上 --global 選項(xiàng)時(shí)味悄,Git 就會(huì)從此文件讀寫配置變量草戈。.git/config(當(dāng)前項(xiàng)目 git 倉(cāng)庫(kù)中的 config 文件)
項(xiàng)目級(jí) Git 配置文件,僅針對(duì)當(dāng)前倉(cāng)庫(kù)侍瑟。
【注意】低權(quán)限配置會(huì)覆蓋高全新的配置唐片,例如 .git/config的配置變量會(huì)替換 /etc/gitconfig 中的配置變量丙猬。
下面列舉通過(guò)文件配置 Git 的方法,下面的寫法你可以理解為一種 DSL 語(yǔ)言费韭。
顏色配置
[color]
ui = auto
status = auto
branch = auto
diff = auto
你也可以指定某個(gè)命令的顏色配置
[color "branch"]
current = green reverse
local = green
remote = red
命令縮寫配置
[alias]
br = branch
df = diff
co = checkout
ss = status
用戶信息配置
[user]
email = xxxx@xxxxxx.com
name = xxxxx
命令配置
[core]
compression = 0
以上基本上涵蓋了工作中可能涉及到的配置部分茧球,如果想了解更多配置,可以參考這里星持。
Git 自動(dòng)補(bǔ)全
shell 命令大家都很熟悉抢埋,在敲命令時(shí),敲出命令的前幾個(gè)字母之后就可以通過(guò) 'Tab' 去自動(dòng)補(bǔ)全完整命令督暂,如果相同字母開(kāi)頭有多個(gè)命令揪垄,shell 則給大家列出所有的可用命令,相當(dāng)方便快捷逻翁!
日常工作中饥努,Git 操作非常普遍,Git 也鼓勵(lì)大家隨時(shí)提交修改到本地倉(cāng)庫(kù)八回,避免積累太多修改再提交導(dǎo)致與遠(yuǎn)程分支沖突的風(fēng)險(xiǎn)酷愧。然而,每次敲所有的命令相當(dāng)費(fèi)事缠诅,而且溶浴,偶爾拼錯(cuò)還要重頭再來(lái)。如果可以像 shell 一樣可以通過(guò) Tab 來(lái)自動(dòng)補(bǔ)全命令多好滴铅!這里戳葵,詳細(xì)介紹下如何讓你的 Git 命令支持自動(dòng)補(bǔ)全。
1. 下載 bash 完整補(bǔ)全包
brew update
brew install bash-completion
bash-completion:增強(qiáng)bash自動(dòng)補(bǔ)齊功能汉匙,默認(rèn)情況下拱烁,在 bash 中雙擊 TAB 可以自動(dòng)補(bǔ)齊,但僅能自動(dòng)補(bǔ)齊命令名和文件名噩翠。bash-2.05 及以后的版本提供了自動(dòng)補(bǔ)齊的編程接口戏自,通過(guò)安裝 bash-completion 來(lái)使用 TAB 鍵自動(dòng)補(bǔ)齊幾乎任何內(nèi)容,包括參數(shù)伤锚、文件擅笔、目錄甚至包名稱等等。
下載完成后會(huì)有一段提示屯援,說(shuō)的很清晰猛们,將一段命令添加到 bash_profile 中。
bash_profile 是什么狞洋?Linux系統(tǒng)默認(rèn)使用的 shell 為 bash弯淘,在 shell 啟動(dòng)時(shí)會(huì)讀取和執(zhí)行當(dāng)前用戶的 shell 配置文件:~/.bash_profile 和 ~/.bashrc 文件。
2. 添加命令
sudo open ~/.bash_profile
// then 粘貼提示的命令到文件中
...
// then 保存+關(guān)閉
...
3. 拷貝 Git 腳本到根目錄
這里的 Git 腳本是 Git 源碼中的 git-completion.bash 文件吉懊,添加到用戶根目錄之后庐橙,可以配合上一步 linux shell 啟動(dòng)時(shí)執(zhí)行假勿。
首先獲取 Git 源碼:
git clone https://github.com/git/git.git
找到文件并拷貝到當(dāng)前用戶根目錄中,文件的路徑為 contrib/completion/git-completion.bash:
cp git-completion.bash ~/.git-completion.bash
4. 使腳本生效
剛剛修改了用戶啟動(dòng) shell 后讀取的配置态鳖,如果想在不重啟電腦的情況下使 Git 補(bǔ)全功能生效转培,我們需要手動(dòng)執(zhí)行以下腳本。
source ~/.git-completion.bash
重啟 shell 終端浆竭,在敲 Git 命令后使用 Tab浸须。
最后,Enjoy yourself邦泄!
參考文檔:
https://git-scm.com/book/zh/v1/%E8%87%AA%E5%AE%9A%E4%B9%89-Git-%E9%85%8D%E7%BD%AE-Git
https://git-scm.com/book/zh/v1/%E8%87%AA%E5%AE%9A%E4%B9%89-Git-%E9%85%8D%E7%BD%AE-Git