Глобальная конфигурация Git с git config --global

17 декабря 2025
Автор

Олег Марков

Введение

Глобальная конфигурация Git через команду git config --global — это механизм, который позволяет один раз задать общие настройки для всех ваших репозиториев на конкретной машине.

Вы настраиваете имя, почту, редактор, формат вывода логов, поведение при слияниях, алиасы команд и многие другие параметры — и вам не нужно повторять это в каждом новом проекте. Git будет автоматически применять эти настройки везде, где вы работаете.

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


Что такое git config и уровни конфигурации

Три уровня конфигурации Git

Git хранит настройки на трех уровнях:

  1. Системный (system)
    Файл конфигурации действует для всех пользователей и всех репозиториев на машине.
    Обычно это:

    • Linux macOS: /etc/gitconfig
    • Windows: C:\ProgramData\Git\config или путь в каталоге установки Git
  2. Глобальный (global)
    Файл конфигурации для конкретного пользователя на машине.
    Расположение:

    • Linux macOS: ~/.gitconfig или ~/.config/git/config
    • Windows: C:\Users<имя_пользователя>.gitconfig
  3. Локальный (local)
    Файл конфигурации для конкретного репозитория.
    Расположение:

    • Внутри репозитория: .git/config

Git объединяет эти уровни по приоритету:
local > global > system.
То есть, если вы настроили один и тот же параметр на нескольких уровнях, будет использоваться значение с наибольшим приоритетом — чаще всего локальный.

Как работает git config --global

Флаг --global говорит Git: "Измени настройки в конфигурации текущего пользователя".
То есть вы работаете именно с файлом ~/.gitconfig (или его аналогом в вашей системе).

Например, команда:

git config --global user.name "Ivan Petrov"
# Здесь мы задаем глобальное имя пользователя для коммитов

запишет параметр user.name в глобальный конфигурационный файл. Теперь это имя будет использоваться по умолчанию во всех репозиториях, где вы не переопределили его локально.


Где хранится глобальная конфигурация и как ее посмотреть

Проверка пути к конфигурации

Смотрите, я покажу вам простой способ узнать, где именно Git хранит глобальный конфиг на вашей машине:

git config --global --list --show-origin
# --show-origin показывает путь к файлу, откуда взяты параметры

Пример вывода:

file:/home/user/.gitconfig  user.name=Ivan Petrov
file:/home/user/.gitconfig  user.email=ivan@example.com
file:/home/user/.gitconfig  core.editor=vim

Здесь вы видите:

  • источник (file:/home/user/.gitconfig)
  • ключ (user.name)
  • значение (Ivan Petrov)

Просмотр всего глобального конфига

Чтобы просто увидеть все глобальные настройки:

git config --global --list
# Покажет только параметры из глобального файла

Если вы хотите увидеть полную картину (со всех уровней):

git config --list --show-origin
# Выводит параметры из system, global и local уровней с указанием источника

Базовые глобальные настройки: имя и почта

Почему это важно

Git использует user.name и user.email для формирования данных о каждом коммите. Эти значения попадают в историю репозитория и используются:

  • при просмотре логов
  • при анализе авторства строк (git blame)
  • при работе с внешними сервисами (GitHub, GitLab, Bitbucket и др.)

Если вы не зададите глобальные значения, Git может:

  • выдавать предупреждение при каждом коммите
  • подставить некорректное значение по умолчанию (например, системное имя пользователя)

Настройка имени и почты

Давайте разберемся на примере.

git config --global user.name "Ivan Petrov"
# Здесь мы задаем глобальное имя автора коммитов

git config --global user.email "ivan.petrov@example.com"
# Здесь мы задаем глобальный email автора коммитов

После этого любые коммиты в новых репозиториях будут использовать эти значения.

Вы можете проверить текущие настройки так:

git config --global user.name
# Печатает только значение user.name

git config --global user.email
# Печатает только значение user.email

Если вам нужно переопределить имя или почту только в одном проекте (например, рабочий email в рабочем репозитории), вы используете локальный уровень:

git config --local user.email "ivan.petrov@company.com"
# Записываем email только в .git/config текущего репозитория

В этом случае:

  • в этом репозитории будет использоваться ivan.petrov@company.com
  • в остальных — глобальное значение ivan.petrov@example.com

Глобальный конфиг и редактор по умолчанию

Зачем настраивать редактор

Git запускает внешний редактор для:

  • ввода сообщения коммита (если вы не указали -m)
  • редактирования сообщений при rebase
  • написания merge сообщений и т.п.

По умолчанию это может быть vim или даже что-то неожиданное. Чтобы не удивляться, лучше явно задать подходящий редактор глобально.

