Так что я не уверен, почему по этой теме так много потрясений. Я могу назвать git stash как push, так и устаревшим сохранением, и я могу использовать регулярное выражение, чтобы вернуть его с помощью apply:
Git stash метод, чтобы использовать имя для применения
$ git stash push -m "john-hancock"
$ git stash apply stash^{/john-hancock}
Как уже упоминалось ранее, команда сохранения устарела, но она все еще работает, поэтому вы можете использовать ее на старых системах, где вы не можете обновить их с помощью push-вызова. В отличие от команды push, ключ -m не требуется при сохранении.
// save is deprecated but still functional
$ git stash save john-hancock
Это Git 2.2 и Windows 10.
Визуальное доказательство
Вот красивый анимированный GIF, демонстрирующий процесс.
Цепочка событий
GIF работает быстро, но если вы посмотрите, процесс выглядит так:
- Команда ls показывает 4 файла в каталоге
- touch example.html добавляет 5-й файл
- git stash push -m "Джон-Хэнкок" -a (-a включает неотслеживаемые файлы)
- Команда ls показывает 4 файла после тайника, что означает, что тайник и неявный hard reset сработали
- git stash применить stash ^ {/ john-hancock} работает
- Команда ls перечисляет 5 файлов, показывая, что файл example.html был возвращен, что означает, что команда git stash apply сработала.
Имеет ли это смысл?
Честно говоря, я не уверен, какая польза от этого подхода. Есть смысл дать тайнику имя, но не поиск. Может быть, было бы полезно написать сценарий для полок и небрежных процессов, но все равно проще просто скопировать тайник по имени.
$ git stash pop 3
$ git stash apply 3
Это выглядит намного проще для меня, чем регулярное выражение.
git stash push -m stashname
является текущим синтаксисом .git stash save stashname
был объявлен устаревшим