『現學現忘』Git基礎 — 11、配置Git使用者簽名的方式

繁華似錦Fighting發表於2022-04-19

1、配置Git簽名

(1)語法

$ git config 配置檔案作用域 user.name '使用者名稱'
$ git config 配置檔案作用域 user.email '郵箱地址'

示例如下:

配置 user.name和user.email
$ git config --global user.name ‘your_name'
$ git config --global user.email ‘your_email@domain.com'

注意:這個email一定是有效的,是你能夠收得到郵件的email

(2)配置系統使用者簽名

可在任意目錄下執行建立命令:git config --system

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit
$ git config --system user.name 'tang_s'

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit
$ git config --system user.email 'tang_s@126.com'

提示:在Git中,沒有提示就是最好的提示。

系統使用者註冊資訊會寫在本地Git的安裝目錄下,...\etc\gitconfig檔案中。

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit
$ cat /f/DevInstall/Git/GitforWindows/etc/gitconfig
[diff "astextplain"]
        textconv = astextplain
[filter "lfs"]
        clean = git-lfs clean -- %f
        smudge = git-lfs smudge -- %f
        process = git-lfs filter-process
        required = true
[http]
        sslBackend = openssl
        sslCAInfo = F:/DevInstall/Git/GitforWindows/mingw64/ssl/certs/ca-bundle.crt
[core]
        autocrlf = true
        fscache = true
        symlinks = false
[credential]
        helper = manager
[user]
        name = tang_s
        email = tang_s@126.com

提示:之前的Git版本中,gitconfig檔案是在,Git安裝目錄下mingw64目錄中的etc/gitconfig

(3)配置全域性使用者簽名

可在任意目錄下執行建立命令:git config --global

# 在任何位置執行都可以
# 執行這個配置表示你這臺機器上所有的Git倉庫都會使用這個配置,
# 當然也可以對某個倉庫指定不同的使用者名稱和Email地址(本地使用者)。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit
$ git config --global user.name 'sun_wk'

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit
$ git config --global user.email 'sun_wk@126.com'

全域性使用者註冊的資訊,會寫到當前使用者目錄下.gitconfig檔案中。

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit
$ cat /c/Users/L/.gitconfig
[user]
        name = sun_wk
        email = sun_wk@126.com

(4)配置本地使用者簽名

本地庫使用者只能在當前的本地庫目錄下執行該命令:

# 注意如果是配置local配置檔案簽名,可以省略--local引數
$ git config --local user.name 'sha_hs'
$ git config --local user.email 'sha_hs@126.com'

注意:

執行上邊命令,要在一個倉庫中執行,否則會提示你:

fatal: --local can only be used inside a git repository

還有--local選項只能在Git倉庫中使用。

演示:

# 此時learngit目錄不是一個本地Git倉庫
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit
$ git config --local user.name ''
fatal: --local can only be used inside a git repository

# 初始化learngit目錄為Git本地倉庫
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit
$ git init
Initialized empty Git repository in J:/git-repository/learngit/.git/

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)

# 配置本地使用者簽名
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config --local user.name 'sha_hs'

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config --local user.email 'sha_hs@126.com'

