Добавьте несколько файлов в Stash (Git)

в настоящее время у меня есть несколько измененных файлов в моей локальной ветке:

modified:   commands/abc/Test.cs
modified:   common/des/Info.cs
modified:   common/pit/Abc.cs
modified:   services/Services123.cs

Я хочу поставить stash только первым 3. Как я могу это сделать?


person 4est    schedule 08.07.2020    source источник


Ответы (1)


Вы можете явно указать файлы для хранения после --

git stash -- commands/abc/Test.cs common/des/Info.cs common/pit/Abc.cs

Тогда ваши изменения в services/Services123.cs не будут сохранены.

(Обратите внимание, что в вашем конкретном случае вы можете удобно использовать имена файлов и использовать подстановочный знак, например git stash -- com*)

person RomainValeri    schedule 08.07.2020
comment
что, если все мои файлы добавлены на сцену? А потом я хочу, чтобы все файлы со сцены спрятать? - person 4est; 08.07.2020
comment
@ 4est Затем вы можете использовать другой флаг, --keep-index, но предупреждение: нет --stash-index-only аналога, который бы делал то, что вы хотите. Вам нужно будет 1) git stash --keep-index сохранить неустановленные изменения, затем 2) выполнить обычную git stash, которая будет содержать только ваши поэтапные файлы, и, наконец, восстановить в рабочем дереве то, что вы сначала спрятали, с помощью git stash pop stash{1}. В конце этого (немного неуклюжего) процесса все ваши поэтапные изменения сохраняются в stash{0}, а другие изменения находятся в рабочем дереве, ожидая постановки / отмены. - person RomainValeri; 08.07.2020
comment
спасибо, поэтому мне нужно сделать: 1) git stash --keep-index 2) git stash push -m my_new_stash - person 4est; 08.07.2020
comment
Да, если вы предпочитаете ссылаться на свой тайник (неустановленные изменения) по дескриптору имени, а не по его номеру тайника, как я. Оба работают. (Если вы не уверены, попробуйте его в тестовом репозитории, он очень быстро настраивается с помощью пары текстовых файлов.) - person RomainValeri; 08.07.2020
comment
последний qq: вместо пункта _1 _.... что еще я могу сделать? - person 4est; 08.07.2020
comment
@ 4est Что неясно в моем первом комментарии? Я уже подробно описал шаги 2) git stash и 3) git stash pop stash@{1}. Скажите, что для вас проблематично / сбивает с толку. ОХ ВАУ .... Важное изменение: в моем предыдущем комментарии я допустил опечатку, которую больше не могу исправить: это не stash{n}, а stash@{n} в каждом случае. Извините за добавленную путаницу. - person RomainValeri; 08.07.2020