2010-08-28 50 views
7

我與Git有點結合。我試圖執行git commit但我需要能夠~/.gitconfig1~/.gitconfig2之間等維護到是否有一個命令行開關 - 或反正有Git使用不同的gitconfig文件,然後在/etc/gitconfig~/.gitconfig.git/config發現的呢?如何指定自定義全局gitconfig路徑?

+0

你真的需要兩個不同的配置,而在一個回購?你可以使用每個回購的.git/config來獲得你想要的?如果你只有兩種常見的設置來傳播幾十個回購券,我想這不是很優雅嗎? – Cascabel 2010-08-29 04:24:41

+0

@Jefromi是的,我願意。這是一個獨特的情況,我遇到了需要兩個配置的地方 – 2010-08-29 15:03:32

+2

另一個明顯的選擇是將全局別名'git commit-v2'(或更短的)替換爲'!export GIT_AUTHOR_NAME =「Second name」; git commit'。 – Cascabel 2010-08-29 15:43:08

回答

12

我找到了一種方法來執行此操作 - 雖然不夠高雅,但確實奏效 - 迄今爲止,似乎是實現這一目標的唯一方法。

Git使用HOME路徑來確定.gitconfig是哪裏。我是能夠執行這樣的事情:

/home/marco/.silly/.gitconfig 
/home/marco/.stupid/.gitconfig 
/home/marco/.gitconfig 

和執行git的承諾(這是需要.gitconfig唯一的命令),當我推翻了回家路。

HOME=/home/marco/.silly/ git commit -m "silly configuration" 

然後,您可以使用別名來做到這一點很容易

alias sillygit="HOME=/home/marco/.silly/ git" 
sillygit commit -m "silly stuff" 
+0

尼斯破解。我似乎無法找到任何真正的方法來做到這一點 - 有一個GIT_CONFIG環境變量,但它隻影響'git config'本身,就像它的'-f, - file'選項一樣。 – Cascabel 2010-08-29 15:38:28

0

man git-config告訴我使用-f標誌來傳遞配置文件。然而,它似乎不適用於git config以外的其他命令,所以我認爲您必須在提交之前調用它,輕鬆完成別名。

+0

這只是告訴特定的git-config調用什麼文件來讀取或寫入 - 它不會影響任何其他命令,據我所知。 – Cascabel 2010-08-29 04:23:01

+0

正確 - 這不起作用。 – 2010-08-29 15:03:49

-3

可以使用--git-DIR

git --git-dir /home/marco/silly/.git commit ... 
+0

--git-dir設置正在編輯的存儲庫,這是提問者特別試圖避免的。 – 2012-10-28 12:40:32

0

馬里奧Ceppi的alias approach可以在一個稍微更優雅的方式來使用使用-c config=value參數到git

$ alias sillygit="git -c user.name=Silly -c [email protected]" 
$ sillygit commit 

這當然假設你不介意在你的.bashrc或類似的地方保留不同的配置密鑰,而不是你的.gitconfig,並且它有破解shell完成的警告。

相關問題