Как временно сохранить незакоммиченные изменения в Git при переключении ветки?

«Как временно сохранить незакоммиченные изменения в Git при переключении ветки?» — вопрос из категории DevOps, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для временного сохранения незакоммиченных изменений используйте команду git stash. Она помещает текущие изменения в специальное хранилище, позволяя переключиться на другую ветку с чистым рабочим деревом.

Основная команда:

git stash push -m "Описание изменений"  # Сохраняет изменения в stash
git checkout другая_ветка               # Переключаемся на другую ветку

Восстановление изменений:

git stash pop   # Применяет последние засташенные изменения и удаляет их из stash
git stash apply # Применяет изменения, но оставляет их в stash для повторного использования

Альтернативы:

  • git commit — если изменения готовы для фиксации в текущей ветке.
  • git stash --include-untracked — чтобы добавить в stash и неотслеживаемые файлы.

Важно: При восстановлении (pop/apply) могут возникнуть конфликты слияния, если изменения в stash конфликтуют с текущим состоянием файлов. В этом случае потребуется ручное разрешение конфликтов.