Основы Git-конфигурации

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

📚 Свяжитесь с нами. Хотите узнать, что нового на The Pragmatic Bookshelf? "Подпишитесь на наши новости". Вы будете первыми, кто узнает об авторских выступлениях, книгах в бета-версии, новых книгах в печати и промо-кодах, которые дают вам скидки до 40 процентов.

Каждая установка Git нуждается в настройке. Документация git-config занимает 35 000 слов в новелле. Итак, в серии постов в 2022 году мы рассмотрим множество малоизвестных, но полезных значений конфигурации для Git. Цель этой серии статей — не просто добавить строки в ваш ~/.gitconfig, но и изменить то, как вы работаете с Git, приручив некоторые из его более странных и слегка раздражающих типов поведения по умолчанию.

Установка базовых значений конфигурации Git

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

Как минимум, вы должны установить свои user.name и user.email, которые Git прикрепляет к вашим коммитам:

$ git config --global user.name "Darth Vader"
$ git config --global user.email "[email protected]"

Раньше этого было достаточно. Но, начиная с версии 2.27, Git будет выдавать предупреждение, если вы попытаетесь взаимодействовать с удаленной веткой, изменения которой отличаются от ваших собственных:

warning: Pulling without specifying how to reconcile divergent branches is discouraged. You can squelch this message by running one of the following commands sometime before your next pull:
  git config pull.rebase false  # merge (the default strategy)
  git config pull.rebase true   # rebase 
  git config pull.ff only       # fast-forward only

Мы рассмотрим значения конфигурации pull.rebase и pull.ff и их значение для вас как разработчика в следующем посте. Если вы испытываете сильную тревогу из-за случайного упоминания слова rebase, пока используйте стратегию по умолчанию:

$ git config --global pull.rebase false

И, наконец, начиная с Git версии 2.28, также необходимо установить имя ветки по умолчанию для новых репозиториев, созданных через git init. Раньше по умолчанию было master, от которого Git, GitHub и индустрия в целом уходят из-за его расистских коннотаций. Сам Git предлагает main, trunk или development. Установите свои предпочтения для свойства init.defaultBranch:

$ git config --global init.defaultBranch main

Большой. Конфигурация. Понятно. Но где Git хранит эти значения? Как вы можете проверить, какие значения вы установили? Давайте посмотрим, как проверить значения конфигурации и где Git их хранит.

Проверка значений вашей конфигурации

Команда git config не только устанавливает значения конфигурации.

Вы также можете прочитать значения конфигурации с ним.

Чтобы перечислить ваши значения --global, передайте параметр --list:

$ git config --global --list
user.name=Darth Vader
[email protected]
init.defaultBranch=main 
pull.rebase=false

И если хотите, вы можете добавить еще одну опцию, --show-origin, для вывода исходного файла, содержащего каждое значение:

$ git config --global --list --show-origin file:/home/vader/.gitconfig user.name=Darth Vader
file:/home/vader/.gitconfig [email protected]
file:/home/vader/.gitconfig init.defaultBranch=main
file:/home/vader/.gitconfig pull.rebase=false

Эта информация здесь немного избыточна. Позже в этой серии мы рассмотрим значения конфигурации, хранящиеся на разных уровнях области действия: не только для каждого пользователя (--global), но и на уровне системы и репозитория.

Подводя итоги

В этом посте мы рассмотрели:

  • Настройка user.name и user.email
  • Глобальная установка pull.rebase в false для работы с удаленными ветвями
  • Установка имени ветки по умолчанию
  • Проверка значений конфигурации

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

Также Карл Столли:



«Итак, WebRTC старый или новый?
спросил любопытный студентmedium.com»



Книга Карла Столли Programming WebRTC: Build Real-Time Streaming Applications for the Web доступна в бета-версии на The Pragmatic Bookshelf. Вы можете сэкономить 35 % с промокодомgit_config_2022 до 1 марта 2022 года. Промокоды недействительны при совершении предыдущих покупок.