В man-странице git stash вы можете прочитать это (в разделе «Обсуждение» сразу после описания «Опции»):
Шкатулка представлена в виде коммита, дерево которого записывает состояние рабочего каталога, и его первым родителем является коммит в HEAD при создании тайника.
Таким образом, вы можете рассматривать stash (например, stash@{0}
является первым / верхним тайном) как коммит слияния и использовать:
$ git diff stash@{0}^1 stash@{0} --
Объяснение: stash@{0}^1
ярлык означает первого родителя данного тайник, который, как указано в объяснении выше, является коммитом, при котором изменения были спрятаны Мы используем эту форму "git diff" (с двумя коммитами), потому что stash@{0}
/ refs/stash
является коммитом слияния, и мы должны указать git, против какого родителя мы хотим использовать diff. Более загадочно:
$ git diff stash@{0}^! --
также должны работать (см. Справочную страницу git rev-parse для объяснения синтаксиса rev^!
в разделе «Задание диапазонов»).
Аналогично, вы можете использовать git checkout , чтобы извлечь один файл из тайника:
$ git checkout stash@{0} --
или сохранить его под другим именем:
$ git show stash@{0}: >
или
$ git show stash@{0}:./ >
( обратите внимание , что здесь < полное имя файла > является полным путем к файлу относительно верхнего каталога проекта (думаю: относительно stash@{0}
)) .
Возможно, вам потребуется защитить stash@{0}
от расширения оболочки, т. е. использовать "stash@{0}"
или 'stash@{0}'
.
Тот не является кнопкой, но является значком, индикатором и назван Меню Сессии. См. этот ответ для терминологии правильной Единицы.
Теперь, я не думаю, что у Вас есть любой шанс переместиться индикатор Session Menu , который является, вероятно, hardcoded дизайном, но можно дать попытку этот ответ , чтобы видеть, как можно изменить порядок индикаторов.