У Git є область, яка називається схованкою, де ви можете тимчасово зберігати знімок змін, не передаючи їх до сховища. Це окремо від робочого каталогу, проміжної області чи сховища.
Ця функція корисна, коли ви внесли зміни до гілки, які ви не готові до фіксації, але вам потрібно перейти на іншу гілку.
Приховані зміни
Щоб зберегти зміни у схованці, запустіть команду:
git stash save "optional message for yourself"
Це зберігає ваші зміни та повертає робочий каталог до того, як він виглядав для останнього коміту. Заховані зміни доступні з будь-якої гілки цього сховища.
Зверніть увагу, що зміни, які ви хочете сховати, мають бути у відстежуваних файлах. Якщо ви створили новий файл і намагаєтесь сховати внесені зміни, ви можете отримати повідомлення про помилку No local changes to save
.
Переглянути сховані зміни
Щоб побачити, що у вас в сховищі, запустіть команду:
git stash list
Це повертає список збережених знімків у форматі [email protected]{0}: BRANCH-STASHED-CHANGES-ARE-FOR: MESSAGE
. [email protected]{0}
Частина назви схованки, а число в фігурних дужках ( { }
) є індексом цієї схованки. Якщо у вас декілька наборів змін сховано, кожен з них матиме інший індекс.
Якщо ви забули, які зміни були внесені в схованку, ви можете переглянути їх резюме за допомогою git stash show NAME-OF-STASH
. Якщо ви хочете побачити типовий макет виправлення у стилі різниці (із позначками + і -и для почергових змін), ви можете включити -p
опцію (для виправлення). Ось приклад:
git stash show -p [email protected]{0} # Example result: diff --git a/PathToFile/fileA b/PathToFile/fileA index 2417dd9..b2c9092 100644 --- a/PathToFile/fileA +++ b/PathToFile/fileA @@ -1,4 +1,4 @@ -What this line looks like on branch +What this line looks like with stashed changes
Отримати сховані зміни
Щоб отримати зміни зі схованки та застосувати їх до поточної гілки, у якій ви перебуваєте, у вас є два варіанти:
git stash apply STASH-NAME
застосовує зміни та залишає копію у схованціgit stash pop STASH-NAME
застосовує зміни та видаляє файли зі схованки
Під час застосування змін можуть виникнути конфлікти. Ви можете вирішити конфлікти, подібні об'єднанню (див. git merge
Докладніше).
Видалити сховані зміни
Якщо ви хочете видалити сховані зміни, не застосовуючи їх, запустіть команду:
git stash drop STASH-NAME
Щоб очистити весь схованку, запустіть команду:
git stash clear