Куда записать git config --global?

При использовании git config --global для настройки, в какой файл он будет записывать?

Пример:

git config --global core.editor "blah"

Я не могу найти его в следующих местах:

C:\Program Files\Git\etc\gitconfig

C:\myapp\.git\config

Я не установил ENV?

Моя версия Git: 1.6.5.1.1367.gcd48 - в Windows 7


person Ian Vaughan    schedule 22.01.2010    source источник
comment
Вы используете msysgit или что-то еще?   -  person codeguru    schedule 22.01.2010
comment
git config --global --edit должен сообщать вам точное местоположение независимо от того, какие настройки у вас есть - просто посмотрите, какой файл появляется в вашем редакторе.   -  person MatrixFrog    schedule 11.08.2011
comment
git config --global --list также был полезен, когда он не существует, поскольку он давал местоположение, где git ожидает его быть.   -  person AJP    schedule 18.05.2013
comment
Для меня эта команда дает: e -w: e: command not found   -  person blaster    schedule 30.05.2013
comment
@AJP: Это как раз моя проблема, но как изменить место сохранения / чтения ??   -  person Stijn de Witt    schedule 04.02.2014
comment
В случае TortoiseGit, похоже, он получает его из переменных среды ... См. code.google.com/p/tortoisegit/issues/detail?id=1925   -  person Stijn de Witt    schedule 04.02.2014
comment
По теме: Откуда берется конфигурация git?.   -  person    schedule 28.05.2014
comment
В Aptana Studio 3 он находится по следующему адресу:% AptanaStudio3Workspace% \. Metadata \ .plugins \ com.aptana.portablegit.win32 \ etc \ gitconfig   -  person John Sonderson    schedule 24.09.2014
comment
Просто чтобы добавить к комментарию @ MatrixFrog, открыв git config --global --edit, вы, вероятно, попадете в vim. В vim, чтобы получить полный путь к файлу, вы можете ввести :echo expand(':%p') - vim.wikia.com/wiki/Get_the_name_of_the_current_file / а>   -  person user420667    schedule 24.09.2015
comment
Добавляя к комментарию @ user420667, команда на самом деле :echo expand('%p'), то есть без двоеточия внутри вызова expand   -  person Tobbe    schedule 04.07.2017
comment
git config --list --show-origin сообщит вам местоположение   -  person eddyP23    schedule 21.07.2017
comment
git не создает файл автоматически. Файл не существует, пока git не записывает в него впервые. Так где это? Дело в том, что его на самом деле может и не существовать.   -  person Cameron McKenzie    schedule 20.06.2018
comment
Обратите внимание, что в linux strace -fefile перед командой будет отображаться каждый путь, которого она касается, по имени. так strace -fefile git config --global -l.   -  person jthill    schedule 20.02.2020


Ответы (17)


Обновление 2016: с git 2.8 (март 2016 г.) вы можете просто использовать:

git config --list --show-origin

А с Git 2.26 (Q1 2020) вы можете добавить параметр --show-scope

git config --list --show-origin --show-scope

Вы увидите, какая конфигурация и где установлена.
См. Откуда берутся настройки в моей конфигурации Git?

Как указывает Stevoisiak в комментариях,

он будет работать с нестандартными местами установки. (например, Git Portable)

(например, последний _ 4_, который можно распаковать где угодно)


Оригинальный ответ (2010)

Из документации:

--Глобальный

Для параметров записи: писать в глобальный ~/.gitconfig файл, а не в репозиторий .git/config.

Поскольку вы используете Git для Windows, может быть непонятно, какому местоположению это соответствует. Но если вы посмотрите etc / profile (в C:\Program Files\Git), вы увидите:

HOME="$HOMEDRIVE$HOMEPATH"

Имея в виду:

C:\Users\MyLogin

(в Windows 7)

Это означает, что файл находится в папке C:\Users\MyLogin\.gitconfig для Git в Windows 7.

