git config打造個(gè)性化的git環(huán)境

配置是一個(gè)軟件能夠滿足不同需求的基本功能。

Git作為現(xiàn)代分布式版本控制的利器,已經(jīng)是軟件開(kāi)發(fā)過(guò)程中的基本工具。然而,好多新手在安裝完Git后,并不太關(guān)注Git的配置。今天把Git的配置介紹一下,每個(gè)人都可以根據(jù)自己的情況,打造一個(gè)屬于自己的Git。

第一、git config 命令

上面是git config 命令的使用說(shuō)明,git版本為2.16.2.

對(duì)于配置我們一般的操作無(wú)非就是查看配置、添加配置、刪除配置,這幾個(gè)操作就能滿足平時(shí)的需求。但是這里的問(wèn)題是:配置項(xiàng)都有什么?

第二、配置級(jí)別

上面的命令選項(xiàng)中可以看到--system,--global,--local三個(gè)選項(xiàng),分別代表了配置的三個(gè)不同級(jí)別。

--system:系統(tǒng)級(jí)別配置,適用于系統(tǒng)所有用戶和所有項(xiàng)目的配置。配置文件一般位于Linux:/etc/gitconfig;Win:C:\Program Files\Git\mingw64\etc\gitconfig.

--global:全局級(jí)別配置,適用于當(dāng)前登錄用戶的配置。配置文件一般位于Linux:~/.gitconfig;Win:C:\Users\xxx\.gitconfig.

--local:本地級(jí)別配置,適用于特定git項(xiàng)目的配置。配置文件一般位于.git/config

注意:這三級(jí)的配置采用就近原則,離git項(xiàng)目最近的配置生效,優(yōu)先級(jí)為1<2<3。

除了這三個(gè)默認(rèn)位置的配置文件,還可以通過(guò)-f參數(shù)指定其他路徑下的配置文件。

查看配置的命令為:

git config --system --list

git config --global --list

git config --local --list

第三、用戶信息

在大多數(shù)git教程中也都會(huì)介紹,安裝完git,第一步是設(shè)置用戶信息(用戶名和email),這個(gè)非常重要,因?yàn)槊看翁峤粫r(shí)都是使用該信息,被寫(xiě)入到git的提交歷史中。

git config --global user.name"xxx"#名稱

git config --global user.email"xxx@qq.com"#郵箱

這里使用的是--global,只需要配置一次,這個(gè)用戶下的所有g(shù)it項(xiàng)目提交時(shí)都會(huì)使用該配置。

注意:git的這個(gè)配置太靈活了,在實(shí)際DevOps的使用中,會(huì)遇到這樣的問(wèn)題:開(kāi)發(fā)人員設(shè)置個(gè)人信息過(guò)于隨便,導(dǎo)致代碼提交記錄中記錄的用戶信息與DevOps用戶體系不一致,在統(tǒng)計(jì)如每個(gè)人的提交記錄時(shí)統(tǒng)計(jì)不上。解決辦法是,在一開(kāi)始就要通過(guò)git pre-commit hook進(jìn)行校驗(yàn),保證用戶信息的一致性。

另一個(gè)經(jīng)常遇到的問(wèn)題是多賬號(hào)共存,在同一個(gè)電腦上,同時(shí)使用github上的賬號(hào)和企業(yè)內(nèi)部的賬號(hào)。可以將用戶信息設(shè)置為--local級(jí)別,比如,github上的git庫(kù)克隆后,進(jìn)入git庫(kù)的目錄下執(zhí)行:

git config --local user.name"xxx"#名稱

git config --local user.email"xxx@qq.com"#郵箱

第四、別名設(shè)置

好多人在使用git命令后的感受是太繁瑣,因?yàn)橐斎胍淮蟠睿總€(gè)命令還不能輸錯(cuò),這是因?yàn)間it并不會(huì)在你輸入部分命令時(shí)自動(dòng)推斷出你想要的命令。如果不想每次都輸入完整的命令,可以通過(guò)git config為每一個(gè)命令設(shè)置一個(gè)別名。

格式為:

git config --global alias.xx command

比如:

gitconfig--globalalias.cocheckout

gitconfig--globalalias.ststatus

gitconfig--globalalias.cicommit

gitconfig--globalalias.logone'log --pretty=oneline' #當(dāng)命令為一組時(shí),加引號(hào)

使用如下:

是不是使用起來(lái)方便了很多。

第五、密碼問(wèn)題

最開(kāi)始接觸這個(gè)問(wèn)題,是由于在企業(yè)內(nèi)部好多人讓我解決代碼庫(kù)無(wú)法clone的問(wèn)題,報(bào)的錯(cuò)誤是:fatal: Authentication failed for 'http://***********‘,并且是在新分配完權(quán)限后報(bào)的問(wèn)題,這讓我很困惑,經(jīng)過(guò)詢問(wèn),用戶之前有使用過(guò)其他賬號(hào)的情況,第一反應(yīng)就是git保存了之前賬號(hào)的信息。

使用git config --list查看git的配置信息,找到存儲(chǔ)密碼的設(shè)置:

credential.helper=manager

重置該配置項(xiàng):

git config --global||--system||--local --unset credential.helper

再次clone時(shí)就會(huì)提示輸入賬號(hào)密碼,克隆成功。

第六、其他

上面是工作中經(jīng)常會(huì)涉及到的問(wèn)題,除此之外可以使用git默認(rèn)值,也可以根據(jù)自己喜好進(jìn)行設(shè)置,比如:顏色設(shè)置,編輯器設(shè)置,diff工具設(shè)置,還有其他很多的配置項(xiàng),可以參考git的官方文檔進(jìn)行查閱:https://git-scm.com/docs/git-config。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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