Shell
可以跨多個儲存庫設置 git 配置嗎?
Git 似乎支持三個級別的配置值:
- 每個系統的全域設置(儲存在
/etc/git-core
)- 每個使用者的全域設置(儲存在
~/.gitconfig
)- 每個儲存庫的本地設置(儲存在
$REPO/.git/config
)這些選項涵蓋了大部分基礎,但我正在尋找一種處理第四級的方法。我有一個(非常)大的儲存庫集合,我需要為其使用與
user.email
平時不同的值。這些儲存庫通常是通過自動化腳本創建和操作的,並且為每個儲存庫設置本地設置很麻煩。所有有問題的儲存庫都位於我本地系統上的某個路徑前綴下。有沒有辦法在某個地方設置一個配置值,該值將由該路徑下的所有儲存庫繼承?(有點像
.htaccess
設置一直沿文件系統繼承。)也許有一種方法可以在全域配置文件中設置條件值?在 UNIX 環境中可以進行哪些其他安排來處理像我這樣的一組儲存庫?
我發現沒有辦法在這第四級配置 git。唯一的方法似乎是使用
git -c key=value
.我目前的 hacky 解決方案是定義一個 shell 函式作為 git 的包裝器。呼叫時,它將參數傳遞給系統 git 命令,但在檢查目前工作目錄並向命令添加額外參數(如果適用)之前不會。
function git () { case "$PWD" in /path/to/repos/*) command git -c user.email=alternate@credentials.org "$@" ;; *) command git "$@" ;; esac }