person VonC    schedule 22.01.2010
comment
Я был очень глуп, я не добавил флаг --global к команде редактирования! git config --global --edit показал файл со всеми моими изменениями конфигурации, git config --edit был файлом, который я все время открывал и думал, где тот элемент конфигурации editor / compare / etc, который я только что установил! Большое спасибо. - person Ian Vaughan; 23.01.2010
comment
Спасибо. Я видел другие места, где говорилось, что это% USERPROFILE%. На моем компьютере HOMEDRIVE и HOMEPATH переназначены на сетевой диск. Поиски на моем локальном диске ни к чему не привели. Так что это очень помогло. - person Mike M. Lin; 09.08.2011
comment
Действительно полезно, у меня была такая же проблема - если вы находитесь в домене с подключенным домашним диском, он попытается создать там конфигурацию git. Это будет хороший запрос функции - используйте% HOMEDRIVE% или% USERPROFILE%. - person plasmid87; 18.04.2012
comment
Почему это называется глобальным, если оно предназначено только для одного пользователя? Не было бы (для unix) /etc/gitconfig глобальным, а ~/.gitconfig только локальным ..... и я думаю, .git/config гипер-локальным ----- В принципе, я нахожу глобальный термин для этого запутанным, и мне было интересно, был ли веский повод для номенклатуры? - person Peter Ajtai; 28.04.2012
comment
@PeterAjtai глобальный, потому что он предназначен для всего вашего репозитория. В отличие от локального (только для одного репо) или системного (для всего репо, для всех пользователей) - person VonC; 28.04.2012
comment
Изменение $ HOME, похоже, влияет только на MSysGit при использовании его оболочки Git Bash. Несмотря на то, что перемещенный .gitconfig виден в оболочке, мой клиент PhpStorm запросит user.name и user.email, а затем запишет их в мой каталог Users \ username \. - person nshew13; 30.05.2014
comment
@ N13 Я не использую PhpStorm, но использую msysgit только в cmd, а не в bash. И установка HOME также влияет на git cmd сеанс. - person VonC; 30.05.2014
comment
Если вы используете оболочку Cygwin и Git для Windows, git ищет .gitconfig в ~ /, что не то же самое, если вы используете командную оболочку. И, честно говоря, я избегаю пакетных снарядов, как чумы - person Northstrider; 12.04.2015
comment
См. stackoverflow.com/questions/606483/ о том, как HOME* переменные работают в Windows и как решать проблемы с ними. - person ivan_pozdeev; 04.04.2016
comment
Я не вижу этих файлов на своем компьютере, но полагаю, что ищу не в том месте. Я давно использую git для окон и TortoiseGit, в основном работаю с git bash, без проблем. - person Raj; 18.10.2016
comment
@Raj просто введите git config --list --show-origin: это выведет список фактических файлов, используемых git config на вашем компьютере. - person VonC; 18.10.2016
comment
Оказывается, пользовательские файлы, такие как файлы в репозитории .git, были на другом диске, чем моя установка git, из-за конфигурации ИТ, где я нахожусь. - person Raj; 20.10.2016

Я также искал глобальный .gitconfig на своей машине с Windows и нашел этот изящный трюк с помощью git.

Сделайте: git config --global -e, и тогда, если вам повезет, вы получите текстовый редактор, загруженный с вашим глобальным .gitconfig файлом. Просто найдите папку оттуда (или попробуйте сохранить как ...) и вуаля! :-)

person MAD    schedule 12.07.2013
comment
Именно то, что я искал! команда -e! Потому что редактировать свойство за раз - это не моя цель. - person Patareco; 06.01.2016
comment
Выполнение этой команды также создаст C:\Users\<user_name>\.gitconfig, если он отсутствует. - person pmbanka; 23.05.2016
comment
Я работаю в безоконном режиме и нигде не могу найти местоположение - person Triynko; 09.01.2019

На * nixes это в ~/.gitconfig. Есть ли у вас дома соответствующий файл?

В Windows вы можете ввести git bash

notepad ~/.gitconfig
person Ben    schedule 22.01.2010
comment
То же самое и с окнами. - person Felix Kling; 22.01.2010
comment
Если вы хотите легко добраться до него, напишите псевдоним :) Вот мой: alias gitconfig='open -a Sublime\ Text.app ~/.gitconfig'. Используйте любой текстовый редактор, какой захотите. - person aug; 14.10.2014

Пути для msysgit:

Windows XP -C:\Documents and Settings\<user_name>\.gitconfig

Windows Vista + C:\Users\<user_name>\.gitconfig

