ГлавнаяБлогПолезные команды Git для разработчика среднего уровня
Python

Полезные команды Git для разработчика среднего уровня

Изучите 6 продвинутых команд Git: merge, rebase, amend, push --force-with-lease, rebase -i и stash. Практические примеры и советы. Начните применять их сегодня!

Al
Редакция Algolitalgolit.ru
8 мин чтения26 августа 2026 г.

Почему эти команды Git изменят ваш рабочий процесс

Вы уже уверенно используете git add, commit, pull и push? Тогда пришло время освоить команды, которые отличают опытного разработчика от новичка. В этой статье я разберу шесть мощных инструментов Git: от правильного использования merge и rebase до секретов интерактивного rebase. Вы узнаете, как избежать конфликтов, безопасно переписывать историю и не терять незавершённую работу. Эти навыки пригодятся вам каждый день в реальных проектах.

1 и 2. git merge и git rebase: в чём разница

Многие разработчики, даже с опытом, используют merge и rebase как взаимозаменяемые. Но они работают по-разному. Представьте, что у вас есть ветка feature, ответвлённая от main, а в main появился новый коммит C:

A---B---C main
     \
      D---E feature

git merge

Когда вы выполняете git merge main в ветке feature, Git объединяет обе истории. Появляется merge-коммит M:

A---B---C------M
     \        /
      D---E---

История остаётся нетронутой: видно, что ветки развивались независимо. Плюс — сохраняется реальная картина. Минус — при частых merge история превращается в «спагетти».

git rebase

Команда git rebase main временно убирает ваши коммиты D и E, переносит ветку на актуальный main и заново применяет ваши изменения:

A---B---C---D'---E'

Чисто и линейно. Но обратите внимание на апострофы: D' и E' — это новые коммиты с новыми хэшами. Rebase переписывает историю. Поэтому правило: перебазируйте только свою работу. Если другие разработчики уже базируются на ваших коммитах, rebase создаст хаос.

Конфликты

И merge, и rebase могут вызывать конфликты. При merge вы решаете конфликт один раз, затем:

git add .
git merge --continue

При rebase Git применяет коммиты по одному, поэтому конфликты могут возникать несколько раз. Это раздражает, но есть спасение:

git merge --abort
git rebase --abort

Эти команды возвращают всё в исходное состояние.

3. git commit --amend: исправляем последний коммит

Вы сделали идеальный коммит, но забыли убрать console.log или добавить файл. Вместо нового коммита «Remove console log» используйте amend:

git add forgotten-file.ts
git commit --amend --no-edit

Флаг --no-edit сохраняет прежнее сообщение. Если нужно изменить и сообщение, просто выполните git commit --amend — откроется редактор.

Важно: amend создаёт новый коммит с новым хэшем. Если ветка уже запушена, потребуется force-push. Но сначала прочитайте следующий пункт.

4. git push --force-with-lease: безопасный force-push

После rebase или amend локальная история отличается от удалённой. Обычный git push выдаст ошибку. Многие используют git push --force, но это опасно: вы перезаписываете удалённую ветку, даже если кто-то уже добавил туда коммиты.

Вместо этого используйте git push --force-with-lease. Эта команда проверяет, не изменилась ли удалённая ветка с момента вашего последнего взаимодействия. Если изменилась — push будет отклонён, и вы не потеряете чужие изменения.

Всегда предпочитайте --force-with-lease обычному --force.

5. git rebase -i: король Git

Интерактивный rebase позволяет переписать историю ваших коммитов. Допустим, у вас есть пять коммитов, и вы хотите их объединить или переименовать:

git rebase -i HEAD~5

Откроется редактор со списком коммитов:

pick a111111 Add login form
pick b222222 Add validation
pick c333333 Fix typo
pick d444444 Fix validation
pick e555555 Remove debug log

Вы можете заменить pick на другие команды:

  • reword — изменить сообщение коммита;
  • edit — остановиться и изменить содержимое;
  • squash — объединить с предыдущим коммитом;
  • fixup — как squash, но без сохранения сообщения;
  • drop — удалить коммит.

Например, чтобы объединить три коммита в один:

pick a111111 Add login form
squash b222222 Add validation
squash c333333 Fix validation

В итоге получится один коммит с чистым сообщением.

Мнения о необходимости чистить историю расходятся. Но если вы хотите сохранить логические коммиты, а не один огромный, интерактивный rebase незаменим.

6. git stash: временное хранилище

Вы работаете над фичей, и тут срочный баг в проде. Незавершённую работу коммитить не хочется. Решение — git stash:

git stash

Git сохранит ваши изменения и вернёт рабочую директорию в чистое состояние. Теперь можно переключиться на другую ветку и исправить баг. Вернуть изменения:

git stash pop

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

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

Освоение этих команд — важный шаг к профессиональной работе с Git. Начните с малого: замените обычный git push --force на --force-with-lease в своих проектах. Затем попробуйте git commit --amend для исправления мелких ошибок. И постепенно внедряйте интерактивный rebase для поддержания чистой истории.

Поделитесь в комментариях, какие команды Git вы используете чаще всего? А если хотите больше подобных материалов, подписывайтесь на наш блог — впереди много полезного!

#Git#команды Git#rebase#merge#stash
Al
Редакция Algolit

Пишем про алгоритмы, подготовку к собеседованиям и карьеру в IT — так, чтобы было понятно и полезно.

Хочешь закрепить знания на практике?

Решай задачи на Algolit — интерактивная платформа для обучения

Начать бесплатно →