如何防止在 gitconfig 文件中自動插入您的 Git 使用者名和電子郵件地址?
我是 Linux 世界和 git 的新手。我最近通過創建一個名為“dotfiles”的 Git 儲存庫來設置版本控制來管理我的 dotfiles。但是,每當我送出任何更改時,都會要求我輸入 Git 使用者名和密碼,然後我的使用者名和電子郵件地址會自動插入到
.gitconfig
該部分下的文件中user
。目前,這很好,因為 Git ‘dotfiles’ 儲存庫是私有的,但在未來,我可能會將這個儲存庫公開。如果是這樣,我不希望我的使用者名和電子郵件地址顯示在.gitconfig
. 我該如何防止這種情況發生?我注意到在Matthias Bynens 的
.gitconfig
文件中,沒有user
部分,並且有以下commit
部分:[commit] # https://help.github.com/articles/signing-commits-using-gpg/ gpgsign = true
我還注意到,在Anish Athalye 的
.gitconfig
文件中,沒有commit
部分,但該user
部分包含以下內容:[user] useConfigOnly = true
Git 要求您提供姓名和電子郵件地址才能送出。這些值會插入到您所做的每個送出中,並且它們必須是非空的並且滿足一些基本驗證。按照慣例,這個名字是你的個人名字,但 Git 本身並不需要這個名字,儘管你參與的項目可能需要它。
但是,話雖如此,您根本不必在任何配置文件中提供它們
~/.gitconfig
,甚至不必在任何配置文件中提供它們。Git 會首先讀取環境變數GIT_AUTHOR_NAME
,GIT_AUTHOR_EMAIL
,GIT_COMMITTER_NAME
, 以及GIT_COMMITTER_EMAIL
它們是否存在。但是,通常這不是一個好主意,因為當您使用時它會覆蓋值git commit --amend
,並且您想使用另一種技術。
git-commit(1)
解釋其他選項:如果(某些)這些環境變數未設置,則從配置項中獲取資訊
user.name
,user.email
或者,如果不存在,則從環境變數中獲取,或者,如果未設置,則從/etc/mailname
當該文件不存在時,取自並回退到完全限定的主機名)。
author.name
and及其對應的committer.name
電子郵件選項會覆蓋 user.name 和 user.email(如果已設置),並且會被環境變數覆蓋。典型的用法是只設置
user.name
anduser.email
變數;為更複雜的案例提供了其他選項。我通常會留下我的名字並在我的 shell 配置中進行適當的
user.name
設置。最後,請注意您可以使用不同的配置文件,通常
~/.config/git/config
用於儲存您不想儲存在主文件中的值~/.gitconfig
或簽入到您的 dotfiles 儲存庫。我對像這樣的值執行此操作commit.gpgsign
,因為並非我使用的所有系統都有我的私鑰並且可以簽署送出,因此我是否可以簽署以及我使用什麼密鑰取決於系統。