Как я могу удалить выборочные тайники в мерзавце? - PullRequest
2 голосов
/ 11 декабря 2019

У меня есть список тайников, и я хочу отбросить некоторые из них выборочно.

Для моего примера я хочу удалить тайник @ {1}, тайник @ {3}, тайник @ {4}, тайник @ 6}

$ git stash list

stash@{1}: Tests On branch1-om: Test for #8
stash@{2}: WIP On branch1-om: WIP for #12
stash@{3}: Temp on branch1-om: 0a447303 Add Unit Tests for the HttpClient
stash@{4}: To delete stash: 233abc813c fix
stash@{5}: WIP on branchn-test-om: 4a42e4 WIP: Commit
stash@{6}: On branch-test-om: projects deleted/modified when rebuilt
stash@{7}: My configurations: Apply my local dev configurations

Мой текущий шаг очень повторяющийся:

$ git stash drop stash @ {1}

$ git stash список

stash@{1}: WIP On branch1-om: WIP for #12
stash@{2}: Temp on branch1-om: 0a447303 Add Unit Tests for the HttpClient
stash@{3}: To delete stash: 233abc813c fix
stash@{4}: WIP on branchn-test-om: 4a42e4 WIP: Commit
stash@{5}: On branch-test-om: projects deleted/modified when rebuilt
stash@{6}: My configurations: Apply my local dev configurations

$ git stash drop stash @ {2}

$ git stash list

stash@{1}: WIP On branch1-om: WIP for #12
stash@{2}: To delete stash: 233abc813c fix
stash@{3}: WIP on branchn-test-om: 4a42e4 WIP: Commit
stash@{4}: On branch-test-om: projects deleted/modified when rebuilt
stash@{5}: My configurations: Apply my local dev configurations

$ git stash drop stash @ {2}

$ git stash list

stash@{1}: WIP On branch1-om: WIP for #12
stash@{2}: WIP on branchn-test-om: 4a42e4 WIP: Commit
stash@{3}: On branch-test-om: projects deleted/modified when rebuilt
stash@{4}: My configurations: Apply my local dev configurations

$ git stash drop stash @ {3}

$ git stash list

stash@{1}: WIP On branch1-om: WIP for #12
stash@{2}: WIP on branchn-test-om: 4a42e4 WIP: Commit
stash@{4}: My configurations: Apply my local dev configurations

Ответы [ 2 ]

7 голосов
/ 11 декабря 2019

Проблема в том, что удаление тайников сверху приводит к их нумерации. Но так как вы можете удалить их в любой позиции, вам не нужно действовать так, как если бы тайники имели только стековый доступ.

Брось их из дальнего края, чтобы сохранить числа нетронутыми:

for N in 6 4 3 1; do git stash drop stash@\{$N}; done
0 голосов
/ 11 декабря 2019

К сожалению, git stash drop не поддерживает множественный stash в качестве параметров:

% git stash drop stash@{{0},{2}}
Too many revisions specified: 'stash@{0}' 'stash@{2}'

Лучше всего сделать следующее:

i=0; for s in 0 2; do git stash drop stash@{$((s-i))}; i=$((i+1)); done

Поскольку git stash обновляет stashИндекс, даже если вы не смотрите на список тайников (который нечетный tbh)

РЕДАКТИРОВАТЬ: Хотя это только если вы хотите удалить их в порядке возрастания, решение 9000 в противном случае гораздо проще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...