Що таке git stash і як ним користуватися?
git stash зберігає незакомічені зміни у тимчасове сховище, повертаючи робочу директорію до стану останнього коміту. Це корисно, коли потрібно переключитися на іншу гілку, але поточні зміни ще не готові для коміту.
Збереження: git stash зберігає зміни в індексі та робочій директорії. За замовчуванням stash не включає untracked файли — використовуйте git stash -u для їх включення. Можна додати опис: git stash push -m "робота над авторизацією".
Перегляд: git stash list показує всі збережені stash-записи. Кожен запис має вигляд stash@{0}, stash@{1} і т.д. Команда git stash show stash@{0} показує файли в конкретному записі, а git stash show -p stash@{0} показує diff.
Відновлення: git stash pop застосовує останній запис і видаляє його зі списку. Команда git stash apply stash@{1} застосовує запис, але не видаляє його — корисно, якщо хочете застосувати зміни в кількох гілках. Якщо при pop виникають конфлікти, запис не видаляється, і ви можете вирішити конфлікти вручну.
Видалення: git stash drop stash@{0} видаляє конкретний запис. Команда git stash clear видаляє всі записи — використовуйте з обережністю.
Практичний сценарій: ви працюєте над feature-гілкою, з'являється терміновий баг у main. Виконуєте git stash, переключаєтеся на main, фіксите баг, комітите, повертаєтеся на feature-гілку і робите git stash pop — зміни відновлено.
Обмеження: stash зберігається локально і не синхронізується з remote. Якщо потрібно перенести зміни між машинами, краще створіть тимчасову гілку і закомітьте туди.