W systemie Windows 7 (może takim samym lub podobnym dla systemu Windows 10), w przypadku programu Visual Studio i wiersza poleceń Git, Twoja globalna konfiguracja jest następująca:
%USERPROFILE%\.gitconfig
(kropka przed nazwą pliku)
Ale to nie jest honorowane przez Sourcetree, przynajmniej w trybie Git Embedded, a konfiguracja jest następująca:
%USERPROFILE%\AppData\Local\Atlassian\SourceTree\git_local\mingw32\etc\gitconfig
(brak kropki przed nazwą pliku)
(Musiałem zaktualizować oba pliki, aby zmodyfikować moje globalne ustawienia Git dla polecenia Git i Sourcetree.)
Kolejna fajna część. Konfiguracja hooków Git działała z AppData\Local\...
lokalizacji, ale po dalszych badaniach za pośrednictwem Process Monitor zauważyłem, że Sourcetree w jakiś sposób ładuje również globalny dysk firmowy dla mojego użytkownika.
Ma to bardzo mało sensu, ponieważ bardzo niewiele aplikacji wyszukuje tę lokalizację, ale w jakiś sposób Sourcetree to robi, więc jeśli nie możesz zmusić go do pracy według ustawień lokalizacji w Sourcetree, uruchom Process Monitor i utwórz regułę, aby rejestrować tylko ścieżkę zawierającą gitconfig, a ty może znaleźć, gdzie naprawdę jest twoja globalna konfiguracja w przypadku katalogu użytkownika mapowanego na sieć.
I może to nie być nawet wina Sourcetree, ponieważ widzę teraz, pisząc to, że git.exe to ładuje, ale dzieje się tak tylko w przypadku git.exe wykonywanego przez Sourcetree, podczas gdy bezpośredni wiersz poleceń Git używa %USERPROFILE%\.gitconfig
W końcu wziąłem wszystkie wyniki z Process Monitor, wrzuciłem je do SQL Server i uruchomiłem zapytanie, aby uzyskać różne wyniki (bez określonej kolejności wykonywania tylko posortowane według ścieżki):
Nie wiem, jak te konfiguracje odnoszą się do siebie, ale wiem, że niektóre zastępują inne, niektóre ustawienia działają z jednej lokalizacji, a inne z drugiej.
Powyższa lista jest wywoływana przez Sourcetree , ponownie skieruj wiersz poleceń za pomocą Gita wydaje się działać dobrze %USERPROFILE%\.gitconfig
, a tego nie ma na tej liście, ale wyglądałoby tak (w systemie Windows 7)C:\Users\pawel.cioch\.gitconfig
git config --list --show-origin
nie będziesz musiał zgadywać, która konfiguracja git jest gdzie. Zobacz moją odpowiedź poniżej