Настройка редактора

Примеры для разных редакторов.

Vim

git config --global core.editor "vim"
# Задаем Vim как редактор по умолчанию

Nano

git config --global core.editor "nano"
# Задаем более простой консольный редактор

Visual Studio Code

git config --global core.editor "code --wait"
# --wait говорит VS Code не закрывать процесс, пока вы не закроете файл

Комментарий важен: без --wait Git решит, что вы сразу закрыли редактор, и не даст вам нормально отредактировать сообщение.

Другие редакторы

git config --global core.editor "subl -n -w"
# Sublime Text -n открывает новое окно, -w ждет закрытия

Формат вывода и поведение Git: полезные глобальные параметры

Теперь давайте перейдем к другим часто используемым глобальным настройкам, которые упрощают ежедневную работу.

Цветной вывод

Чтобы команды git status, git diff, git log и другие выглядели более наглядно, стоит включить цвет:

git config --global color.ui auto
# Git будет использовать цвета, если вывод идет в терминал

Вы также можете настроить цвета подробнее, но для начала auto более чем достаточно.

Удобный вывод статуса

Многие разработчики предпочитают "короткий" статус:

git config --global status.short true
# Включает короткий формат git status (флаги по двум символам для файлов)

git config --global status.branch true
# Показывает текущую ветку и статус относительно удаленной ветки

Однако стоит учитывать, что git status -sb и так дает короткий формат. Глобальная настройка просто делает это поведением по умолчанию.

Игнорирование прав на файлы (особенно для Windows и WSL)

Если вы работаете, например, между Windows и Linux, Git может видеть изменения прав доступа на файлы, даже если вы ничего не меняли. Чтобы это не мешало, многие настраивают:

git config --global core.filemode false
# Git не будет считать изменения прав файла изменением содержимого

Глобальные алиасы (alias) команд

Одна из самых полезных возможностей глобальной конфигурации — создание коротких псевдонимов для часто используемых команд. Они хранятся в секции alias глобального конфига.

Примеры полезных алиасов

Смотрите, я покажу вам несколько популярных вариантов, которые многие используют.

git config --global alias.st "status -sb"
# git st -> git status -sb (короткий статус с веткой)

git config --global alias.co "checkout"
# git co main -> git checkout main

git config --global alias.br "branch"
# git br -> git branch

git config --global alias.cm "commit -m"
# git cm "message" -> git commit -m "message"

git config --global alias.df "diff"
# git df -> git diff

git config --global alias.lg "log --oneline --graph --decorate --all"
# git lg -> удобный графический лог в одну строку на коммит

Давайте посмотрим, что происходит в примере с lg:

git lg
# Запускается git log --oneline --graph --decorate --all
# --oneline  - компактный вывод
# --graph    - псевдографика с ветками
# --decorate - показывает имена веток и теги
# --all      - отображает все ветки

Такой формат очень удобен для понимания структуры истории.

Как отредактировать алиас вручную

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

Например:

nano ~/.gitconfig
# Открываем глобальный конфиг в nano

Пример содержимого:

[user]
    name = Ivan Petrov
    email = ivan.petrov@example.com

[core]
    editor = code --wait

[alias]
    st = status -sb
    lg = log --oneline --graph --decorate --all

Комментарии:

  • [user] — секция с данными пользователя
  • [core] — базовые настройки Git
  • [alias] — ваши алиасы команд

Настройки переноса строк и окончаний строк (Windows и Linux)

Одна из частых проблем — различия в символах конца строки между Windows и Unix-системами:

  • Linux macOS: \n (LF)
  • Windows: \r\n (CRLF)

Git умеет автоматически конвертировать окончания строк при коммите и checkout. Глобальная настройка здесь играет важную роль.

Рекомендации по core.autocrlf

Если вы работаете на Windows

Обычно рекомендуют:

git config --global core.autocrlf true
# При checkout   Git превращает LF в CRLF
# При commit     Git превращает CRLF обратно в LF

Так в репозитории хранятся "чистые" LF, а у вас в редакторе — привычные CRLF.

Если вы работаете на Linux или macOS

Лучше отключить автоматическую конвертацию:

git config --global core.autocrlf input
# При commit Git будет превращать CRLF в LF
# При checkout Git не будет трогать окончания строк

Если вы хотите вообще не трогать переносы строк

git config --global core.autocrlf false
# Git не будет автоматически менять окончания строк

Безопасность и глобальные настройки: credential.helper

Глобальная конфигурация также часто используется для настройки хранения учетных данных (логин пароля или токена доступа к удаленным репозиториям).

