Git — это мощная и гибкая система контроля версий, с которой сталкивается почти каждый разработчик, вне зависимости от языка программирования или области работы. Она даёт возможность контролировать изменения в коде, откатываться к более ранним версиям проекта, вести параллельную разработку и эффективно взаимодействовать с другими участниками команды. Благодаря распределённой архитектуре Git обеспечивает автономную работу с репозиторием без постоянного подключения к серверу, а также защищает историю проекта от потерь и конфликтов. Однако, несмотря на всю мощь и удобство Git, его команды не всегда легко держать в голове — особенно новичкам или тем, кто использует систему от случая к случаю. Эта краткая шпаргалка поможет быстро вспомнить основные действия в Git без необходимости каждый раз заглядывать в документацию.
Инициализация и клонирование репозитория
git initИнициализирует репозиторий Git в выбранной папке.
git cloneСкачивает удалённый репозиторий и создаёт его локальную копию.
Отслеживание статуса и просмотр истории коммитов
git statusВыводит текущее состояние рабочей директории и индекса (какие файлы изменены, добавлены, неотслеживаемые и т.д.).
git logПоказывает историю коммитов в обратном хронологическом порядке.
git log --onelineУпрощённая история: один коммит — одна строка. Удобно для быстрого обзора.
Фиксация изменений и работа с коммитами
git add <файл>Выбирает конкретный файл для включения в будущий коммит, добавляя его в индекс.
git add .Подготавливает ко внесению в коммит все изменённые и новые файлы в текущем каталоге и его подпапках.
git commit -m "Описание изменений"Формирует новый коммит с комментарием, описывающим суть внесённых правок.
git commit -am "Описание"Позволяет одновременно добавить изменения в уже отслеживаемых файлах и выполнить коммит. Не применимо к новым, ранее не добавленным файлам.
Работа с ветками и переход между ними
git branchОтображает перечень всех локальных веток проекта.
git branch <название>Создаёт новую ветку, оставаясь при этом в текущей.
git checkout <ветка>Осуществляет переход на указанную ветку.
git checkout -b <ветка>Комбинированная команда: создаёт новую ветку и сразу же переключается на неё.
git merge <ветка>Объединяет выбранную ветку с текущей, добавляя её изменения.
Синхронизация с удалённым репозиторием
git pullПолучение изменений из удалённого репозитория и автоматическое слияние с локальной веткой.
git pushОтправка локальных изменений в удалённый репозиторий.
git push -u origin <ветка>Отправка новой ветки и установка связи с origin (удалённым репозиторием).
Откат и отмена изменений
git checkout -- <файл>Отменяет изменения в файле, возвращая его к последнему зафиксированному состоянию.
git reset HEAD <файл>Удаляет файл из индекса, но не из рабочей директории.
git reset --hardПолный откат всех изменений в рабочей директории и индексе.
git revertСоздаёт новый коммит, отменяющий изменения выбранного коммита (без удаления истории).
Временное сохранение и другие полезные команды
git stashВременно сохраняет незакоммиченные изменения, освобождая рабочую директорию.
git stash popВосстанавливает изменения, сохранённые в последнем stash.
git remote -vПоказывает список подключённых удалённых репозиториев и их URL.
git diffПоказывает различия между рабочей директорией и индексом/коммитом.
Ответы на часто задаваемые вопросы (FAQ)
Что делать, если случайно удалил файл?
Если файл был удалён, но ещё не закоммичен, можно вернуть его командой git checkout — <файл>
Если уже был коммит — используйте git log и затем git checkout <коммит> — <файл>
Можно ли переименовать ветку?
Да. Локально: git branch -m old_name new_name
Для удалённой ветки: создайте новую, отправьте её (git push -u origin new_name), затем удалите старую git push origin –delete old_name
Как отменить последний коммит, но сохранить изменения?
git reset --soft HEAD~1откатит коммит, оставив изменения в индексе.
Как объединить несколько коммитов в один?
Используйте
git rebase -i HEAD~N, где N — количество последних коммитов, которые нужно объединить.
Полезные советы
- Придерживайтесь читаемого и однозначного стиля сообщений к коммитам. Лучше «fix: неправильно отображается кнопка», чем просто «фикс».
- Используйте ветки для новых фич, исправлений и экспериментов — это сохраняет чистоту основной ветки и помогает в командной разработке.
- Перед push всегда делайте pull, особенно при совместной работе — это поможет избежать конфликтов.
- Не забывайте добавлять в [.gitignore] временные файлы, кэш и чувствительные данные.
- Освойте rebase— это мощный инструмент, но с ним нужно быть аккуратным, особенно при работе с опубликованными коммитами.
- Избегайте использования git reset –hard, если не уверены — эта команда безвозвратно удаляет локальные изменения.