Git之多个用户ID适配
生活随笔
收集整理的這篇文章主要介紹了
Git之多个用户ID适配
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、前言
- Git 是一個(gè)分布式版本控制軟件,最初目的是為更好地管理 Linux 內(nèi)核開(kāi)發(fā)而設(shè)計(jì)。很多著名的軟件都使用 Git 進(jìn)行版本控制,其中包括 Linux 內(nèi)核、X.Org 服務(wù)器和 OLPC 內(nèi)核等項(xiàng)目的開(kāi)發(fā)流程:
-
- Git –distributed-is-the-new-centralized
-
- Tweak your Git config for multiple user IDs
二、背景分析
- Git 的 git config 命令可以為 Git 設(shè)置用戶(hù)名、郵箱等全局選項(xiàng)和配置。其有很多選項(xiàng)和配置,其中一個(gè)就是 includeIf 選項(xiàng),它能夠幫助我們?cè)趽碛卸鄠€(gè) Git 用戶(hù)的時(shí)候可以靈活的切換到對(duì)應(yīng)的用戶(hù)上,且使用起來(lái)非常方便。
- 比如說(shuō),在工作時(shí)間需要處理公司的工作,不管是 GitHub 也好,還是 GitLab 也罷,同時(shí)我們又在業(yè)余的時(shí)間為開(kāi)源項(xiàng)目提交代碼做貢獻(xiàn),在這種情況下,肯定不想在這兩種不同的情況下使用一個(gè)共同的配置,肯定是希望在不同的情況下使用不同的配置,尤其是當(dāng)我們只有一臺(tái)計(jì)算的話(huà)。
三、選項(xiàng)使用
- 在 2017 年,Git 新發(fā)布的版本 2.13.0 包含了一個(gè)新的功能 includeIf 配置,可以把匹配的路徑使用對(duì)應(yīng)的配置用戶(hù)名和郵箱。其中 includeIf.condition.path 變量,是 include 配置指令的一部分,其允許通過(guò)條件過(guò)濾的方式設(shè)置屬于我們自己的自定義配置。includeIf 指令支持三個(gè)子關(guān)鍵字,分別是:gitdir、gitdir/I 和 onbranch。
① gitdir
- 關(guān)鍵字 gitdir:后面的內(nèi)容用于全局匹配(golb模式),如果 Git 目錄與模式匹配,則滿(mǎn)足 include 條件。Git 倉(cāng)庫(kù)的配置,可以由程序自己發(fā)現(xiàn)或者通過(guò) GIT_DIR 環(huán)境變量來(lái)配置。該模式下,可以使用標(biāo)準(zhǔn)的通配符之外,還附加了兩個(gè)額外的通配符,分別是 **/ 和 /** 兩種,它們用于匹配多個(gè)路徑。
- 如果該模式以~/ 開(kāi)頭的話(huà),~ 將被環(huán)境變量 HOME 的內(nèi)容所替代;如果模式以 ./ 開(kāi)頭的話(huà),它將被包含當(dāng)前配置文件的目錄替換。
- 如果該模式不以 ~/ 開(kāi)頭的話(huà),則 ./、/ 和 **/ 將自動(dòng)預(yù)置。例如,將匹配模式從 foo/bar 變?yōu)?**/foo/bar 的話(huà),將匹配 /any/path/to/foo/bar。如果模式以 / 結(jié)束的話(huà),** 將被自動(dòng)被添加到其尾部。再例如,設(shè)置模式默認(rèn)為 foo/ 的話(huà),將變成 foo/** 這樣。換句話(huà)說(shuō),它遞歸地匹配 foo 和里面的所有內(nèi)容。
② gitdir/I
- 關(guān)鍵字 gitdir/I:這與 gitdir 相同,只是匹配是大小寫(xiě)不敏感的,例如在不區(qū)分大小寫(xiě)的文件系統(tǒng)上。
③ onbranch
- 關(guān)鍵字 onbranch:后面的數(shù)據(jù)被認(rèn)為是一個(gè)模式,該模式下,可以使用標(biāo)準(zhǔn)的通配符之外,還附加了兩個(gè)額外的通配符,分別是 **/ 和 /** 兩種,它們用于匹配多個(gè)路徑。如果在工作樹(shù)中,當(dāng)前簽出的分支的名稱(chēng)與模式匹配,則滿(mǎn)足 include 條件。
- 如果模式以 /結(jié)束的話(huà),** 將被自動(dòng)添加。例如,設(shè)置模式默認(rèn)為 foo/ 的話(huà),將變成 foo/** 這樣,它匹配所有以 foo/ 開(kāi)頭的分支,如果分支是按層次結(jié)構(gòu)組織的,并且希望將配置應(yīng)用于該層次結(jié)構(gòu)中的所有分支,那么這是非常有用的。
四、內(nèi)容配置
① 全局配置文件
- ~/.gitconfig 里面原有的 user 部分需要?jiǎng)h除掉;
- ~/.gitconfig 里面的 includeIf 后面的 path 需要以 / 結(jié)尾;
- 個(gè)人項(xiàng)目目錄和公司項(xiàng)目目錄需要是非包含關(guān)系,即非父子目錄等。
② 個(gè)人項(xiàng)目配置文件
$ cat ~/.git/.gitconfig-github [user]name = yourname-selfemail = yourname-self@gmail.com③ 公司項(xiàng)目配置文件
$ cat ~/.git/.gitconfig-working [user]name = yourname-selfemail = yourname-self@gmail.com總結(jié)
以上是生活随笔為你收集整理的Git之多个用户ID适配的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python之字符串的134个常用操作
- 下一篇: Git之变基方式Rebase的使用