Git — инструмент для контроля версий, который позволяет отслеживать изменения в проектах, работать в команде и быстро восстанавливать любую версию кода. Хотя существуют графические интерфейсы для работы с Git, именно командная строка остается самым гибким и быстрым способом управления проектами.
Освоив базовые и продвинутые команды, вы сможете свободно создавать ветки, управлять коммитами, синхронизироваться с удаленными репозиториями и исправлять ошибки без лишних усилий.
В этой статье мы подготовили инструкцию-шпаргалку по Git-командам для начинающих.
Установка и настройка Git
Git не входит в стандартный набор программ Windows и macOS. В Linux он иногда предустановлен, но это зависит от конкретного дистрибутива.
Чтобы узнать, установлен ли Git на вашем устройстве, откройте «Терминал» и введите команду:
git --version
Если Git установлен, вы увидите номер его версии:

В противном случае появится сообщение вида:

Или:

Тогда потребуется установить Git.
Установка Git
Способы установки зависят от операционной системы. Выберите подходящий вариант и следуйте инструкциям.
Windows
Самый простой способ — скачать установщик с официального сайта git-scm.com. На сайте доступны три версии:
- стандартная 32-/64-разрядная сборка с последней версией Git;
- автономная версия для установки без подключения к интернету;
- портативный установщик для запуска с флешки.

Во время установки можно оставлять настройки по умолчанию, но важно убедиться, что выбраны следующие параметры:
- Use Git Bash as default shell — выберите Git Bash в качестве оболочки;
- Integrate Git with the Windows Shell — разрешите интеграцию с командной строкой Windows.
Альтернативный способ установки — через встроенный менеджер пакетов Windows:
winget install --id Git.Git -e --source winget
macOS
Для пользователей macOS удобнее всего установить Git через менеджер пакетов Homebrew. Для начала установите Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Затем выполните команду для установки Git:
brew install git
Другие способы установки для macOS подробно описаны на сайте git-scm.com.

Linux
На Linux Git можно установить через стандартный менеджер пакетов вашего дистрибутива. Перейдите на git-scm.com и найдите актуальные команды для вашей системы.

