Де записується git config --global?


1024

При використанні 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


1
Ви використовуєте msysgit чи щось інше?
codeguru

359
git config --global --editмає сказати вам точне місце, незалежно від того, яку установку у вас є - просто подивіться, який файл з’являється у вашому редакторі.
MatrixFrog

55
git config --global --listтакож був корисний для того, коли його не існує, оскільки він вказав місце, де Git очікує його.
AJP

4
@AJP: Це саме моя проблема, але як змінити, де він хоче зберегти / прочитати з нього ??
Штійн де Вітт

1
git config --list - show-origin підкаже вам місце розташування
eddyP23

Відповіді:


1237

Оновлення 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? "

Як Стівен Vascellaro вказує в коментарях ,

він буде працювати з нестандартними місцями встановлення. (тобто Git Portable )

(як-от останнє PortableGit-2.14.2-64-bit.7z.exe, яке можна стискати де завгодно)


Оригінальна відповідь (2010)

З документів :

- глобальний

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

Оскільки ви використовуєте Git для Windows , можливо, не зрозуміло, якому розташуванню це відповідає. Але якщо ви подивитеся на etc / profile (in C:\Program Files\Git), ви побачите:

HOME="$HOMEDRIVE$HOMEPATH"

Значення:

C:\Users\MyLogin

(у Windows 7)

Це означає, що файл є C:\Users\MyLogin\.gitconfigдля Git в Windows 7.


8
Я був справді німим, я не додав прапор "--global" до команди редагування! "git config --global --edit" показав файл з усіма моїми змінами конфігурації, "git config --edit" - це файл, який я відкривав і думав, де цей елемент конфігурації редактора / порівняння / і т.д. я тільки що встановив! Дуже дякую.
Ian Vaughan

6
Дякую. Я бачив інші місця, там сказано, що це% USERPROFILE%. На моєму комп’ютері HOMEDRIVE та HOMEPATH перезавантажені на мережевий диск. Пошуки на моєму місцевому приводі не придумали нічого. Тож це дуже допомогло.
Майк М. Лін

2
Дійсно корисно, у мене виникло те саме питання - якщо ви перебуваєте в домені з картографічним домашнім приводом, він спробує створити там конфігурацію git. Це зробило б гарний запит на використання функції - використовуйте% HOMEDRIVE% або% USERPROFILE%
plazmid87

2
Чому це називається глобальним, якщо він призначений лише для одного користувача? Не став би (для unix) /etc/gitconfig"глобальним" і був би ~/.gitconfigлише "локальним" ..... і я гадаю, .git/config"гіпер-локальний" ----- В основному, я вважаю "глобальним" термін для цього заплутаним, і я цікавилось, чи є вагома причина для номенклатури?
Пітер Айтай

7
@PeterAjtai "глобальний", оскільки він є для всіх ваших сховищ. На відміну від "локальної" (лише для однієї репо) або "системи" (що є для всіх репо, для всіх користувачів)
VonC

123

Я також шукав глобальний .gitconfigна своїй машині Windows і знайшов цей акуратний трюк за допомогою git.

Зробіть: git config --global -eі тоді, якщо вам пощастить, ви отримаєте текстовий редактор, завантажений вашим глобальним .gitconfigфайлом. Просто знайдіть звідти папку (або спробуйте зберегти як ...), et voilà! :-)


Тільки те, що я шукав! команда -e! Оскільки редагування ресурсу за раз просто не є моєю суттю.
Патареко

1
Запуск цієї команди також створить, C:\Users\<user_name>\.gitconfigякщо він відсутній.
пмбанка

Я працюю в режимі без вікна і ніде не можу знайти місце розташування
Трайнко

73

На * nixes, це в ~/.gitconfig . Чи є у вашому домі відповідний файл?

У Windows ви можете ввести git bash

notepad ~/.gitconfig

6
Це має бути те саме на вікнах.
Фелікс Клінг

2
Якщо ви хочете отримати до неї легко, писати псевдонім :) Ось мій: alias gitconfig='open -a Sublime\ Text.app ~/.gitconfig'. Використовуйте будь-який текстовий редактор.
серпня

43

Шляхи для msysgit такі:

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

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


