У меня есть 2 филиала: мастер | дизайн
Работая в дизайне, я сделал тайник и переключился на мастера, внёс некоторые коррективы. Вернулся к дизайну и stash apply
только потерял все мои изменения в ветке дизайна.
Я надеюсь, что вся моя работа находится в тайнике, поскольку я не очистил или удалил их.
Если я создаю тайник, я получаю 4 результата:
stash@{0}: WIP on design: f2c0c72... Adjust Password Recover Email
stash@{1}: WIP on design: f2c0c72... Adjust Password Recover Email
stash@{2}: WIP on design: eb65635... Email Adjust
stash@{3}: WIP on design: eb65635... Email Adjust
Если я пытаюсь git stash apply f2c0c72
получить сообщение об ошибке:
fatal: Needed a single revision
f2c0c72: no valid stashed state found
Как я могу применить определенный тайник?
git stash apply 0
(вместоgit stash apply stash@{0}
). Смотрите мой ответ здесь .Ответы:
Ключи от тайника - это
stash@{n}
предметы слева. Поэтому постарайтесь:(обратите внимание, что в некоторых оболочках нужно указывать
"stash@{0}"
, например, zsh, fish и powershell).Начиная с версии 2.11, это довольно просто, вы можете использовать номер стека N вместо использования
stash@{n}
. Так что теперь вместо использования:Вы можете ввести:
Чтобы получить список тайников:
На самом деле
stash@{0}
это ревизия в git, на которую вы можете переключиться ... но онаgit stash apply ...
должна выяснить, как DTRT применить ее к вашему текущему местоположению.источник
gitk stash@{0}
чтобы показать изменения, которые вы сделали в конкретном тайнике.git stash apply "stash@{0}"
stash@{n}
самая неловкая команда для ввода. Есть ли какие-либо ярлыки для этого, кроме создания собственного псевдонима или функции?git stash apply n
мирныйЧтобы применить тайник и удалить его из списка, запустите:
Чтобы применить тайник и сохранить его в тайнике, запустите:
источник
git stash pop "stash@{n}"
git stash apply stash@"{n}"
git stash apply stash@`{n`}
(обратите внимание на галочки перед фигурными скобками).Начиная с версии 2.11, это довольно легко, вы можете использовать номер N стека вместо того , чтобы говорить
"stash@{n}"
. Так что теперь вместо использования:Вы можете ввести:
Например, в вашем списке:
Если вы хотите подать заявку,
stash@{1}
вы можете набрать:В противном случае вы можете использовать его, даже если у вас есть некоторые изменения в вашем каталоге, начиная с 1.7.5.1, но вы должны быть уверены, что тайник не перезапишет изменения вашего рабочего каталога, если это произойдет, вы получите ошибку:
В версиях до 1.7.5.1 он отказывался работать, если в рабочем каталоге произошли изменения.
Примечания к выпуску Git:
источник
Если вы находитесь на компьютере с Windows и в PowerShell, вам нужно процитировать аргумент, такой как:
... или применить изменения и удалить из тайника:
В противном случае без кавычек вы можете получить эту ошибку:
источник
затем выберите тайник для применения и используйте только номер:
источник
В списке будут показаны все спрятанные элементы, например: stash @ {0} :, stash @ {1}:, .., stash @ {n}:
Затем выберите число n, которое обозначает stash @ {n}:
источник