person hash    schedule 22.01.2010
comment
Вероятно, лучше описать это как% USERPROFILE%, тогда ответ будет работать для всех версий Windows, прошлых, настоящих и будущих. - person jarmod; 02.05.2013
comment
За исключением того, что я думаю, что на самом деле это% HOMEDRIVE %% HOMEPATH%, как и в других ответах, что во многих случаях равно% USERPROFILE%, но у некоторых из нас есть ИТ-конфигурации, указывающие вместо этого на подключенный диск. - person ojchase; 05.10.2018

Глобальное расположение определяется в Windows MsysGit с использованием переменных среды HOMEDRIVE и HOMEPATH, если вы не определили переменную среды HOME. Подробно в скрипте «профиль».

В моей корпоративной среде HOMEDRIVE - это H :, который затем сопоставляется с сетевым URL \\ share \ $. Затем вся партия отображается как «Мои документы», чего не ожидают другие. Возможно, возникли дополнительные проблемы с преобразованием диска в URL. В любом случае я даже не могу настраивать переменные HOMEDRIVE или HOMEPATH.

В моем случае я определил личную переменную среды HOME и указал ее на D: \ git \ GitHOME и скопировал все эти файлы GIT (без расширения) в каталог GitHOME для безопасного хранения.

Переменные среды Windows можно установить на вкладке «Дополнительно» в диалоговом окне свойств «Мой компьютер».

