git stash применить версию
Я действительно надеюсь, что кто-то может посоветовать.
У меня есть 2 филиала мастер | дизайн
Работая в дизайне, я сделал тайник и переключился на мастера, внёс некоторые коррективы. Вернулся к дизайну и применил тайник только для того, чтобы потерять все мои изменения в ветке дизайна.
Я надеюсь, что вся моя работа находится в тайнике, поскольку я не очистил или удалил их.
Если я создаю тайник, я получаю 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
Как я могу применить определенный тайник?
Надеюсь, кто-то может помочь!
9 ответов
Ключи от тайника на самом деле stash@{n}
предметы слева. Так что постарайтесь:
git stash apply stash@{0}
(обратите внимание, что в некоторых оболочках нужно указывать "stash@{0}"
вроде зш, рыба и пауэрселл).
Чтобы получить список тайников:
git stash list
На самом деле stash@{0} - это ревизия в git, на которую вы можете переключиться... но git stash apply ...
должен выяснить, как DTRT применить его к вашему текущему местоположению.
Чтобы применить тайник и удалить его из списка, запустите:
git stash pop stash@{n}
Чтобы применить тайник и сохранить его в тайнике, запустите:
git stash apply stash@{n}
Начиная с версии 2.11, это довольно просто, вы можете использовать номер стека N вместо "stash@{n}"
, Так что теперь вместо использования:
git stash apply "stash@{n}"
Вы можете ввести:
git stash apply n
Например, в вашем списке:
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
Если вы хотите подать заявку stash@{1}
Вы можете напечатать:
git stash apply 1
В противном случае вы можете использовать его, даже если у вас есть некоторые изменения в вашем каталоге, начиная с 1.7.5.1, но вы должны быть уверены, что тайник не перезапишет изменения вашего рабочего каталога, если это произойдет, вы получите ошибку:
error: Your local changes to the following files would be overwritten by merge:
file
Please commit your changes or stash them before you merge.
В более ранних версиях 1.7.5.1 он отказывался работать, если в рабочем каталоге произошли изменения.
Примечания к выпуску Git:
Пользователь всегда должен сказать "stash@{$N}", когда присваивает имя отдельному элементу в расположении по умолчанию для хранилища, то есть повторно ставит отметки в refs/stash. Команда "git stash" научилась принимать "git stash apply 4" как сокращение для "git stash apply stash@{4}"
git stash apply "используется для отказа в работе, если в рабочем дереве произошли какие-либо изменения, даже если изменение не перекрывалось с записанным изменением тайника
Если вы находитесь на компьютере с Windows и в PowerShell, вам нужно процитировать аргумент, такой как:
git stash apply "stash@{0}"
... или применить изменения и удалить из тайника:
git stash pop "stash@{0}"
В противном случае без кавычек вы можете получить эту ошибку:
fatal: неоднозначный аргумент 'stash@': неизвестная ревизия или путь не в рабочем дереве.
Git Stash list
В списке будут показаны все спрятанные элементы, например:stash@{0}:,stash@{1}:,..,stash@{n}:
Затем выберите число n, которое обозначает stash @ {n}:
git stash apply n
for eg: git stash apply 1 will apply that particular stashed changes to the current branch
Если у вас есть больше тайников, я рекомендую вам проверить, прежде чем применять их. Использовать:
git stash show -p
чтобы увидеть последний тайник в деталях. Если у вас больше тайников и вы хотите конкретный, добавьте номер тайника в конце:
git stash show 1
Затем, когда вы найдете нужный тайник, примените его, набрав:
git stash apply 1
Опять же, номер — это пример без номера, который вы будете применять последним.
git stash apply n
затем выберите тайник для применения
git stash apply 1
Просто делаю простой для понимания для новичков.
Проверьте свой список git stash с помощью следующей команды:
git stash list
А затем примените следующую команду:
git stash apply stash@{n}
Например: я применяю свой последний тайник (последний всегда имеет индекс {0} в верхней части списка тайников).
git stash apply stash@{0}
Вам нужно заключить строку в кавычки, потому что ваша оболочка использует содержимое {} как расширение. Так что используйте git stash apply ' [email protected] {index}'. В качестве альтернативы вы можете использовать SHA тайника или в следующий раз, когда вы примените его, вы можете назвать тайник самостоятельно.