Некоторые примеры:
Debian/Ubuntu:
apt-get install git
Fedora 22+:
dnf install git
OpenSUSE:
zypper install git
FreeBSD:
pkg install git
Первичная настройка Git
После установки Git необходимо выполнить базовую настройку. Откройте «Терминал» (на macOS или Linux) или Git Bash (на Windows) и введите команды для задания имени пользователя и электронной почты. Эти данные будут автоматически добавляться ко всем вашим коммитам.
Укажите имя (латиницей, в кавычках):
git config --global user.name "Name Surname"
Затем добавьте адрес электронной почты:
git config --global user.email "your@email"
Рекомендуется также включить автоматическую поддержку цветов в терминале для более удобного отображения статусов файлов:
bash
git config --global color.ui auto
Проверьте, что настройки сохранены корректно:
git config --list
Вы увидите список всех установленных параметров — в том числе ваше имя и почту.
Полезные команды для навигации в терминале
Работая с Git через командную строку, важно уметь быстро перемещаться между папками, просматривать содержимое каталогов и создавать новые директории.
Базовые команды навигации, которые будут вам полезны:
Команда |
Описание |
pwd |
Показывает полный путь к текущей директории |
ls |
Отображает список файлов и папок в текущем каталоге |
ls -a |
Показывает все файлы, включая скрытые (например, .git) |
cd ~ |
Помогает перейти в домашнюю директорию пользователя |
cd .. |
Помогает перейти на один уровень вверх по структуре каталогов |
cd имя_папки |
Помогает перейти в указанную папку |
mkdir имя_папки |
Создает новую папку с заданным именем |
Основные команды Git для начала работы
1.Создание локального репозитория
Чтобы начать работать с Git, необходимо создать локальный репозиторий — это место, где будет храниться история изменений вашего проекта.
Для этого сначала переместитесь в папку с проектом. Если проект еще не создан, можно создать новую папку с помощью команды:
mkdir имя_папки
Затем перейдите в нужную директорию:
cd имя_папки
Находясь в папке проекта, установите репозиторий командой:
git init
Git создаст в папке скрытую директорию .git, где будет храниться информация о версиях файлов. Вы увидите сообщение об успешной установке репозитория — это значит, что теперь Git начнет отслеживать изменения в проекте.
Если в будущем вам потребуется создать новый репозиторий для другого проекта, просто повторите эту процедуру в нужной папке. Git без проблем работает одновременно с неограниченным количеством репозиториев на одном компьютере.
2. Клонирование существующего репозитория
Если вы хотите изменить уже существующий проект или просто начать с ним работать, вам нужно склонировать его на свой локальный компьютер.
Для этого используется команда:
git clone <repository_url>
Где <repository_url> — это ссылка на удаленный репозиторий (например, на GitHub, GitLab или другом сервере).
Клонирование выполняет сразу несколько действий:
- копирует все файлы проекта;
- переносит полную историю изменений;
- настраивает автоматическую связь с удаленным репозиторием, чтобы вы могли отправлять или получать обновления.
После этого вы сможете работать с проектом локально так же, как с любым другим репозиторием: вносить изменения, коммитить их, создавать ветки и синхронизировать работу с другими разработчиками.
Важно! Коммит в Git — это снимок состояния проекта в определенный момент времени. Когда вы работаете над проектом, вы периодически сохраняете сделанные изменения (например, добавили новый файл, исправили ошибку или переписали код). Эти сохранения и называются коммитами.
3. Подготовка файлов к коммиту
Когда вы создаете новые файлы в проекте, Git сразу отмечает их как неотслеживаемые (untracked). Это значит, что такие файлы не будут автоматически включены в коммит и не попадут в репозиторий без предварительной подготовки.
Чтобы Git начал отслеживать изменения, нужно добавить файлы в индекс — специальную промежуточную область между рабочей директорией и репозиторием.
За это отвечает команда:
git add
После добавления в индекс файлы получают статус подготовленных — staged.
Индекс — это своего рода «черновик», в который вы собираете все изменения, прежде чем сделать коммит. В индекс можно добавить как один файл, так и сразу несколько файлов или даже все изменения в проекте:
Команда |
Описание |
Пример |
git add имя_файла |
Добавляет один указанный файл в индекс |
git add index.html |
git add имя_файла1 имя_файла2 |
Добавляет несколько конкретных файлов |
git add style.css script.js |
git add . |
Добавляет все измененные и новые файлы в каталоге |
git add . |
git add *.расширение |
Добавляет все файлы с определённым расширением (например, .js) |
git add *.py |
Если вам нужно разобраться в возможностях любой команды Git, можно вызвать встроенную справку:
git help название_команды
Например, чтобы узнать больше о git add:
git help add

