Как я могу удалить все мои тайники Git одновременно?
В частности, я имею в виду, набрав в одной команде.
Как я могу удалить все мои тайники Git одновременно?
В частности, я имею в виду, набрав в одной команде.
Ответы:
Следующая команда удаляет все ваши тайники:
git stash clear
Из документации git :
clearУдалить все спрятанные состояния.
ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ. Эти состояния будут подвергаться обрезке, и восстановление их может оказаться невозможным (...).
stash drop(» Удалить один припрятал состояние из списка тайник Если нет <тайник> не задан, то он удаляет последний один (...).. „) не дает ответа на вопрос (“ Как я могу удалить все из мой Git прячется сразу? ")?
git stash clearдля подтверждения, если все git stash list
gitпрактически невозможно найти! git-scm.com/docs/git-stash
git help <command>это лучший способ получить документацию (и, на самом деле, это довольно хорошо). В этом случае git help stashясно покажите, что git stash clearделает этот поступок (это не помешало мне прийти первым на SO и выговорить ответ ... но это говорит вам обо мне больше, чем git: D)
Есть два способа удалить тайник:
$ git stash drop <stash_id>.$ git stash clear.Используйте оба из них с осторожностью, может быть трудно восстановить когда-то удаленные тайники.
Вот справочная статья .
эта команда позволяет вам просмотреть все спрятанные изменения.
git stash list
Вот следующая команда, чтобы очистить все ваши изменения.
git stash clear
Теперь, если вы хотите удалить одно из сохраненных изменений из области хранения
git stash drop stash@{index} // here index will be shown after getting stash list.
Примечание:
git stash listпозволяет получить индекс из области хранения в git.
git stash drop 'stash@{index}'с апострофами.
Я хотел сохранить несколько последних тайников, но удалить все остальное.
Поскольку все тайники перенумеровываются, когда вы их бросаете, это легко сделать с помощью while. Чтобы удалить все тайники старше, чем тайник @ {19}:
while git stash drop 'stash@{20}'; do true; done
git stash pop 3вместо этого вы можете ссылаться на 3-й тайник из списка тайников? Я хотел знать, можем ли мы использовать whileциклы и сбрасывать тайники, используя значения индекса.
У меня было другое требование, например, нужно удалить только несколько тайников, в этом случае будет полезен приведенный ниже код.
#!/bin/sh
for i in `seq 5 8`
do
git stash drop stash@{$i}
done
/ * удалит от 5 до 8 индексов * /
for iterator in `seq 5 8`; git stash drop stash@{$iterator}; done
for i in `seq 4`; do git stash drop 'stash@{5}'; done
do
если вы хотите удалить последнюю тайник или по какому-либо конкретному индексу -
git stash drop type_your_index
> git stash list
stash@{0}: abc
stash@{1}: xyz
stash@{1}: pqr
> git stash drop 0
Dropped refs/stash@{0}
> git stash list
stash@{0}: xyz
stash@{1}: pqr
если вы хотите удалить все тайники одновременно -
> git stash clear
>
> git stash list
>
Предупреждение : после того, как вы сделали, вы не можете вернуть свой тайник
Чтобы удалить все тайники старше 40 дней, используйте:
git reflog expire --expire-unreachable=40.days refs/stash
Добавьте, --dry-runчтобы увидеть, какие тайники удалены.
См. Https://stackoverflow.com/a/44829516/946850 для объяснения и гораздо более подробной информации.