Как я могу удалить все мои тайники 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 для объяснения и гораздо более подробной информации.