4. Проверка состояния репозитория
Прежде чем выполнять какие-либо действия в Git, полезно проверить текущее состояние проекта. Это поможет избежать ошибок и конфликтов при коммитах.
Для этого используется команда:
git status
Она показывает:
- какие файлы находятся в индексе и готовы к коммиту;
- какие файлы были изменены, но еще не добавлены в индекс;
- какие новые файлы появились в проекте и пока не отслеживаются Git.
5. Сохранение изменений в репозитории
После того как вы подготовили изменения и добавили файлы в индекс (staged), необходимо сохранить их в истории проекта. За это отвечает команда:
git commit -m "Сообщение коммита"
Команда переносит все изменения из индекса в репозиторий, сохраняя их как отдельный коммит. Таким образом, Git ведет историю изменений вашего проекта.
Сообщение коммита обязательно и служит для краткого описания сути изменений. Хорошее сообщение коммита:
- кратко описывает, что именно изменилось;
- помогает другим разработчикам быстро понять суть изменений;
- облегчает поиск по истории изменений проекта.
Пример хорошего сообщения коммита:
git commit -m "Add new login form"
Если необходимо подробно пояснить сделанные изменения, используйте развернутый формат сообщения. Первая строка будет заголовком (кратким описанием), а последующие строки (после пустой строки) — телом коммита:
git commit -m "Fix login validation issue
Previously, users could log in without password validation.
This commit adds necessary checks to ensure passwords are not empty."
Иногда нужно закоммитить изменения, минуя стадию добавления в индекс. Например, если вы изменили файлы, которые уже были в репозитории, используйте опцию -a:
git commit -am "Fix typo in article"
Если вы случайно ошиблись в сообщении последнего коммита, это легко исправить с помощью опции --amend. Она перезаписывает последнее сообщение коммита:
git commit --amend -m "Correct typo in README.md"
Если не использовать опцию -m, Git откроет текстовый редактор для ввода сообщения. Обычно это Vim, из которого новички не всегда могут быстро выйти. Поэтому чаще используют именно вариант с -m.
6. Просмотр истории изменений
Когда вы активно работаете над проектом, количество коммитов стремительно растет. Чтобы следить за историей внесенных изменений, Git предлагает команду:
git log
Она выводит список всех сделанных коммитов в обратном хронологическом порядке: от самых новых к самым старым. Каждый коммит сопровождается важной информацией:
- уникальный хеш коммита;
- имя и почта автора коммита;
- дата и время внесения изменений;
- сообщение, описывающее суть изменений.
Пример вывода стандартного журнала:
$ git log
commit 3f6f9e1f58e30e0d3a0d0ab764c0b30a5b621d4a
Author: John Doe <johndoe@example.ru>
Date: Thu Apr 21 10:26:52 2025 +0300
Update README.md
commit acd1e81729dc2ee2dc107ba345fa1ab7e6cfbff9
Author: Jane Smith <janesmith@example.ru>
Date: Wed Apr 20 16:45:39 2025 +0300
Add new feature
commit 7df1e8c33b0a617b3a72c785a67e45d0d932a180
Author: John Doe <johndoe@example.ru>
Date: Mon Apr 18 09:12:21 2025 +0300
Initial commit
При необходимости журнал коммитов можно отобразить более компактно, с помощью опции --oneline. В этом случае Git сокращает хеш и убирает лишнюю информацию – дату и имя автора:
$ git log --oneline
3f6f9e1 Update README.md
acd1e81 Add new feature
7df1e8c Initial commit
7. Детальный просмотр коммита
Чтобы узнать подробности отдельного коммита — какие изменения были внесены, кем и когда — используйте команду:
git show <хеш_коммита>
Например, чтобы посмотреть информацию о коммите с хешем abc13579, выполните:
git show abc13579
Эта команда выводит подробные данные о коммите в двух блоках:
- метаданные (хеш коммита, автор, дата, сообщение);
- конкретные изменения (показаны в виде диффа — разницы между новой и старой версией файла).
Пример вывода команды:
commit abc13579
Author: John Doe <johndoe@example.ru>
Date: Thu Apr 21 10:26:52 2024 +0300
Update README.md
diff --git a/README.md b/README.md
index abcdef1..1234567 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,3 @@
-# My Project
+# My Awesome Project
Если указать команду без хеша, вы увидите информацию о самом последнем коммите.
8. Анализ изменений до коммита
Перед тем как перенести изменения в репозиторий, бывает полезно посмотреть, что именно изменилось. Для этого в Git есть удобная команда:
git diff
Она показывает разницу между текущим состоянием проекта и последним сохраненным коммитом. Это помогает избежать случайных ошибок и контролировать изменения.
Если вызвать команду без аргументов, вы увидите все изменения во всех файлах, которые еще не добавлены в индекс. Чтобы посмотреть изменения конкретного файла, просто укажите его имя после команды:
git diff имя_файла
Также можно сравнить текущее состояние проекта с определенным коммитом, передав его хеш:
git diff хеш_коммита
Если вы уже добавили файлы в индекс с помощью git add, но еще не выполнили коммит, используйте опцию --staged, чтобы увидеть разницу между индексом и последним коммитом:
git diff –staged
Если требуется сравнить два произвольных коммита между собой, достаточно указать их хеши:
git diff коммит1 коммитt2
9. Отмена изменений
Во время работы над проектом часто возникает необходимость откатить изменения в файлах и вернуть их к состоянию последнего коммита. Для этого используется команда git restore.
Если файл еще не был добавлен в индекс с помощью git add, достаточно просто выполнить:
git restore имя_файла
В этом случае Git заменит содержимое файла на версию из последнего коммита, полностью отменив все несохраненные изменения.
Если файл уже попал в индекс и был подготовлен к коммиту, для его отката потребуется использовать дополнительную опцию --staged. Чтобы вернуть все файлы из индекса к состоянию последнего коммита, выполните:
git restore --staged .
Или откатить только конкретный файл:
git restore --staged имя_файла
Команда git restore помогает аккуратно управлять изменениями и избегать случайных ошибок. Она особенно полезна на этапе подготовки к коммиту, когда нужно быстро отменить ненужные изменения или пересобрать индекс.
10. Откат изменений и управление историей
Команда git reset используется для отмены изменений и переписывания истории коммитов в проекте. Она позволяет вернуть репозиторий к предыдущему состоянию.
В зависимости от ситуации можно выбрать один из трех режимов работы:
--soft — откатывает проект к выбранному коммиту, а все изменения переводит в индекс. Файлы при этом остаются без изменений. Можно сразу сделать новый коммит, чтобы переписать историю:
git reset --soft хеш_коммита
--mixed (режим по умолчанию) — откатывает проект к выбранному коммиту и перемещает изменения в рабочую директорию, делая их неотслеживаемыми. Дает возможность дополнительно отредактировать файлы или вернуть их обратно в индекс:
git reset --mixed хеш_коммита
--hard — полностью возвращает проект к указанному коммиту и удаляет все последующие изменения без возможности восстановления. Этот режим стоит использовать, только когда вы точно уверены в своих действиях:
git reset --hard хеш_коммита
Команда git reset также позволяет убрать отдельные файлы из индекса, если вы случайно их туда добавили, но еще не сделали коммит:
git reset имя_файла
Важно! Перед выполнением команд с git reset, особенно в режиме --hard, рекомендуется создать резервную копию проекта, чтобы не потерять важные данные.
11. Удаление файлов из индекса и проекта
Если файл был ошибочно добавлен в индекс или больше не нужен в проекте, его можно удалить с помощью команды git rm. По умолчанию она удаляет файл как из индекса, так и из рабочей папки на вашем компьютере:
git rm имя_файла
После выполнения этой команды файл будет отмечен для удаления в следующем коммите и фактически исчезнет из проекта.
Если нужно удалить файл только из индекса, оставив его физически на компьютере, используйте опцию --cached:
git rm --cached имя_файла
12. Переименование и перемещение файлов
Если нужно переименовать файл или переместить его в другую папку внутри проекта, в Git используется команда:
git mv
Она позволяет одновременно переименовать или переместить файл и автоматически обновить индекс, чтобы изменения были учтены при следующем коммите.
Чтобы переименовать файл, достаточно указать старое и новое имя:
git mv старое_имя новое_имя
Если нужно переместить файл или папку в другую директорию, указываются путь к исходному файлу и папке назначения:
git mv путь/к/файлу путь/к/папке/
После выполнения команды git mv изменения будут добавлены в индекс, но, чтобы они стали частью истории проекта, их нужно зафиксировать с помощью коммита.
Управление ветками и слияние изменений в Git
Работа с ветками (branching) — одна из ключевых возможностей Git, которая позволяет параллельно вести разработку нескольких функций, не нарушая основной стабильной версии проекта. Ветки помогают организовать работу и делают процесс внесения изменений прозрачным и безопасным.
13. Просмотр существующих веток
Чтобы увидеть список всех доступных веток и определить активную ветку (обозначается звездочкой *), пропишите:
git branch
Пример вывода:
feature/new-api
* main
bugfix/login-error
14. Создание новой ветки
Создать новую ветку для конкретной задачи (например, исправления ошибки или добавления функции) можно командой:
git branch имя_новой_ветки
15. Переименование ветки
Если название ветки оказалось неудачным или устарело, его можно изменить с помощью:
git branch -m старое_имя новое_имя
16. Переключение между ветками
Чтобы переключиться с одной ветки на другую, используйте команду:
git checkout имя_ветки
Также можно сразу создать новую ветку и переключиться на нее:
git checkout -b имя_новой_ветки
Современная альтернатива команде git checkout — это команда git switch. Она более безопасна, поскольку проверяет, что переключение не приведет к потере данных:
git switch имя_ветки
17. Слияние веток
Чтобы перенести изменения из одной ветки в другую, используется команда:
git merge имя_другой_ветки
Пример объединения изменений:
# Переключаемся на ветку main, куда перенесем изменения
git checkout main
# Объединяем изменения из feature/auth-module в main
git merge feature/auth-module
В результате слияния Git создает новый коммит, который отражает изменения из двух веток.
18. Применение отдельных коммитов
Иногда нужно перенести в текущую ветку не всю ветку целиком, а отдельные коммиты. Для этого используется команда:
git cherry-pick хеш_коммита
Так можно выборочно применять изменения из одной ветки в другую.
19. Перебазирование веток
Перебазирование позволяет перенести коммиты одной ветки поверх другой. Чтобы это сделать, используется команда:
git rebase main
Коммиты текущей ветки будут перенесены поверх ветки main.
20. Удаление веток
Когда работа в ветке завершена и изменения слиты, ветку можно удалить:
git branch -d имя_ветки
Удаление с помощью -d возможно только после успешного слияния. Для принудительного удаления используйте параметр -D.
21. Теги для маркировки версий
Чтобы отметить важный момент в истории проекта (например, релиз версии), используют теги:
git tag v1.0
Тег легко использовать при публикации стабильных версий или фиксации этапов проекта.
Работа с удаленными репозиториями
Git позволяет не только управлять проектами локально, но и работать совместно с другими разработчиками через удаленные репозитории. Так можно обмениваться изменениями, хранить резервные копии проекта и вести совместную разработку.
22. Привязка к удаленному репозиторию
Чтобы связать локальный репозиторий с удаленным (например, на GitHub или GitLab), используйте команду:
git remote add origin <url-удаленного-репозитория>
Теперь локальный репозиторий знает, куда отправлять изменения и откуда их получать.
23. Просмотр удаленных репозиториев
Чтобы увидеть список всех привязанных удаленных репозиториев, введите команду:
git remote
Чтобы увидеть не только названия, но и URL-адресы репозиториев, выполните:
git remote -v
Пример вывода:
origin https://github.com/your_username/your_repo.git (fetch)
origin https://github.com/your_username/your_repo.git (push)
24. Отправка изменений на сервер
Чтобы отправить локальные коммиты в удаленный репозиторий, используется команда:
git push origin <название-ветки>
При первой отправке лучше использовать флаг -u, чтобы связать локальную ветку с удаленной:
git push -u origin main
В последующем достаточно будет просто писать git push.
25. Получение изменений из удаленного репозитория
Чтобы скачать и сразу объединить изменения из удаленного репозитория с локальной веткой, нужна команда:
git pull
Если хотите сначала просто скачать изменения без объединения, используйте:
git fetch
Затем можно вручную проанализировать изменения и выполнить merge.
Продвинутые команды Git для эффективной работы
Помимо базовых команд, в Git есть и более продвинутые инструменты. Они позволяют решать сложные задачи, оптимизировать рабочий процесс и восстанавливать изменения.
Рассмотрим некоторые из них:
26. Сохранение временных изменений
Когда нужно срочно переключиться на другую задачу, а изменения еще не готовы к коммиту, используйте:
git stash
Git уберет все незакоммиченные изменения и вернет чистую рабочую директорию.
Посмотреть список сохраненных изменений можно, прописав:
git stash list
А восстановить последние сохраненные изменения и убрать их из списка — с помощью:
git stash pop
27. Поиск ошибок в истории коммитов
Команда git bisect помогает быстро найти коммит, в котором впервые появилась ошибка или баг. Чтобы запустить процесс поиска проблемного коммита, введите:
git bisect start
Если хотите использовать автоматический поиск с тестовым скриптом, выполните:
git bisect run ./test-script.sh
Чтобы отметить коммит как хороший или плохой вручную:
git bisect good хеш_коммита
git bisect bad хеш_коммита
Завершить процесс поиска можно с помощью:
git bisect reset
28. Отслеживание изменений построчно
Команда git blame показывает автора и дату последних изменений каждой строки в файле:
git blame имя_файла
Она полезна при выяснении причин появления ошибок или для поиска разработчика, который отвечает за конкретную часть кода.
29. Восстановление удаленных коммитов
Команда git reflog позволяет восстановить изменения, даже если коммиты были удалены:
git reflog
Вывод покажет историю всех действий с репозиторием, включая переключения веток, удаление и восстановление коммитов. Отсюда можно легко найти и восстановить потерянные данные.
30. Очистка репозитория от ненужных файлов
Иногда рабочая папка переполняется временными файлами, которые не нужны проекту. Убрать их поможет:
git clean
Полезные опции:
-n — показать список файлов, которые будут удалены (без удаления):
-f — принудительно удалить файлы:
-d — удалить также неотслеживаемые папки:
Важно! Будьте осторожны с этой командой, поскольку удаленные файлы нельзя восстановить.
Заключение
Освоение командной строки Git — это важный шаг для любого разработчика. Знание базовых и продвинутых команд дает не только больше контроля над проектами, но и позволяет работать быстрее, эффективнее и увереннее.
Не бойтесь экспериментировать: пробуйте команды на тестовых проектах, создавайте ветки, откатывайте изменения и учитесь работать с историей коммитов. Чем больше практики — тем проще станет управление даже большими репозиториями.