Настройка помощника учетных данных

Например, на Windows Git часто предлагает:

git config --global credential.helper manager-core
# Использует Git Credential Manager для безопасного хранения паролей

На macOS это может быть:

git config --global credential.helper osxkeychain
# Хранит учетные данные в системном хранилище macOS

На Linux (или в простых конфигурациях):

git config --global credential.helper cache
# Кэширует учетные данные в памяти на ограниченное время

Или даже:

git config --global credential.helper "cache --timeout=3600"
# Хранить данные в памяти 1 час (3600 секунд)

Комментарии:

  • глобальная настройка здесь очень удобна: одна команда — и во всех репозиториях не нужно постоянно вводить логин/пароль
  • при этом важно понимать, где именно и как хранятся ваши данные (особенно на общих машинах)

Работа с несколькими профилями: глобальный против локального

Частая ситуация: у вас есть личный GitHub аккаунт и рабочий корпоративный GitLab. Вы хотите:

  • в личных проектах использовать ivan.petrov@gmail.com
  • в рабочих — ivan.petrov@company.com

Глобальная конфигурация обычно задает "базовый" профиль, а локальные настройки переопределяют его там, где это нужно.

Пример настройки

  1. Настраиваем личный глобальный профиль:
git config --global user.name "Ivan Petrov"
git config --global user.email "ivan.petrov@gmail.com"
  1. В рабочем репозитории переопределяем email:
cd /path/to/company/repo
# Переходим в рабочий репозиторий

git config user.email "ivan.petrov@company.com"
# Без --global -> это локальная настройка только для этого репозитория

Теперь:

  • в рабочем репозитории коммиты будут идти с рабочим email
  • в остальных проектах — с личным

Проверка, какие значения реально используются

Вы можете проверить, какие параметры Git учитывает в текущем репозитории:

git config user.name
git config user.email
# Покажут итоговые значения с учетом всех уровней

Чтобы увидеть, откуда именно взято значение:

git config --show-origin user.email
# Покажет источник (global или local файл)

Как изменять и удалять глобальные настройки

Иногда нужно не просто добавить новую настройку, но и изменить или удалить старую.

Изменение значения

Повторная установка того же параметра просто перезапишет старое значение:

git config --global user.name "Ivan P."
# Старое значение user.name будет заменено новым

Удаление параметра

Если вы хотите удалить параметр из глобальной конфигурации:

git config --global --unset user.email
# Удаляем user.email из глобального файла

Если параметр может быть указан несколько раз (например, для списков), и вы хотите удалить все значения:

git config --global --unset-all alias.lg
# Удаляет все вхождения alias.lg

Редактирование всего глобального файла в редакторе

Если вам удобнее править конфиг целиком:

git config --global --edit
# Откроет глобальный .gitconfig в редакторе, который указан в core.editor

Комментарии:

  • это безопасный способ редактировать файл, потому что Git сам выберет нужный редактор и путь
  • вы можете руками поправить секции [user], [core], [alias] и другие

Практический пример: настройка "стартового" окружения Git

Давайте соберем все вместе и сделаем пример базовой глобальной конфигурации, которую многие разработчики используют на новой машине.

# 1. Данные пользователя
git config --global user.name "Ivan Petrov"
git config --global user.email "ivan.petrov@example.com"

# 2. Редактор по умолчанию
git config --global core.editor "code --wait"

# 3. Цветной вывод
git config --global color.ui auto

# 4. Алиасы
git config --global alias.st "status -sb"
git config --global alias.co "checkout"
git config --global alias.br "branch"
git config --global alias.cm "commit -m"
git config --global alias.lg "log --oneline --graph --decorate --all"

# 5. Окончания строк (пример для Windows)
git config --global core.autocrlf true

# 6. Помощник учетных данных (пример для Windows)
git config --global credential.helper manager-core

Теперь вы увидите, что работа с Git во всех новых и существующих репозиториях на этой машине станет более предсказуемой и удобной.


Диагностика проблем с глобальной конфигурацией

Иногда кажется, что глобальные настройки "не работают". Давайте разберем типичные причины и способы проверки.

Настройка переопределена локально

Самая частая причина: в локальном .git/config прописано другое значение.

Проверьте:

git config --show-origin user.email
# Покажет путь к файлу, откуда взято значение

Если там .git/config, значит локальная настройка переопределяет глобальную.

Решение:

  • либо удалите или измените параметр локально
  • либо оставьте так, если это осознанное решение (например, разные профили)

Вы редактируете не тот файл

Бывает, что вы руками редактируете ~/.gitconfig, а Git на самом деле использует ~/.config/git/config.

Проверьте:

