Глиф Учебники

Урок 2. Установка и настройка Git

Курс «Git» · урок 2 из 9 · 5 минут чтения

В этом уроке Git появится на вашем компьютере и получит минимальную настройку — без неё он не даст сделать первый коммит. Займёт это минут десять.

Установка

Способ установки зависит от системы.

Windows

Скачайте установщик Git for Windows с официального сайта git-scm.com (на странице загрузки — Windows). Для обычного компьютера нужен 64-битный установщик (64-bit), для компьютеров на процессорах ARM — arm64.

Установщик задаёт много вопросов. Для начала подходят предложенные варианты, внимания стоят два:

  • редактор по умолчанию — Git открывает его, когда нужно написать или поправить сообщение коммита. По умолчанию это Vim, который новичку непривычен. Если не знаете Vim, выберите в списке знакомый редактор — например, Nano, Notepad++ или Visual Studio Code;
  • имя первой ветки в новых репозиториях — можно сразу указать main, как принято сейчас.

Вместе с Git ставится Git Bash — терминал с оболочкой bash и привычными командами Linux. Его можно открыть из меню «Пуск» или из контекстного меню папки. В курсе команды показаны для Git Bash: так они одинаковы во всех системах. Команды самого Git работают и в PowerShell, и в обычной командной строке.

Есть и установка одной командой — через winget, менеджер программ Windows 10 и 11: winget install --id Git.Git -e --source winget. Сайт git-scm.com предупреждает, что этот пакет поддерживает не проект Git for Windows, поэтому он может отставать от свежей версии.

Дальше: «Проверьте установку»

Linux

Git есть в наборах программ (репозиториях пакетов) всех распространённых дистрибутивов Linux. Ubuntu, Debian, Linux Mint:

Bash
sudo apt update
sudo apt install git

Fedora:

Bash
sudo dnf install git

Дальше: «Проверьте установку»

macOS

Проще всего набрать в Терминале git --version: если Git нет, macOS предложит установить инструменты командной строки разработчика (Command Line Tools), в которые он входит. То же делает команда xcode-select --install. Если стоит менеджер пакетов Homebrew — brew install git.

Проверьте установку

Откройте терминал (в Windows — Git Bash) и наберите:

Терминал
$ git --version
git version 2.43.0

Номер у вас может быть другим — для курса подойдёт любой Git 2.23 и новее. Если в ответ command not found или «не является внутренней или внешней командой», закройте и снова откройте терминал: он мог запуститься раньше, чем закончилась установка.

Представьтесь Git

Каждый коммит подписывается именем и почтой автора. Пока они не заданы, Git откажется делать коммит. Задайте их один раз для всех репозиториев:

Bash
git config --global user.name "Ivan Petrov"
git config --global user.email "ivan@example.com"

Подставьте свои данные. Имя можно писать по-русски, но латиницей оно одинаково читается в любой программе. Почта нужна не для писем: по ней сервисы вроде GitHub связывают коммиты с вашей учётной записью.

Ваши настройки user.name=Ivan Petrov user.email=ivan@example.com задаются один раз каждый коммит Author: Ivan Petrov <ivan@example.com> видно всем, у кого есть копия Имя и почта не заданы Author identity unknown — коммит не создаётся
Имя и почта задаются один раз и попадают в строку Author каждого коммита, а без них Git пишет Author identity unknown и коммит не создаёт.

Имя и почта попадают в каждый коммит и видны всем, кто получит копию репозитория. Если не хотите показывать настоящий адрес, у GitHub и GitLab есть адреса-заглушки для коммитов — их показывают в настройках почты учётной записи.

Имя основной ветки

Сейчас основную ветку принято называть main. Чтобы новые репозитории сразу создавались с ней:

Bash
git config --global init.defaultBranch main

Без этой настройки Git называет первую ветку master, а свежие версии ещё и выводят длинную подсказку при каждом git init. Ничего страшного в этом нет, но в курсе ветка называется main.

Редактор для сообщений

Если при установке выбран Vim или вы в Linux, где Git берёт редактор, заданный в системе, задайте привычный редактор:

Bash
git config --global core.editor "nano"

Для Visual Studio Code — git config --global core.editor "code --wait": ключ --wait велит Git ждать, пока вы закроете вкладку с сообщением.

Если Vim всё-таки открылся, выйти из него просто: нажмите Esc, наберите :wq и Enter — сохранить и выйти, или :q! и Enter — выйти без сохранения.

Где хранятся настройки

Ключ --global пишет настройку в файл пользователя ~/.gitconfig (в Windows — C:\Users\<имя>\.gitconfig, где <имя> — имя вашего пользователя Windows). Без ключа настройка действует только в текущем репозитории и пишется в его .git/config — так задают, например, рабочую почту для рабочего проекта. Посмотреть свои настройки:

Терминал
$ git config --global --list
user.name=Ivan Petrov
user.email=ivan@example.com
init.defaultbranch=main
Для всех репозиториев git config --global файл ~/.gitconfig user.name=Ivan Petrov user.email=ivan@example.com init.defaultbranch=main Репозиторий todo своих настроек нет user.email=ivan@example.com действуют общие настройки Рабочий проект без --global — в файл .git/config user.email=ivan@work.example.com здесь почта своя — вместо общей
Настройки с ключом --global лежат в ~/.gitconfig и действуют во всех репозиториях, а настройка без ключа пишется в .git/config одного проекта и заменяет там общую — например, рабочая почта.

Одну настройку показывает git config user.name. Справка по любой команде — git help commit или короткая подсказка git commit -h.

В Windows: предупреждение про LF и CRLF

В Windows строки текстовых файлов заканчиваются иначе, чем в Linux и macOS (CRLF и LF). Git for Windows по умолчанию сам переводит концы строк, и при git add иногда пишет: warning: in the working copy of 'file.txt', LF will be replaced by CRLF the next time Git touches it. Это предупреждение, а не ошибка: файл добавлен, ничего делать не нужно.

Коротко

Проверьте себя

1. Что будет, если не задать user.name и user.email?
2. Что делает ключ --global в команде git config?
3. Как выйти из Vim, сохранив сообщение коммита?
4. Зачем при настройке VS Code как редактора нужен ключ --wait?