17
Можливо, краще описати це як% USERPROFILE%, тоді відповідь буде працювати для всіх версій Windows, минулого, сьогодення та майбутнього.
jarmod

3
За винятком того, що я думаю, що це насправді% HOMEDRIVE %% HOMEPATH%, як і в інших відповідях, що у багатьох випадках дорівнює% USERPROFILE%, але деякі з нас мають ІТ-конфігурації, які спрямовують його на відображений на карту диск.
ойчасе

34

Глобальне розташування виведено в Windows MsysGit, використовуючи змінні середовища HOMEDRIVE та HOMEPATH, якщо ви не визначили змінну середовища HOME. Докладно описано в сценарії "профіль".

У моєму корпоративному середовищі HOMEDRIVE - це H :, який потім відображається до мережевої URL \\ share \ $. Тоді цілий лот відображається на "Мої документи", де не очікують інші. Можливо, виникли додаткові проблеми з перезапуском URL-адреси. Мені навіть не вдається налагодити змінні HOMEDRIVE або HOMEPATH.

У моєму випадку я визначив особисту змінну середовища HOME і вказав її на D: \ git \ GitHOME і скопіював усі ці файли GIT (які є без розширення) у каталог GitHOME для безпечного зберігання.

Змінні середовища Windows можна встановити на вкладці «Додатково» у діалоговому вікні «Мій комп'ютер».


1
Я прогортав відповіді про публікацію змінних 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.

1
@ZaLiTHkA, У моїй корпоративній мережі домашній привід користувача (H :) - це їх повторне відображення до місця розташування C: \ User \, тому я цього не помічав. Якщо ви можете визначити, які утиліти FOSS роблять помилку, то це буде корисною інформацією для вирішення питання звітування / виправлення цих інструментів. Якщо це внутрішні корпоративні інструменти, ви самостійно ;-)
Філіп Оуклі,

Якщо це не складніше, ніж проста лінія встановлення, я не бачу HOME, визначеного в сценарії etc \ profile. Це все ще, здається, діє так, як описано, але мені незрозуміло, де зараз встановлюється ДОМАШНЄ.
ойчасе

@ojchase Моя частина відповіді, де написано --glob config, пов’язана спеціально з Windows. Основний Linux git пише в такі місця, як куди направляє XDG (тобто я знаю, що Linux пише в інші місця та має інші умовності, і що важливо, у нього є коренева директорія, в той час як Windows має "Drives" ;-)
Philip Оуклі

@PhilipOakley Я теж посилався на Windows; вибачте, що мені було незрозуміло. Поєднуючи вашу відповідь та інші, я очікував, що якийсь HOME = $HOMEDRIVE$HOMEPATH(або подібний) рядок у C:\Program Files\Git\etc\profileцьому рядку, здається, не існує, але, ймовірно, раніше? Я не зміг зрозуміти, що саме встановлює $ HOME, якщо це не встановлено змінною середовища, яку я не вважаю за краще робити.
ойчасе

12

Якщо ви використовуєте TortoiseGit на комп'ютері з Windows, ви можете використовувати:

Settings / Git / Config / Edit global .gitconfig

щоб відкрити глобальний файл .gitignore.

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


10

Я використовую 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.


6

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

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

Кожен з них може містити власний набір команд для виконання у той час, як описано їх відповідними іменами.


2
Не корисно для питання про ОП.
orbfish

5

У мене також були проблеми з моїм глобальним. .gitconfig Це стосується випадку, коли у когось теж є це дивно

git сказав:

фатально: під час читання конфігураційних файлів сталася невідома помилка

Тепер я це виправив. Проблема була другою .gitconfigв цій папці:

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

Я не знаю, звідки це взялося ... Але зараз все знову працює як шарм.


5

Коли створюється глобальний файл .gitconfig?

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

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

git config --global --edit

Якщо ви контролюєте домашню папку користувача при видачі цієї команди, ви побачите файл .gitconfig магічним чином.

Де зберігається конфігурація git?

Ось короткий переклад імені та місця розташування файлів конфігурації, пов’язаних із трьома областями Git, а саме системною , глобальною та локальною :

  • Конфігурація System Git: Файл з назвою gitconfig, розташований у -git-install-location- / ming <32> / тощо
  • Глобальна конфігурація Git: файл з іменем .gitconfig, розташований у домашній папці користувача (C: \ Users \ git user)
  • Конфігурація локального Git: Файл з іменем config у папці .git місцевого репо

