git修改提交的使用者名稱和Email
阿新 • • 發佈:2019-02-13
針對一個git倉庫
2) git config --global 針對一個使用者
3) sudo git config --system 針對一個系統,因為是針對整個系統的,所以必須使用sudo
1) 第一種預設當前目錄是一個git倉庫,假設我們有一個倉庫叫git_test,它所修改配置儲存在git_test/.git/config檔案,如果當前目錄不是一個有效的git倉庫,在執行一些命令時會報錯,例如:
$git config -e
fatal: not in a git directory
我們來看一個簡單的例子,一般我們clone一個git倉庫,預設都是一個工作目錄,那麼對應的配置變數 bare = false。來看一個很簡單的倉庫的config檔案,cat git_test/.git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
如果我們想修改bare為false,最簡單的辦法就是直接用vim開啟git_test/.git/config檔案進行修改,另一種辦法就是使用git config來修改
$git config core.bare true
$cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = true
logallrefupdates = true
命令的格式就是 git config. 。需要注意的是我們沒有加--system和--global,那麼這個修改只針對於當前git倉庫,其它目錄的倉庫不受影響。
2) 第2種是適用於當前使用者,也就是說只要是這個使用者操作任何git倉庫,那麼這個配置都會生效,這種配置儲存在~/.gitconfig當中,那什麼樣的配置需要放到使用者的配置檔案裡呢,git裡一個最為重要的資訊就是提交者的個人資訊,包括提交者的名字,還有郵箱。當我們在用git提交程式碼前,這個是必須要設定的。顯而易見,這個配置需要放在使用者一級的配置檔案裡。
$git config --global user.name "I Love You"
$git config --global user.email " [email protected]"
$cat ~/.gitconfig
[user]
name = I Love You
email = [email protected]
3) 第3種是適用於一個系統中所有的使用者,也就是說這裡的配置對所有使用者都生效,那什麼樣的配置需要放在這裡呢,比如我們在執行git commit會彈出一個預設的編輯器,一般是vim,那作為系統的管理員,可以將vim設定為所有使用者預設使用的編輯器,我們來看設定的過程
$sudo git config --system core.editor vim
$cat /etc/gitconfig
[core]
editor = vim
我們可以看到它修改的是全域性的配置檔案/etc/gitconfig。
總結:
現在我們就會有一個問題,當我們在不同的配置檔案中,對同一個變數進行了設定,最終哪個會生效呢?或者說誰到底覆蓋誰呢?先來排除一種情況,就是分屬不同的兩個git倉庫的config檔案中的配置是互不影響的, 這個很好理解。那麼要討論是如果一個配置出即出現在/etc/gitconfig,~/.gitconfig以及git_test/.git /config這三個位置時,我們又恰巧要操作git倉庫git_test,那麼生效的優先順序順序是(1)git_test/.git/config,(2)~/.gitconfig,(3)/etc/gitconfig,也就是說如果同一個配置同時出現在三個檔案中時,(1)有效。
那麼為什麼會有這樣的情況發生呢,比如我們前面的有關編輯器設定,系統管理員為所有使用者設定了預設的編輯器是vim,但是並不是每個使用者都習慣用vim, 有些人更青睞於功能更炫的emacs(I hate it,我剛剛接觸linux的時候上來就是用的emacs,讓我這個新手不知所措,但是後來使了vim,覺得更容易上手,而且用的時間長了,對vim瞭解 更深,發現它功能一樣強大,而且它可以算是類unix系統中預設的編輯器),言歸正傳,如果你想用emacs,你就可以將這個配置加入到你 的~/.gitconfig中,這樣它就會覆蓋系統/etc/gitconfig的配置,當然這隻針對於你,其他使用者如果不設定還是會用vim。
$git config --global core.editor emacs
$cat ~/.gitconfig
[core]
editor = emacs
對於git config只介紹到這,其實除了以上講解的部分,它還有很多功能。本文中主要是針對介紹不同範圍內設定的配置的有效範圍,瞭解它之後,當以後需要對 git進行環境配置時,你就明白根據當前配置的性質,明白是該放在git_test/.git/config,還是在~/.gitconfig,又或是在 /etc/gitconfig中,作為一個資深的版本管理者來說,必須要了解以上的區別。
tenyears2022
2012-01-16
2) git config --global 針對一個使用者
3) sudo git config --system 針對一個系統,因為是針對整個系統的,所以必須使用sudo
1) 第一種預設當前目錄是一個git倉庫,假設我們有一個倉庫叫git_test,它所修改配置儲存在git_test/.git/config檔案,如果當前目錄不是一個有效的git倉庫,在執行一些命令時會報錯,例如:
$git config -e
fatal: not in a git directory
我們來看一個簡單的例子,一般我們clone一個git倉庫,預設都是一個工作目錄,那麼對應的配置變數 bare = false。來看一個很簡單的倉庫的config檔案,cat git_test/.git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
如果我們想修改bare為false,最簡單的辦法就是直接用vim開啟git_test/.git/config檔案進行修改,另一種辦法就是使用git config來修改
$git config core.bare true
$cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = true
logallrefupdates = true
命令的格式就是 git config. 。需要注意的是我們沒有加--system和--global,那麼這個修改只針對於當前git倉庫,其它目錄的倉庫不受影響。
2) 第2種是適用於當前使用者,也就是說只要是這個使用者操作任何git倉庫,那麼這個配置都會生效,這種配置儲存在~/.gitconfig當中,那什麼樣的配置需要放到使用者的配置檔案裡呢,git裡一個最為重要的資訊就是提交者的個人資訊,包括提交者的名字,還有郵箱。當我們在用git提交程式碼前,這個是必須要設定的。顯而易見,這個配置需要放在使用者一級的配置檔案裡。
$git config --global user.name "I Love You"
$git config --global user.email "
$cat ~/.gitconfig
[user]
name = I Love You
email = [email protected]
3) 第3種是適用於一個系統中所有的使用者,也就是說這裡的配置對所有使用者都生效,那什麼樣的配置需要放在這裡呢,比如我們在執行git commit會彈出一個預設的編輯器,一般是vim,那作為系統的管理員,可以將vim設定為所有使用者預設使用的編輯器,我們來看設定的過程
$sudo git config --system core.editor vim
$cat /etc/gitconfig
[core]
editor = vim
我們可以看到它修改的是全域性的配置檔案/etc/gitconfig。
總結:
現在我們就會有一個問題,當我們在不同的配置檔案中,對同一個變數進行了設定,最終哪個會生效呢?或者說誰到底覆蓋誰呢?先來排除一種情況,就是分屬不同的兩個git倉庫的config檔案中的配置是互不影響的, 這個很好理解。那麼要討論是如果一個配置出即出現在/etc/gitconfig,~/.gitconfig以及git_test/.git /config這三個位置時,我們又恰巧要操作git倉庫git_test,那麼生效的優先順序順序是(1)git_test/.git/config,(2)~/.gitconfig,(3)/etc/gitconfig,也就是說如果同一個配置同時出現在三個檔案中時,(1)有效。
那麼為什麼會有這樣的情況發生呢,比如我們前面的有關編輯器設定,系統管理員為所有使用者設定了預設的編輯器是vim,但是並不是每個使用者都習慣用vim, 有些人更青睞於功能更炫的emacs(I hate it,我剛剛接觸linux的時候上來就是用的emacs,讓我這個新手不知所措,但是後來使了vim,覺得更容易上手,而且用的時間長了,對vim瞭解 更深,發現它功能一樣強大,而且它可以算是類unix系統中預設的編輯器),言歸正傳,如果你想用emacs,你就可以將這個配置加入到你 的~/.gitconfig中,這樣它就會覆蓋系統/etc/gitconfig的配置,當然這隻針對於你,其他使用者如果不設定還是會用vim。
$git config --global core.editor emacs
$cat ~/.gitconfig
[core]
editor = emacs
對於git config只介紹到這,其實除了以上講解的部分,它還有很多功能。本文中主要是針對介紹不同範圍內設定的配置的有效範圍,瞭解它之後,當以後需要對 git進行環境配置時,你就明白根據當前配置的性質,明白是該放在git_test/.git/config,還是在~/.gitconfig,又或是在 /etc/gitconfig中,作為一個資深的版本管理者來說,必須要了解以上的區別。
tenyears2022
2012-01-16