Мені завжди здавалося, що можна дати тайнику ім'я командою git stash save stashname
, яке потім можна застосувати командою git stash apply stashname
. Але, схоже, в даному випадку все, що відбувається - це те, що stashname
буде використовуватися як опис тайника.
Невже немає способу реально назвати тайник? Якщо ні, то що б ви порекомендували для досягнення еквівалентної функціональності? По суті, у мене є невеликий тайник, який я періодично хотів би застосовувати, але не хочеться постійно шукати в git stash list
, який його фактичний номер.
Ось як це робиться:
git stash save "my_stash"
Де "my_stash"
- назва тайника.
Ще кілька корисних речей, які варто знати: Всі тайники зберігаються в стеку. Тип:
git stash list
Тут буде перераховано всі ваші схованки.
Щоб застосувати схованку і видалити її зі стеку схованок, введіть:
git stash pop stash@{n}
Щоб застосувати схованку і зберегти її в стеку схованок, введіть:
git stash apply stash@{n}
Де n
- індекс захованої зміни.
Ви можете перетворити схованку на філію, якщо відчуваєте, що це досить важливо:
git stash branch <branchname> [<stash>]
з чоловічої сторінки:
Створює і перевіряє нову гілку з назвою <branchname>
, починаючи з коміту, у якому було створено <stash>
, застосовує зміни, записані у <stash>
, до нового робочого дерева та індексу, а потім скидає <stash>
, якщо це завершиться успішно. Якщо <stash>
не задано, застосовує останню з них.
Це корисно, якщо гілка, на якій ви запустили git stash save
, змінилася настільки, що git stash apply не вдається через конфлікти. Оскільки сховище застосовується поверх коміту, який був HEAD на момент запуску git stash, воно відновлює початковий стан сховища без конфліктів.
Пізніше ви можете перебазувати цю нову гілку до іншого місця, яке є нащадком того, де ви перебували під час виконання схованки.
Схованки не призначені для постійного використання, як ви хочете. Вам, ймовірно, краще використовувати мітки на коммітах. Створіть річ, яку ви хочете сховати. Зробіть з неї коміт. Створіть тег для цього коміту. Потім відкотіть вашу гілку до HEAD^
. Тепер, коли ви захочете повторно застосувати цей сховок, ви можете використати git cherry-pick -n tagname
(-n
- це --no-commit
).