開發(fā)工具——git配置+補(bǔ)全

前一篇文章從原理的角度介紹了全世界最先進(jìn)的分布式版本控制系統(tǒng)——Git,在全民 Git 的今天,如果你還不知道配置滿足自己需求的自定義 Git ,那確實(shí)說不過去了。例如,你在敲命令時(shí)還是傻傻的打出所有的命令全稱。這篇文章跟大家一起通過簡(jiǎn)單的配置提高 Git 操作效率。

Git 配置

Git 初始化一個(gè)項(xiàng)目時(shí),我們需要設(shè)置用戶名稱和郵箱等信息,這是為了在提交代碼的時(shí)候,Git 知道在 author、email 等欄中填寫的默認(rèn)信息。除此之外,Git 支持很多其他可供開發(fā)者自定義的配置,包括顏色、縮寫等等。

大家比較熟悉的做法應(yīng)該是通過 git config 命令去修改當(dāng)前的配置,常用操作如下:

// 設(shè)置當(dāng)前項(xiàng)目倉庫提交的用戶名和郵箱
$ git config user.name "xxxx"
$ git config user.email "xxxx@gmail.com"

// 設(shè)置所有倉庫提交的用戶名和郵箱
$ git config --global user.name "xxxx"
$ git config --global user.email "xxxx@example.com"

// 查看所有配置信息
$ git config --list

// 查看 Git 某項(xiàng)配置信息
$ git config user.name

除了通過命令去修改 Git 配置外,你也可以直接修改 Git 的配置文件來達(dá)到配置的目標(biāo)。Git 一共有三種配置文件,分別對(duì)應(yīng)不同倉庫權(quán)限的配置:

  • /etc/gitconfig
    系統(tǒng)級(jí) Git 配置文件,當(dāng)前系統(tǒng)上每個(gè)用戶及他們倉庫的通用配置,當(dāng)通過 git config 命令并帶上 --system 選項(xiàng)時(shí),Git 就會(huì)從此文件讀寫配置變量。

  • ~/.gitconfig 或 ~/.config/git/config 文件
    用戶級(jí) Git 配置文件,只針對(duì)當(dāng)前用戶。 通過 git config 命令并帶上 --global 選項(xiàng)時(shí),Git 就會(huì)從此文件讀寫配置變量。

  • .git/config(當(dāng)前項(xiàng)目 git 倉庫中的 config 文件)
    項(xiàng)目級(jí) Git 配置文件,僅針對(duì)當(dāng)前倉庫。

【注意】低權(quán)限配置會(huì)覆蓋高全新的配置,例如 .git/config的配置變量會(huì)替換 /etc/gitconfig 中的配置變量。
下面列舉通過文件配置 Git 的方法,下面的寫法你可以理解為一種 DSL 語言。

顏色配置
[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è)字母之后就可以通過 'Tab' 去自動(dòng)補(bǔ)全完整命令,如果相同字母開頭有多個(gè)命令,shell 則給大家列出所有的可用命令,相當(dāng)方便快捷!


shell自動(dòng)補(bǔ)全

日常工作中,Git 操作非常普遍,Git 也鼓勵(lì)大家隨時(shí)提交修改到本地倉庫,避免積累太多修改再提交導(dǎo)致與遠(yuǎn)程分支沖突的風(fēng)險(xiǎn)。然而,每次敲所有的命令相當(dāng)費(fèi)事,而且,偶爾拼錯(cuò)還要重頭再來。如果可以像 shell 一樣可以通過 Tab 來自動(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ǔ)齊的編程接口,通過安裝 bash-completion 來使用 TAB 鍵自動(dòng)補(bǔ)齊幾乎任何內(nèi)容,包括參數(shù)、文件、目錄甚至包名稱等等。

下載完成后會(huì)有一段提示,說的很清晰,將一段命令添加到 bash_profile 中。


bash-completuion.png

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。

Git補(bǔ)全.png

最后,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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,534評(píng)論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,261評(píng)論 6 342
  • Time:11:00-11:30pm 導(dǎo)讀 記得有個(gè)教我們?nèi)烁裥睦韺W(xué)的資深老師,在談及弗洛伊德的作品時(shí)說過,現(xiàn)在的...
    燦的行云流水閱讀 195評(píng)論 0 0
  • 作者:Erica Sadun,原文鏈接,原文日期:2016-10-07譯者:wiilen;校對(duì):Cee;定稿:CM...
    梁杰_numbbbbb閱讀 197評(píng)論 0 0
  • 文/墨雪 看看那木頭 皮質(zhì)爛葉的包裹下 躺了一具快發(fā)霉的春天。 呆滯的那絲傷感 我輕輕的打開了 丟棄了生命的給予 ...
    詩與雪閱讀 144評(píng)論 1 2

友情鏈接更多精彩內(nèi)容