Звичайно, бачити - це вірити, тому ось зображення, що показує кожен файл та кожне місцеположення. Я витягнув зображення із статті, яку я написав на тему.

Розташування файлів конфігурації Windows Git (TheServerSide.com)

Розташування файлів конфігурації Git


1
є четверте місце, яке називається портативним конфігурацією: тут вони згадують про 4 місця; Git для Windows підтримує чотири рівні конфігурації. На найнижчому рівні налаштування конфігурації машини, відомі як "портативний", і працює "% ProgramData% \ Git \ config"
Badr Elmers

1
Розум роздутий! Я збираюся оновити статтю новою інформацією. Ура!
Камерон Маккензі

4

Я запускаю Windows 7 і використовую git як налаштування, дотримуючись вказівок на GitHub (рік або два назад). Я вважав би досить поширеним випадком використання. Жодна з вищезгаданих відповідей мені не допомогла, і після багатьох розчарувань я врешті знайшов свій "справжній" файл gitconfig у наступному каталозі;

C: \ Користувачі \ Bill \ AppData \ Local \ GitHub \ PortableGit_054f2e797ebafd44a30203088cd 3d58663c627ef \ тощо

Очевидно, замініть своє ім’я користувача і, імовірно, суфікс після PortableGit_ є унікальним GUID або подібним.


1
Це лише у випадку використання GitHub для Windows.
Змія

3

Я думаю, що важливо опублікувати цю цитату:

Git для Windows підтримує чотири рівні конфігурації. На найнижчому рівні - це налаштування конфігурації для машини, відомі як "портативний" і містить "% ProgramData% \ Git \ config". Один з пріоритетних рівнів - це налаштування конфігурації для установки, відоме як "система", яка працює на "\ mingw64 \ тощо \ gitconfig". Обидва ці конфігураційні файли, як правило, вимагають підвищених привілеїв для зміни.

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

Як бачимо, рекомендація в блозі, пов’язаному з цим, - це змінити специфічні параметри конфігурації "системи" або "встановлення", але це добре, але користувачі повинні очікувати, що інші установки Git не поглинають зазначені налаштування. Якщо ви хочете налаштувати машину на широкому рівні, використовуйте "портативний" файл конфігурації, інакше виберіть "глобальні" або "локальні" файли конфігурації.

Сподіваємось, люди вважають цю інформацію корисною.

джерело


3

Як зазначає @MatrixFrog у своєму коментарі , якщо метою є редагування конфігурації, ви можете запустити:

git config --global --edit

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


Ви можете використовувати це , щоб з'ясувати , де глобальний .gitconfigзнаходиться. - до тих пір , як ваш редактор каже вам , що каталог знаходиться файл в Ви можете також використовувати інші перемикачі ( --system, --localі т.д.) , щоб знайти і редагувати інші .gitconfigмісця. PS -eтакий самий, як--edit
LightCC

1

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

Тепер вам не потрібно турбуватися про змінну середовища, яку можуть використовувати інші програми. Наприклад, мінна змінна середовище вказувала мені на відображення на карті в моєму середовищі робочих вікон Windows. Я не хочу, щоб мій глобальний .gitconfig сидів на моєму "домашньому" карту. Я також не знаю, що може статися з іншими програмами, які можуть покладатися на цю змінну середовища Windows. Операціям підрозділу може знадобитися ця змінна середовище, встановлена ​​для відображеного на диску причин.

Крім того, вам не доведеться турбуватися про те, що Mysysgit замінить налаштування конфігурації вашого профілю, якщо ви вказали певний шлях до глобальної '.gitconfig', використовуючи цей метод.

Загалом, збережіть себе і використовуйте оболонку cygwin bash у windows та будьте щасливішими


1

У мене було подібне питання; проблема полягала в тому, що .gitconfigфайл знаходився в

C:\Users\MyLogin\.gitconfig\

(у Windows 7)

Іншими словами, файл знаходився в C:\Users\MyLogin\.gitconfig\.gitconfig, а не в C:\Users\MyLogin\.gitconfig(саме там Git шукав файли).


1

.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 config


# 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


0

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.