Як я можу видалити всі мої скриньки 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
робить діяння (це не завадило мені спершу прийти до ТА і відповісти на відповідь ... але це говорить вам більше про мене, ніж 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}'
апострофами.
Я хотів зберегти кілька останніх прихованих даних, але видалити все інше.
Оскільки всі стаси переставляються під час скидання однієї, це справді легко зробити з часом. Щоб видалити всі скрині, старіші за скриньку @ {19}:
while git stash drop 'stash@{20}'; do true; done
git stash pop 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 для пояснення та багато іншого.