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

前一篇文章從原理的角度介紹了全世界最先進(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)方便快捷逻翁!


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

日常工作中饥努,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-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)系作者
  • 序言:七十年代末羽戒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子虎韵,更是在濱河造成了極大的恐慌易稠,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件包蓝,死亡現(xiàn)場(chǎng)離奇詭異驶社,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)测萎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門亡电,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人硅瞧,你說(shuō)我怎么就攤上這事份乒。” “怎么了腕唧?”我有些...
    開(kāi)封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵或辖,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我枣接,道長(zhǎng)颂暇,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任但惶,我火速辦了婚禮耳鸯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘膀曾。我一直安慰自己县爬,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布添谊。 她就那樣靜靜地躺著财喳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪碉钠。 梳的紋絲不亂的頭發(fā)上纲缓,一...
    開(kāi)封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音喊废,去河邊找鬼祝高。 笑死,一個(gè)胖子當(dāng)著我的面吹牛污筷,可吹牛的內(nèi)容都是我干的工闺。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼瓣蛀,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼陆蟆!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起惋增,我...
    開(kāi)封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤叠殷,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后诈皿,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體林束,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年稽亏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了壶冒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡截歉,死狀恐怖胖腾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情瘪松,我是刑警寧澤咸作,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站宵睦,受9級(jí)特大地震影響性宏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜状飞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一毫胜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧诬辈,春花似錦酵使、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至穿撮,卻和暖如春缺脉,著一層夾襖步出監(jiān)牢的瞬間痪欲,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工攻礼, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留业踢,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓礁扮,卻偏偏與公主長(zhǎng)得像知举,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子太伊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

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