Back

10 команд Git, которые должен знать каждый разработчик

10 команд Git, которые должен знать каждый разработчик

Команды Git составляют основу любого современного рабочего процесса разработки. Независимо от того, отправляете ли вы код в продакшн или работаете с распределённой командой, эти десять команд покроют большую часть вашей ежедневной работы. Вот что вам действительно нужно знать для современного рабочего процесса с Git в 2025 году.

Ключевые выводы

  • Освойте git status и git diff, чтобы понимать состояние репозитория перед внесением изменений
  • Используйте git switch и git restore вместо устаревшей команды git checkout для более чётких и целенаправленных операций
  • Знайте git reflog как вашу страховочную сеть для восстановления потерянных коммитов и отмены ошибок
  • Поддерживайте установку Git в актуальном состоянии, чтобы получать исправления безопасности и новые возможности

Проверка состояния репозитория

git status

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

git status

Выполняйте эту команду часто. Она предотвращает сюрпризы перед коммитами и помогает понять, что видит Git.

git diff

В то время как status показывает, какие файлы изменились, diff показывает, что именно изменилось внутри них.

git diff              # неподготовленные изменения
git diff --staged     # подготовленные изменения

Просматривайте свои изменения перед коммитом. Это помогает выявить ошибки на ранней стадии.

Подготовка и фиксация изменений

git add

Подготовка (staging) готовит изменения для следующего коммита. Вы контролируете, что именно попадёт в каждый снимок состояния.

git add filename.js   # подготовить один файл
git add .             # подготовить всё

Для более точного контроля используйте git add -p, чтобы подготовить отдельные фрагменты (hunks) внутри файлов — полезно, когда вы внесли несколько несвязанных изменений.

git commit

Коммиты создают постоянные снимки в истории вашего проекта.

git commit -m "Fix authentication timeout bug"

Пишите понятные сообщения. Если нужно исправить сообщение последнего коммита или добавить забытые изменения, используйте git commit --amend.

Работа с удалёнными репозиториями

git clone

Clone загружает репозиторий и всю его историю на вашу машину.

git clone https://github.com/user/repository.git

git pull

Pull получает изменения из удалённого репозитория и сливает их в вашу текущую ветку.

git pull origin main

Примечание: git pull объединяет git fetch и git merge. Если вы хотите проверить удалённые изменения перед слиянием, сначала выполните git fetch.

git push

Push загружает ваши локальные коммиты в удалённый репозиторий.

git push origin main

Отправляются только зафиксированные изменения. Незакоммиченная работа остаётся локальной.

Ветвление и история

git switch

Для переключения веток git switch — это современный подход, представленный в Git 2.23 и теперь рекомендуемый вместо устаревшей команды git checkout для этой цели.

git switch feature-branch      # переключить ветку
git switch -c new-feature      # создать и переключиться

Git switch vs checkout: checkout всё ещё работает, но выполняет слишком много несвязанных задач (переключение веток, восстановление файлов, отсоединение HEAD). switch делает одну вещь чётко. Используйте её.

git restore

Аналогично, git restore обрабатывает восстановление файлов — ещё одна задача, ранее перегруженная на checkout.

git restore filename.js           # отменить изменения в рабочей директории
git restore --staged filename.js  # убрать файл из подготовленных

Это разделение делает ментальную модель Git более понятной для разработчиков, изучающих инструмент в 2025 году.

git log

Понимание истории проекта имеет значение. git log показывает историю коммитов вашей текущей ветки.

git log --oneline --graph    # компактный вид со структурой веток

Флаг --oneline делает вывод читаемым. Добавьте --graph для визуализации ветвления и слияний.

Восстановление с помощью git reflog

Когда что-то идёт не так — а это случится — git reflog станет вашей страховочной сеткой. Команда записывает каждое перемещение HEAD, даже коммиты, которые больше не отображаются в git log.

git reflog

Случайно сделали reset на неправильный коммит? Удалили ветку? reflog поможет найти и восстановить потерянную работу. Это не ежедневная команда, но знание о её существовании экономит часы паники.

Заметка о выборе рабочего процесса

Команды часто спорят о merge vs rebase. Оба подхода интегрируют изменения, но отличаются тем, как выглядит история после этого. Merge сохраняет полную структуру веток. Rebase создаёт линейную историю. Ни один из них не является универсально правильным — выбирайте на основе предпочтений вашей команды и потребностей проекта.

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

Заключение

Эти команды — status, diff, add, commit, clone, pull, push, switch, log и reflog — охватывают основы Git для разработчиков, выполняющих повседневную работу. Освойте их в первую очередь. Более продвинутые команды станут полезными, когда этот фундамент будет прочным.

Начните использовать switch и restore, если ещё не делаете этого. Они отражают то, как команды Git разработаны в 2025 году: целенаправленные, предсказуемые и более простые для понимания.

Часто задаваемые вопросы

Git fetch загружает изменения из удалённого репозитория, но не сливает их в вашу локальную ветку. Git pull объединяет fetch и merge в одном шаге, автоматически интегрируя удалённые изменения в вашу текущую ветку. Используйте fetch, когда хотите просмотреть изменения перед их слиянием.

Используйте git reset --soft HEAD~1, чтобы отменить последний коммит, сохранив все изменения подготовленными. Если вы хотите, чтобы изменения были неподготовленными, но остались в рабочей директории, используйте вместо этого git reset HEAD~1. Оба подхода сохраняют вашу работу, удаляя коммит из истории.

Используйте git switch для всех операций, связанных с ветками, таких как переключение веток или создание новых. Git switch была представлена в Git 2.23 специально для работы с ветками, в то время как checkout остаётся перегруженной множеством несвязанных функций. Switch обеспечивает более чёткое намерение и уменьшает путаницу.

Выполните git reflog, чтобы найти хеш коммита, на который указывала ваша ветка до удаления. Затем пересоздайте ветку, используя git branch branch-name commit-hash. Reflog отслеживает все перемещения HEAD примерно в течение 90 дней по умолчанию, что делает возможным восстановление даже после случайных удалений.

Gain control over your UX

See how users are using your site as if you were sitting next to them, learn and iterate faster with OpenReplay. — the open-source session replay tool for developers. Self-host it in minutes, and have complete control over your customer data. Check our GitHub repo and join the thousands of developers in our community.

OpenReplay