git config --global --list --show-origin
# Смотрите, какой файл реально используется как глобальный

Используйте git config --global --edit, чтобы гарантированно попасть в правильный файл.

Ошибка в синтаксисе конфигурационного файла

Файл .gitconfig имеет формат INI. Если вы вручную редактируете его и допустили ошибку (не закрыли кавычки, неправильно написали секцию), Git может начать игнорировать часть настроек.

Пример корректного файла:

[user]
    name = Ivan Petrov
    email = ivan.petrov@example.com

[core]
    editor = code --wait
    autocrlf = true

Если вы сомневаетесь, временно переименуйте файл и создайте настройки заново командами git config --global ..., чтобы Git сам сформировал правильную структуру.


Заключение

Глобальная конфигурация Git через git config --global — это основной инструмент для создания удобного и предсказуемого окружения разработчика.

Вы один раз задаете:

  • имя и почту, которые будут видны во всех коммитах
  • редактор по умолчанию
  • формат вывода и поведение Git
  • алиасы для часто используемых команд
  • параметры переноса строк
  • помощников для хранения учетных данных

и получаете одинаковые настройки во всех репозиториях на конкретной машине.

Важно помнить, что:

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

Если вы будете аккуратно относиться к глобальной конфигурации и осознанно выбирать, какие параметры задавать глобально, а какие — локально, Git станет заметно удобнее и понятнее в ежедневной работе.


Частозадаваемые технические вопросы по теме и ответы

1. Как сделать так, чтобы разные репозитории использовали разные глобальные настройки без постоянного ручного изменения?

Вы можете использовать параметр includeIf в глобальном конфиге. Пример:

[includeIf "gitdir:~/work/"]
    path = ~/.gitconfig-work

Комментарии:

  • все репозитории внутри ~/work/ будут дополнительно читать настройки из ~/.gitconfig-work
  • в ~/.gitconfig-work можно задать, например, рабочий email и алиасы

Создайте отдельный файл:

# ~/.gitconfig-work
[user]
    email = ivan.petrov@company.com

2. Как посмотреть значение параметра одновременно на всех уровнях конфигурации?

Используйте:

git config --show-origin --get-all user.email
# Покажет все значения user.email и файлы, откуда они взяты

Так вы увидите, что задано на system, global и local уровнях.

3. Как экспортировать свои глобальные настройки Git на другой компьютер?

Скопируйте файл глобальной конфигурации на новый компьютер:

  1. На старой машине:
cp ~/.gitconfig /path/to/usb_or_cloud/.gitconfig
# Копируем глобальный конфиг во временное место
  1. На новой машине:
cp /path/from/usb_or_cloud/.gitconfig ~/.gitconfig
# Возвращаем файл в домашний каталог

После копирования проверьте путь к редактору (core.editor) и другим привязанным к системе настройкам.

4. Как настроить глобальный шаблон .gitignore для всех репозиториев?

Сначала создайте файл, например ~/.gitignore_global, затем добавьте туда общие правила:

# ~/.gitignore_global
*.log
.DS_Store
Thumbs.db

Теперь скажите Git использовать этот файл глобально:

git config --global core.excludesfile "~/.gitignore_global"
# Git будет применять эти правила во всех репозиториях

5. Как временно игнорировать глобальные настройки для одной команды?

Вы можете явно задать нужный параметр в командной строке, чтобы переопределить глобальное значение только для одного запуска. Пример:

git -c user.email="temp@example.com" commit -m "Test"
# Только для этого коммита будет использован указанный email

Флаг -c добавляет или переопределяет параметр конфигурации для одной конкретной команды, не изменяя файлы настроек.

Стрелочка влевоПросмотр настроек Git через git config --list - практическое руководствоНастройка email в Git - git config user.emailСтрелочка вправо

Постройте личный план изучения Git до уровня Middle — бесплатно!

Git — часть карты развития Frontend

  • step100+ шагов развития
  • lessons30 бесплатных лекций
  • lessons300 бонусных рублей на счет

Бесплатные лекции

Все гайды по Git

Открыть базу знаний

Лучшие курсы по теме

изображение курса

Основы Git

Антон Ларичев
AI-тренажеры
Гарантия
Бонусы
иконка звёздочки рейтинга4.9
3 999 ₽ 6 990 ₽
Подробнее
изображение курса

TypeScript с нуля

Антон Ларичев
AI-тренажеры
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.8
3 999 ₽ 6 990 ₽
Подробнее
изображение курса

Next.js - с нуля

Антон Ларичев
AI-тренажеры
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.7
3 999 ₽ 6 990 ₽
Подробнее

Отправить комментарий