person Philip Oakley    schedule 20.04.2011
comment
Я просматривал ответы, которые собирались опубликовать по переменным HOMEDRIVE и HOMEPATH, поскольку они просто поймали меня при использовании Bower. Похоже, что несколько утилит в Windows читают из <system>:\User\<username>\.gitconfig, while the Git tool itself saves to % HOMEPATH% \. Gitconfig. I had to go one step further and copy the updated config file from my H: `(наша сеть использует ту же букву диска для этого) в мою локальную пользовательскую папку, только тогда Git правильно использовал правила при вызове Bower. - person ; 24.03.2015
comment
@ZaLiTHkA, в моей корпоративной сети домашний диск пользователя (H :) также переназначен обратно в расположение C: \ User \, поэтому я этого не заметил. Если вы можете определить, какие утилиты FOSS совершают ошибку, то это будет полезной информацией, которая поможет разобраться с отчетами / исправить эти инструменты. Если это внутренние корпоративные инструменты, вы сами по себе ;-) - person Philip Oakley; 25.03.2015
comment
Если это не сложнее, чем простая строка установщика, я не вижу HOME, определенного в сценарии etc \ profile. Кажется, что он все еще действует, как описано, но мне неясно, где сейчас находится HOME. - person ojchase; 05.10.2018
comment
@ojchase Моя часть ответа о том, где написано --glob config, относится конкретно к Windows. Ядро Linux git записывает в такие места, как то, куда направляет XDG штука (то есть я знаю, что Linux записывает в другие места и имеет другие соглашения, и, что важно, у него есть корневой каталог, а в Windows есть `` Диски '' ;-) - person Philip Oakley; 07.10.2018
comment
@PhilipOakley Я тоже имел в виду Windows; извините, я был неясен. Объединив ваш и другие ответы, я ожидал, что в C:\Program Files\Git\etc\profile будет какая-то строка HOME = $HOMEDRIVE$HOMEPATH (или аналогичная), и эта строка, похоже, не существует, но, вероятно, использовалась? Я не смог точно выяснить, что устанавливает $ HOME, если он не установлен переменной окружения, чего я бы предпочел не делать. - person ojchase; 09.10.2018

Если вы используете TortoiseGit на ПК с Windows, вы можете использовать:

Settings / Git / Config / Edit global .gitconfig

чтобы открыть глобальный файл .gitignore.

Но если вы используете компьютер с Windows (7) в домене, каталог вашего профиля может быть сетевым ресурсом (смонтированным как диск). В этом случае TortoiseGit (по крайней мере: 1.6.5.0) указывает вам неправильный каталог (на c: ...). Дополнительную информацию см. В закрытой проблеме 922 TortoiseGit. Или используйте% HOMEDRIVE %% HOMEPATH%, чтобы открыть каталог, содержащий файл .gitignore.

person DanielaWaranie    schedule 05.10.2011

Когда создается глобальный файл .gitconfig?

Во-первых, git не создает автоматически глобальный файл конфигурации (.gitconfig) во время установки. Файл не создается, пока он не будет записан в первый раз. Если вы никогда не устанавливали системную переменную, ее не будет в вашей файловой системе. Я предполагаю, что это может быть источником проблемы.

Один из способов попросить Git создать его - запросить редактирование. Это приведет к принудительному созданию файла.

git config --global --edit

Если вы отслеживаете домашнюю папку пользователя при выполнении этой команды, вы увидите, как волшебным образом появляется файл .gitconfig.

Где хранится конфигурация git?

Вот краткое изложение имени и расположения файлов конфигурации, связанных с тремя областями действия Git, а именно system, global и local:

  • Конфигурация системы Git: файл с именем gitconfig, расположенный в -git-install-location- / ming ‹32> / etc
  • Глобальная конфигурация Git: файл с именем .gitconfig, расположенный в домашней папке пользователя (C: \ Users \ git user)
  • Локальная конфигурация Git: файл с именем config в папке .git локального репо.

Конечно, увидеть - значит поверить, поэтому вот изображение, показывающее каждый файл и каждое местоположение. Я вытащил изображение из статьи, написанной по этой теме.

Расположение файлов конфигурации Windows Git (TheServerSide.com)

Расположение файлов конфигурации Git

person Cameron McKenzie    schedule 18.06.2018
comment
есть четвертое место, называемое переносимой конфигурацией: здесь упоминаются 4 места; Git для Windows поддерживает четыре уровня конфигурации. На самом нижнем уровне находятся параметры конфигурации для конкретного компьютера, известные как переносимые и хранящиеся в% ProgramData% \ Git \ config. - person Badr Elmers; 31.10.2018
comment
С ума сойти! Я собираюсь дополнить статью новой информацией. Ваше здоровье! - person Cameron McKenzie; 01.11.2018

Как отметил @MatrixFrog в своем комментарии, если цель состоит в том, чтобы отредактировать конфигурацию, вы можете запустить:

git config --global --edit

Эта команда откроет файл конфигурации (в данном случае --global) в выбранном редакторе и дождется закрытия файла (как и во время git rebase -i).

person Dima Parzhitsky    schedule 08.05.2019
comment
Вы можете использовать это, чтобы выяснить, где находится глобальный .gitconfig - если ваш редактор сообщает вам, в каком каталоге находится файл. Вы также можете использовать другие переключатели (--system, --local и т. Д.) Для поиска и редактирования других .gitconfig местоположений. . P.S. -e совпадает с --edit - person LightCC; 05.09.2019
comment
Это помогло мне найти, где моя компания хранит файл конфигурации пользователей - person Blood-HaZaRd; 02.09.2020

Я использую SmartGit с msysgit в Windows 8.1 и заметил, что может быть три разных места для gitconfig файл:

%USERPROFILE%\.gitconfig
C:\Program Files (x86)\Git\etc\gitconfig
C:\Program Files (x86)\SmartGitHg\git\etc\gitconfig

Но тот, который используется, - это тот из %USERPROFILE%\.gitconfig.

person Benny Neugebauer    schedule 30.06.2014

Было бы полезно отметить (для платформ * nix): некоторые типы глобальной конфигурации / информации git хранятся в /usr/share/git-core/, например скрипты автозаполнения git и следующие (по умолчанию) хуки:

  • applypatch-msg
  • пост-обновление
  • предварительная фиксация
  • подготовить коммит-сообщение
  • commit-msg
  • предварительное нанесение патча
  • предварительно перебазировать
  • Обновить

Каждый из них может содержать свой собственный набор команд для выполнения во время, описанное их соответствующими именами файлов.

person samstav    schedule 06.05.2013
comment
Бесполезно для вопроса OP. - person orbfish; 14.02.2014

У меня также была проблема с моим глобальным .gitconfig Это на тот случай, если у кого-то тоже есть этот странный

мерзавец сказал:

фатальный: при чтении файлов конфигурации произошла неизвестная ошибка

Сейчас починил. Проблема была вторая .gitconfig в этой папке:

c: \ Users \ myUser.config \ git \ config

Не знаю, откуда взялось ... Но теперь все снова работает как шарм.

person Mane    schedule 14.09.2015

Я запускаю Windows 7 и использую git в качестве установки, следуя инструкциям на GitHub (год или два назад). Я бы подумал, что это довольно распространенный вариант использования. Ни один из приведенных выше ответов не помог мне, и после долгого разочарования я в конце концов нашел свой «настоящий» файл gitconfig в следующем каталоге;

C: \ Users \ Bill \ AppData \ Local \ GitHub \ PortableGit_054f2e797ebafd44a30203088cd 3d58663c627ef \ etc

Очевидно, замените свое имя пользователя и, предположительно, суффикс после PortableGit_ - это уникальный GUID или аналогичный.

person Bill Forster    schedule 23.06.2015
comment
Это только в случае использования GitHub для Windows. - person Snake; 18.07.2017

Я считаю важным опубликовать эту цитату:

Git для Windows поддерживает четыре уровня конфигурации. На самом нижнем уровне находятся параметры конфигурации для конкретного компьютера, известные как «переносимые», и они находятся в «% ProgramData% \ Git \ config». Один из уровней приоритета использует специфические для установки параметры конфигурации, известные как «система», которые находятся в «\ mingw64 \ etc \ gitconfig». Для изменения обоих этих файлов конфигурации обычно требуются повышенные привилегии.

Начиная с использования определенных значений, известных как «глобальная» конфигурация, которую можно найти в «% UserProfile% .gitconfig», мы находим файлы конфигурации, «редактируемые пользователем». Параметры конфигурации с наивысшим приоритетом находятся в "локальной" конфигурации, которую обычно можно найти в ".git \ config".

Он видит рекомендацию в связанном блоге - изменить настройки конфигурации «системы» или «установки», что нормально, но пользователи должны ожидать, что другие установки Git не будут поглощать указанные настройки. Если вам нужны настройки для всей машины, используйте «переносимый» файл конфигурации, в противном случае выберите «глобальные» или «локальные» файлы конфигурации.

Надеюсь, люди найдут эту информацию полезной.

исходный код

person Badr Elmers    schedule 30.10.2018

.gitconfig расположение файла

Тестирование macOS ОК

Глобальный

# global config
$ cd ~/.gitconfig

# view global config
$ git config --global -l

местный

# local config
$ cd .git/config

# view local config
$ git config -l


может быть, бонус для вас : Vim или VSCode за редактирование конфигурации git


# open config with Vim

# global config
$ vim ~/.gitconfig

# local config
$ vim .git/config


# open config with VSCode

# global config
$ code ~/.gitconfig

# local config
$ code .git/config

person xgqfrms    schedule 20.02.2020

Удалите Msysgit и установите Cygwin + Git. Тогда глобальный .gitconfig будет здесь: C: \ cygwin (64) \ home \ [userName] \. Gitconfig.

Теперь вам не нужно беспокоиться о переменной окружения, которая может использоваться другими программами. Например, моя переменная среды указала мне на подключенный диск в моей рабочей среде домена Windows. Я не хочу, чтобы мой глобальный файл .gitconfig находился на моем «домашнем» подключенном диске. Я также не знаю, что может случиться с другими приложениями, которые могут полагаться на эту переменную среды Windows. Операционному отделу может потребоваться, чтобы эта переменная среды была установлена ​​для подключенного диска по какой-то причине.

Также вам не нужно беспокоиться о том, что Mysysgit перезапишет настройки конфигурации вашего «профиля», если вы укажете конкретный путь к глобальному «.gitconfig», используя этот метод.

В общем, спасите себя и используйте оболочку cygwin bash в windows и будьте счастливее

person Northstrider    schedule 06.10.2015

У меня была аналогичная проблема; проблема заключалась в том, что файл .gitconfig находился в

C:\Users\MyLogin\.gitconfig\

(в Windows 7)

Другими словами, файл находился в C:\Users\MyLogin\.gitconfig\.gitconfig, а не в C:\Users\MyLogin\.gitconfig (где Git искал файлы).

person rolandog    schedule 15.04.2016

Я установил свой Git в: C:\Users\_myuserfolder_\AppData\Local\Programs\Git

person KikeSP    schedule 18.07.2019