Git平台使用時的配置分析


Git倉庫的配制文件分為三個部分:

1. .git/config:指定倉庫配置(特定於某個倉庫),獲取或設置時使用--file參數(或者省去)。

2. ~/.gitconfig:用戶級別倉庫配置(適用用於特定用戶下的所有倉庫),獲取或設置時使用--global參數。

3. /etc/gitconfig:系統級別倉庫配置(適用於所有倉庫),獲取或設置時使用--system參數。

覆寫關系為:小范圍覆蓋大范圍屬性;自上到下,作用范圍越大。

在使用Git過程中,需要設置許多定制化的配置;比如:email、name、顯示、輸入等等。這些配置均寫到上述文件中,且使用不同的指令會修改不同位置的文件,也就產生不同的范圍。

下面分為不同的主題,講述Git中涉及到的不同設置。

主題1:設置相關的系統屬性、指令輸入等配置

獲取當前倉庫的所有系統設置:

james@james-PC MINGW64 /d/GitDemo $ git config -l 
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true help.format=html
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
diff.astextplain.textconv=astextplain
rebase.autosquash=true credential.helper=manager
user.name=ZHANGEfeng-james
user.email=zfengwust3054@163.com
core.autocrlf=false

取消設置指令:

james@james-PC MINGW64 /d/GitDemo/public_html (master) $ git config --unset --global user.email 
james@james-PC MINGW64 /d/GitDemo/public_html (master) $ git config -l core.symlinks=false core.autocrlf=true core.fscache=true color.diff=auto color.status=auto color.branch=auto color.interactive=true help.format=html http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt diff.astextplain.textconv=astextplain rebase.autosquash=true credential.helper=manager user.name=ZHANGEfeng-james core.autocrlf=false core.repositoryformatversion=0 core.filemode=false core.bare=false core.logallrefupdates=true core.symlinks=false core.ignorecase=true

設置指令別名:

james@james-PC MINGW64 /d/GitDemo/public_html (master) $ git config --global alias.st status 
james@james-PC MINGW64 /d/GitDemo/public_html (master) $ git st On branch master nothing to commit, working tree clean james@james-PC MINGW64 /d/GitDemo/public_html (master) $ git config --global alias.ci commit
james@james-PC MINGW64 /d/GitDemo/public_html (master) $ git config --global alias.lg log james@james-PC MINGW64 /d/GitDemo/public_html (master) $ git lg

commit 8bac1e803752ec07728a8a702043cfdae9370eac
Author: ZHANGEfeng-james <zfengwust3054@163.com>
Date: Sat Dec 3 21:12:14 2016 +0800
testOtherName to test
commit 908c2e3a0bcc23486887700214f451b00afeb07b Author: ZHANGEfeng-james <zfengwust3054@163.com> Date: Sat Dec 3 21:02:13 2016 +0800 move test to testOtherName

上述設置結果,執行git lg等價於執行git log。

主題2:Git的忽略文件配置

Git版本控制中可通過配置.gitignore文件,將文件中的模式文件排除在Git管理之外。

.gitignore文件(一般會和.git目錄在同一級)示例內容如下:

bin
gen
.classpath
.project
*.properties

若配置.gitignore文件為上述內容,Git將會排除下述情況:所有的bin、gen目錄(包含本目錄下的bin\gen,以及任何的子目錄bin\gen等);后綴為classpath、project以及properties的文件。

.gitignore文件的配置語法如下:

1. 以斜杠“/”結尾,表示目錄;

2. 以星號“*”,表示多個通配符;

3. 以問號“?”,表示單個通配符;

4. 以嘆號“!”,表示不忽略(跟蹤)匹配到的文件或目錄;

此外,git對於.gitignore匹配文件是按行從上到下進行規則匹配的,意味着如果前面的規則匹配的范圍更大,則后面則不會生效。

舉例:

1. fd1/*,說明:忽略fd1目錄下的全部內容

2. /fd1/*,說明:忽略根目錄下的/fd1/目錄的全部內容;

3. bin:說明:忽略bin目錄下的所有內容;不管是.../bin/目錄下的內容還是/bin/目錄下的內容都將被忽略

依照上述的忽略文件制作方式,可以制作同樣的一份文件名為:.gitignore_global,其內容同上述。

並在包含.git/的工程中執行以下指令(如下指令確實需要執行,否則 Git 怎么知道使用忽略文件呢?):

git config --global core.excludesfile ~/.gitignore_global

也就是將全局忽略文件都設置為同一份:.gitignore_global;其中~/.gitignore_global為忽略文件所在路徑。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM