Практическое руководство по Git для тех, кто начинает с нуля: установка на Windows, macOS и Linux, первый репозиторий, базовый цикл работы и шпаргалка команд. Команды и факты сверены с официальной документацией git-scm.com 3 октября 2026 года.

Базовый цикл и работа с индексом проверены локально в изолированном тестовом репозитории. Установки на всех ОС, внешняя отправка и работа графических клиентов не выполнялись.

Что такое Git и контроль версий

Git — распределённая система контроля версий: программа, которая запоминает историю изменений файлов и позволяет вернуться к любой сохранённой точке. Проект свободный и open source, работает локально, без интернета и регистрации. Номер текущей версии смотрите на официальном сайте; установленный пакет операционной системы может отставать от последнего выпуска.

Контроль версий закрывает три повседневные задачи:

  • история изменений вместо папки файлов «финал_v2_точно_финал»;
  • совместная работа, когда правки нескольких людей не затирают друг друга;
  • эксперименты в отдельных ветках без включения правки в основную ветку. Перед слиянием результат всё равно нужно проверить.
💡
Термины пригодятся сразу. Репозиторий — папка проекта, за которой следит Git. Коммит — сохранённый снимок изменений с описанием. Ветка — независимая линия изменений внутри репозитория.

Установка

Windows. Скачайте установщик Git for Windows со страницы установки или выполните в PowerShell:

winget install --id Git.Git -e --source winget

macOS. Через Homebrew:

brew install git

Если Homebrew уже используется, команда выше устанавливает Git через него. Другой путь — xcode-select --install, которая ставит Git в составе Xcode Command Line Tools. Установку выбранного инструмента выполняйте отдельно; наличие Homebrew здесь не предполагается автоматически.

Linux. Из штатного пакетного менеджера:

# Debian / Ubuntu
sudo apt-get install git

# Fedora
sudo dnf install git

# Arch Linux
sudo pacman -S git

Остальные примеры команд ниже рассчитаны на Bash: в macOS и Linux откройте Терминал, в Windows — установленный вместе с Git терминал Git Bash. Первая команда установки winget выше выполняется в PowerShell.

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

git --version

Ожидаемый ответ — строка вида git version 2.x.y. Номер может отличаться: главное, чтобы команда отвечала версией, а не ошибкой «команда не найдена».

💡
Совет: если после установки терминал отвечает «command not found», закройте и откройте его заново. Путь к Git подхватывается при запуске.

Первичная настройка

Один раз задайте имя и почту. Они подписывают каждый ваш коммит:

git config --global user.name "Ваше Имя"
git config --global user.email "you@example.com"

Проверка: git config user.name и git config user.email должны вывести выбранные значения. Эти сведения сохраняются в коммитах; для публичного проекта проверьте настройки приватности email на GitHub. Флаг --global применяет значения ко всем вашим локальным репозиториям; для отдельного проекта задайте их без этого флага в его папке.

Первый репозиторий и базовый цикл

Создайте папку проекта и превратите её в репозиторий:

mkdir my-project
cd my-project
git init -b main

Ключ -b main явно задаёт начальной ветке имя main. Без него имя зависит от версии Git и настройки init.defaultBranch; не рассчитывайте, что на всех компьютерах оно одинаковое.

Дальше работа идёт циклом из трёх зон:

flowchart LR
    A["Рабочая папка"] -->|"git add"| B["Индекс"]
    B -->|"git commit"| C["История репозитория"]
💡
Индекс (staging area) — промежуточная зона подготовки коммита: сначала вы выбираете, какие изменения войдут в снимок (git add), затем сохраняете их одним коммитом (git commit).

Пройдите цикл на практике:

echo "# Мой проект" > README.md   # создать файл
git status                         # посмотреть состояние
git add README.md                  # добавить файл в индекс
git commit -m "Первый коммит"      # сохранить снимок в историю
git log --oneline                  # посмотреть историю

На первом git status Git покажет README.md как неотслеживаемый файл (untracked). После коммита git log --oneline выведет строку с хешем и сообщением «Первый коммит», а git status ответит nothing to commit, working tree clean. Это наблюдаемый признак успеха.

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

Промпт:

Я хочу сохранить первый локальный снимок учебной папки в Git. Подготовь только план. Команды не выполняй, GitHub не подключай.

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

ОС и терминал: [система и оболочка].
Git: [проверенный вывод git --version или «не проверен»].
Учебная папка: [путь без приватных данных].
Состояние: [есть ли здесь или в родительской папке репозиторий; текущая ветка и подготовленные изменения, если известны].
Учебные файлы: [имя и назначение каждого, без содержимого секретов].
В снимке должны быть: [точный список].
Не трогать и не добавлять: [список].

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

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

Добавляй в план только названные файлы, без массового добавления. Не перезаписывай существующие файлы. Покажи, как перед коммитом проверить имена и содержимое индекса, а после — состав сохранённого коммита и оставшиеся локальные изменения. Состояние всей папки не обязано стать чистым.

Назови признаки остановки и способ сохранить исходники. Не предлагай reset, restore, удаление .git, отправку на сервер или переписывание истории. Локальный коммит сам по себе не доказывает наличие независимой резервной копии.

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

Сопоставьте список планируемых файлов со своим списком. Перед реальным коммитом прочитайте подготовленные изменения; после проверьте сохранённый состав.

Запрос готовит план. Он не проверяет ваш компьютер и не выполняет команды; неизвестное состояние папки нужно выяснить отдельно.

Ветки

Ветка позволяет попробовать идею, не трогая рабочую версию:

git switch -c idea    # создать ветку idea и перейти в неё
# правите файлы, делаете коммиты
git switch main       # вернуться в main
git merge idea        # влить изменения из idea в main

Команда git branch показывает список веток; текущая отмечена звёздочкой. Если git switch в вашей версии Git недоступен, используйте пару git checkout -b idea и git checkout main.

Удалённый репозиторий и GitHub

Git сам по себе локален: вся история живёт в папке проекта. Чтобы хранить копию на сервере и работать в команде, репозиторий размещают на хостинге: GitHub, GitLab или аналоге. Базовая связка из трёх команд:

КомандаЧто делает
git clone <url>Скачивает репозиторий с хостинга на компьютер
git pullПолучает изменения и интегрирует их в текущую ветку по настройкам
git pushОтправляет ваши коммиты на сервер

Регистрация на GitHub, создание репозитория и первый Pull Request разобраны по шагам в отдельном руководстве: GitHub для новичков: регистрация, репозиторий, Git и Pull Request.

⚠️
Внимание: git push --force перезаписывает историю на сервере и может стереть чужие коммиты. В общем репозитории не используйте эту команду.

GUI-клиенты

Командная строка — не единственный вариант. Официальный список клиентов на git-scm.com насчитывает несколько десятков приложений. Например, в каталоге перечислены следующие клиенты. Перед установкой проверьте поддерживаемую ОС и условия лицензии на официальном сайте выбранного продукта:

КлиентДля чего посмотреть
GitHub DesktopОсновные операции Git и работа с GitHub через окно приложения
SourceTreeРабота с репозиториями через графический интерфейс
GitKraken DesktopПросмотр истории и совместная работа
TortoiseGitРабота с Git из интерфейса Windows
ForkПросмотр изменений, веток и истории
SmartGitРабота с Git через отдельное приложение

Полный список смотрите на странице git-scm.com/downloads/guis. В экосистеме Git есть утилиты git-gui и gitk; их наличие в вашей установке зависит от пакета. Кроме того, редакторы кода вроде VS Code показывают базовые операции Git прямо в интерфейсе.

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

Шпаргалка базовых команд

КомандаЧто делаетПример
git init -b mainСоздать репозиторий в текущей папкеgit init -b main
git statusПоказать состояние файловgit status
git addДобавить файл в индексgit add README.md
git commit -mСохранить снимок с сообщениемgit commit -m "Добавил README"
git log --onelineПоказать историю коммитов в одну строкуgit log --oneline
git switch -cСоздать ветку и перейти в неёgit switch -c idea
git mergeВлить ветку в текущуюgit merge idea
git restoreВосстановить рабочий файл из индекса; отменяемые правки будут потеряныgit restore README.md
git cloneСкопировать репозиторий с сервераgit clone https://github.com/OWNER/REPO.git
git pullПолучить и интегрировать измененияgit pull
git pushОтправить коммиты на серверgit push

В примере clone замените OWNER/REPO владельцем и именем настоящего репозитория из его адреса. Условные слова не обозначают готовый проект.

Полезные сценарии

Начать свой проект под контролем версий

Задача: вы начинаете проект и хотите историю изменений с первого дня. Условие: установленный Git. Действия: git init -b main в папке проекта, затем первый коммит по циклу из раздела «Первый репозиторий и базовый цикл». Результат: git log --oneline показывает первый коммит. Ограничение: Git не отслеживает пустые папки. Чтобы исключить лишнее, создайте файл .gitignore и перечислите в нём то, что не должно попадать в историю: логи, временные файлы, node_modules.

Присоединиться к существующему проекту

Задача: получить локальную копию проекта, который уже лежит на хостинге. Действия: git clone <url>, затем cd в появившуюся папку и git log --oneline. Результат: вся история проекта доступна локально. Ограничение: для приватных репозиториев потребуется доступ; настройка ключей и токенов описана в руководстве по GitHub по ссылке выше.

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

Задача: нужно отменить незакоммиченные изменения конкретного отслеживаемого файла. Сначала прочитайте git diff -- <файл> и сохраните нужный фрагмент отдельно. Затем git restore <файл> восстановит рабочий файл из индекса. Если индекс совпадает с последним коммитом, это вернёт ту редакцию. Проверьте содержимое и git status. Команда уничтожает отменяемые изменения рабочей копии и не снимает уже подготовленную в индексе правку; состояние всего проекта не обязано стать чистым. Для отмены отправленного коммита обычно рассматривают отдельный git revert по правилам команды.

Что делать, если что-то пошло не так

  • «Команда git не найдена» — Git не установлен или терминал не перезапущен после установки.
  • При коммите Git требует имя и почту — выполните настройку из раздела «Первичная настройка».
  • Команда git push отклонена — прочитайте точную ошибку. Причиной могут быть новые коммиты, недостаток прав или правила ветки. При расхождении истории сначала сохраните свои правки, получите сведения через git fetch и выберите принятый в проекте способ интеграции. Не выполняйте pull и повторную отправку вслепую.
  • В историю попал лишний файл — не удаляйте репозиторий. Историю можно исправить, но начните с копии папки и чтения git log.

Проверка результата

Пройдите три пункта:

  • git --version отвечает номером версии;
  • git config user.name и git config user.email возвращают ваши данные;
  • в учебном репозитории git log --oneline показывает хотя бы один коммит, а git status пишет working tree clean.

Если выполняются все три, базовая установка и настройка завершены.

Источники

Следующий шаг

Логичное продолжение — разместить репозиторий на хостинге и научиться работать с ним в команде: GitHub для новичков: регистрация, репозиторий, Git и Pull Request.

Если вы настраиваете рабочий процесс с кодом в команде или подключаете к репозиториям ИИ-агентов, контроль версий — первый слой, с которого начинается порядок.

Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov