2009-06-30 64 views
2

我需要使用我以前的Git類似設置才能使用difftool。設置不完全一樣,因爲我偶然刪除了舊的.gitconfig。無法理解如何設置Git的difftool配置

[merge] 
    tool=opendiff 

[mergetool] 
    tool=opendiff 

[difftool] 
    difftool=opendiff 

我在家裏有一個空的.gitconfig。 我仍然可以使用opendiff-tool。 這是一個驚喜,因爲它應該是不可能的。

Git的difftool設置如何在內部工作?

+0

剛剛更新了我的答案,關於更新git設置時選擇的git配置文件。 – VonC 2009-06-30 14:34:48

+0

剛剛更新了我的答案與Mac前綴的值OsX – VonC 2009-06-30 14:59:28

+0

我有我的git外部diff工具設置記錄在:http://stackoverflow.com/questions/267761/what-does-your-gitconfig-contain/596821#596821 這可能會有幫助。讓我知道你是否也希望那個答案包含的腳本作爲讀者的練習。我這樣做是因爲它對於Araxis Merge非常具體。 – Mark 2009-07-01 15:05:30

回答

5

您可以看到complete setup using mergetool and difftool here

如果設置似乎依然是積極的,也可能是因爲它已在全球或者在您的帳戶設置,因爲有三個文件,其中混帳配置將配置選項進行搜索:

$GIT_DIR/config 

庫特定的配置文件。 (文件名當然是相對於存儲庫的根目錄而不是工作目錄。)

~/.gitconfig 

用戶特定的配置文件。在Git的安裝位置也稱爲「全局」配置文件:

$(prefix)/etc/gitconfig 

系統範圍的配置文件。


的Git無論你說這樣可以節省用戶的信息,當你鍵入 'git config' 保存:

git config manual page

文件選項可以是--system之一,--global--file,它們指定值將從哪裏讀取或寫入。
默認值是假設當前存儲庫的配置文件.git/config,除非另有定義,否則使用GIT_DIRGIT_CONFIG

您可以通過命令行選項或環境變量覆蓋這些規則。 --global--system選項將分別限制用於全局或系統範圍文件的文件。
環境變量GIT_CONFIG也有類似的效果,但是你可以指定你想要的任何文件名。

可能是您在之前的安裝中設置了該環境變量?

GIT_CONFIG 

從給定文件取代.git/config的配置。使用「--global」選項可將其強制爲~/.gitconfig。使用「--system」選項可將其強制爲$(prefix)/etc/gitconfig

注:爲Mac OSX,$(prefix)/usr/local(如果安裝的Git爲described here

make prefix=/usr/local all 
sudo make prefix=/usr/local install 
which git 
3

你也(除了記憶有關的許多地方的Git搜索的配置,如response by VonC陳述)要記住git-difftoolgit-mergetool都提供了一些自動檢測/自動發現(以某種固定的優先順序),您可以使用哪些工具。

可能是爲什麼「git difftool」在您的計算機上調用opendiff。