本地使用者註冊資訊,會寫到當前版本庫目錄下的.git目錄中的config檔案中。

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ cat .git/config
[core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        symlinks = false
        ignorecase = true
[user]
        name = sha_hs
        email = sha_hs@126.com

注意:

  • 簽名設定的使用者名稱和郵箱,主要作用就是區分不同開發人員的身份。
  • 這裡設定的簽名和登入遠端庫,也就是程式碼託管中心的賬號、密碼沒有任何關係。
  • Email地址沒有要求和使用者名稱一致,甚至Email地址不存在都沒事。
  • 但是在實際工作中,這個Email一定是有效的,是你能夠收得到郵件的Email。

2、檢視三個配置檔案的使用者簽名

通過命令的方式檢視三個配置檔案的使用者簽名。

(1)語法

  • 執行git config命令,來檢視各作用域配置檔案中的配置資訊。(這個命令在任何路徑下都能執行)
  • 只執行git config命令,會顯示git config命令所有的可用引數。
  • 執行git config --list命令,檢視當前系統中Git的所有配置,三個配置檔案所有的配置都顯示出來。
  • 檢視指定指定配置檔案的內容:
    執行語句 說明
    $ git config --list --local 檢視專案/倉庫級別的配置檔案資訊
    $ git config --list --global 檢視使用者級別配置檔案資訊
    $ git config --list --system 檢視系統級別配置檔案資訊

(2)檢視專案/倉庫級別的配置檔案資訊(local)

需要進入到一個倉庫中,執行$ git config --list --local命令,才能顯示該倉庫的配置資訊。否則會出現提示fatal: --local can only be used inside a git repository--local選項只能在Git倉庫中使用。

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository
$ git config --list --local
fatal: --local can only be used inside a git repository

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository
$ cd learngit/

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config --list --local
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
user.name=sha_hs
user.email=sha_hs@126.com

提示:

執行$ git config --list --local命令時, Git會讀取倉庫中.git目錄下的.git/config配置檔案,該檔案含有當前倉庫的配置資訊。

# 檢視.git目錄
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ ll .git/
total 7
-rw-r--r-- 1 L 197121 176  4月  2 22:43 config
-rw-r--r-- 1 L 197121  73  4月  2 22:41 description
-rw-r--r-- 1 L 197121  23  4月  2 22:41 HEAD
drwxr-xr-x 1 L 197121   0  4月  2 22:41 hooks/
drwxr-xr-x 1 L 197121   0  4月  2 22:41 info/
drwxr-xr-x 1 L 197121   0  4月  2 22:41 objects/
drwxr-xr-x 1 L 197121   0  4月  2 22:41 refs/

# 檢視.git/config檔案中的內容
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ cat .git/config
[core]
     repositoryformatversion = 0
     filemode = false
     bare = false
     logallrefupdates = true
     symlinks = false
     ignorecase = true
[user]
     name = sha_hs
     email = sha_hs@126.com

(3)檢視使用者/全域性級別的配置檔案資訊(global)

在任何位置執行$ git config --list --global命令即可。

# 任何目錄下執行都可以
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config --list --global
user.name=sun_wk
user.email=sun_wk@126.com

注意:

如果我們是新安裝的Git,還沒有配置過global作用域內的配置資訊,global級別的配置檔案是沒有的,只有我們配置一次global級別的配置資訊,配置檔案才會生成。

image

fatal: unable to read config file 'C:/Users/L/.gitconfig': No such file or directory:提示你無法讀取配置檔案'C:/Users/L/.gitconfig':沒有此類檔案或目錄。

提示:

當我們配置過global作用域中的資訊後,C:/Users/L/中的.gitconfig檔案出現了。

image

執行git config --list --global命令後,檢視的就是C:/Users/L/.gitconfig檔案中的內容。

(4)檢視系統級別的配置檔案資訊(system)

在任何位置執行$ git config --list --system命令即可。

演示:

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository
$ git config --list --system
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=F:/DevInstall/Git/GitforWindows/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
credential.helper=manager
user.name=tang_s
user.email=tang_s@126.com

提示:

該命令讀取的配置檔案所在的位置是,Git安裝目錄下的etc目錄中的gitconfig檔案。

檢視gitconfig檔案中的內容,與上邊顯示的內容是對應的。

(5)檢視當前系統中Git的所有配置資訊

執行git config --list命令,檢視當前系統中Git的所有配置,上面三個配置檔案所有的配置都顯示出來。

示例:

# 如果沒有再本地倉庫中執行該命令,只顯示系統使用者和全域性使用者配置檔案中的資訊
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository
$ git config --list
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=F:/DevInstall/Git/GitforWindows/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
credential.helper=manager
user.name=tang_s    # 系統使用者簽名
user.email=tang_s@126.com
user.name=sun_wk	# 全域性使用者簽名
user.email=sun_wk@126.com

# 如果在本地倉庫中執行該命令,三種使用者配置檔案的資訊都會顯示出來
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository
$ cd learngit/

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config --list
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=F:/DevInstall/Git/GitforWindows/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
credential.helper=manager
user.name=tang_s    # 系統使用者簽名
user.email=tang_s@126.com
user.name=sun_wk  	# 全域性使用者簽名
user.email=sun_wk@126.com
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
user.name=sha_hs	# 本地使用者簽名
user.email=sha_hs@126.com

3、總結

  • 在本地Git的安裝目錄下,etc\gitconfig檔案:是對登陸該作業系統的所有使用者都普遍適用的配置。若使用git config命令時加上--system選項,讀寫的就是這個檔案中的內容。
  • 當前作業系統使用者目錄下.gitconfig檔案:該配置檔案只適用於該使用者,該使用者可以配置Git使用者簽名等資訊到這個配置檔案中,是對這臺計算機上所有的Git倉庫適用。若使用git config命令時加上--global選項,讀寫的就是這個檔案中的內容。
  • Git本地倉庫中.git/config檔案:當前專案的Git本地倉庫中的配置檔案,檔案中的配置僅僅針對當前專案倉庫有效。

提示:每一個級別的配置都會覆蓋上層的相同配置。(local覆蓋global覆蓋system

相關文章