🔖 Справочник команд урока 19

К оглавлению урока

⚡ Ключевые команды урока

# Слияние веток
git checkout main
git merge feature          # влить feature в main
git merge feature main     # в одну строку

# Перебазирование
git checkout feature
git rebase main            # перебазировать feature поверх main

# Исправить последний коммит
git commit --amend -m "Новое сообщение"

# Откат HEAD (осторожно с --hard!)
git reset --soft HEAD~1    # сохраняет изменения в staging
git reset --mixed HEAD~1   # сохраняет изменения в рабочем каталоге
git reset --hard HEAD~1    # УДАЛЯЕТ изменения безвозвратно

# Безопасная отмена коммита
git revert HEAD
git revert abc1234

# Переключение между ветками
git checkout main
git checkout -b feature

Новые команды этого урока

git merge

Объединяет изменения из одной ветки в другую. Создаёт коммит слияния, сохраняя историю обеих веток.

git checkout main
git merge feature
  • git merge feature — влить ветку feature в текущую
  • git merge --no-ff feature — всегда создавать merge commit
  • git merge --abort — отменить слияние при конфликте

git rebase

Перебазирует коммиты текущей ветки поверх указанной ветки. История становится линейной, но переписываются хэши коммитов.

git checkout feature
git rebase main
  • git rebase main — перебазировать текущую ветку поверх main
  • git rebase --continue — продолжить после разрешения конфликта
  • git rebase --abort — отменить перебазирование

git reset

Изменяет указатель HEAD и/или состояние индекса и рабочего каталога. Три режима: soft, mixed, hard.

git reset --soft HEAD~1
git reset --mixed HEAD~1
git reset --hard HEAD~1   # ⚠️ ОПАСНО — безвозвратно
  • --soft — только перемещает HEAD; изменения остаются в staging
  • --mixed — перемещает HEAD и сбрасывает staging; изменения в рабочем каталоге
  • --hard — перемещает HEAD, сбрасывает staging и рабочий каталог

git revert

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

git revert HEAD
git revert abc1234
  • git revert HEAD — отменить последний коммит
  • git revert abc1234 — отменить конкретный коммит по хэшу
  • git revert --no-commit HEAD~3..HEAD — отменить несколько коммитов без немедленного создания коммита

git commit --amend

Изменяет последний коммит без создания нового. Удобно для исправления сообщения или добавления забытых файлов.

git commit --amend -m "Исправленное сообщение"
git add forgotten.txt
git commit --amend --no-edit
  • --amend -m "..." — изменить сообщение коммита
  • --amend --no-edit — добавить файлы без изменения сообщения

Ранее изученные команды

  • git checkout — переключение веток и восстановление файлов
  • git branch — управление ветками
  • git push — отправка изменений в удалённый репозиторий
  • git log — просмотр истории коммитов
  • git status — статус рабочего каталога и индекса