Git удалить файлы только в текущем каталоге - PullRequest
0 голосов
/ 02 июля 2019

У меня есть каталог текстовых файлов, которые я хочу удалить из git.Но в каталоге также есть папки с текстовыми файлами, которые я хочу сохранить.

Если я запускаю git rm *.txt, я избавляюсь от примерно сотни текстовых файлов в текущем каталоге.Но также подкаталоги (которые также имеют текстовые файлы) удаляются.

Как я могу просто удалить текстовые файлы в текущем каталоге, но оставить текстовые файлы в подкаталогах без изменений?

хорошо, я использую git на Windows 10. Я начинаю с этот каталог , у меня есть подкаталог, который выглядит следующим образом , и если я дам команду git rm ./*.txt , этот каталог и другие исчезнут вместе стекстовые файлы в этом каталоге.

Я использую командную строку powershell для этого.

Ответы [ 3 ]

4 голосов
/ 02 июля 2019

В соответствии с документами , если имя каталога удалит только файлы в этом каталоге.

  • git rm ./*.txt

Предоставление каталогаname требует явной передачи флага -r для рекурсивного перехода в подкаталоги.


Обновление : операционная система пояснила, что команда выполнялась в Windows PowerShell, и, очевидно,вышеуказанная команда не работает должным образом в PowerShell.Он должен работать, используя Git Bash.

0 голосов
/ 02 июля 2019

Мои самые последние тесты согласуются с тем, что вы описываете - что, несмотря на документы, если вы дадите путь с ведущим каталогом и подстановочным именем файла, он будет совпадать рекурсивно даже без опции -r.

Я нашел два обходных пути:

Один из них - удалить файлы в CMD, а затем выполнить удаление как отдельный шаг

del *.txt
git add *.txt

Это часто нормально, но может быть проблемой, если вы собираетесь использовать git rm --cached.

Другой - злоупотреблять расширением глобуса оболочки. Это происходит по умолчанию в bash или аналогичных оболочках, поэтому многие из нас никогда не замечают такого поведения; насколько я знаю, это не совсем вариант в CMD.

0 голосов
/ 02 июля 2019

Вместо просмотра страниц документации Git вы можете использовать типичные утилиты командной строки.В системах Unix (или в Git Bash / Cygwin):

cd folder
rm *.txt
git add -u
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...