git status -> Показать файлы, которые будут добавлены (поставлены) в подкаталоги

88

Скажем, я запускаю репозиторий git в папке, и у меня есть несколько подкаталогов в нем.

У меня есть несколько шаблонов подстановки, .gitignoreчтобы исключить файлы в подкаталогах. Однако, когда я делаю это git status до того, как что-либо подготовлю , git status показывает только имена подкаталогов, которые будут добавлены, без указания конкретных файлов в каждом подкаталоге, которые будут добавлены (поэтапно), если я это сделаю git add ..

Интересно, однако, что git statusздесь явно указаны файлы, которые будут зафиксированы после того, как я создаю файлы с расширением git add ..

Есть в любом случае попросить , git statusчтобы быть явными о файлах для файлов , которые будут постановочными ?

Амелио Васкес-Рейна
источник

Ответы:

147

Пытаться:

git status -u

или полная форма:

git status --untracked-files

который покажет отдельные файлы в неотслеживаемых каталогах.

Вот подробное описание -uопции со страницы руководства git-status :

-u[<mode>]
--untracked-files[=<mode>]

Показать неотслеживаемые файлы.

Параметр режима является необязательным (по умолчанию all) и используется для указания обработки неотслеживаемых файлов; когда -uне используется, используется значение по умолчанию normal, т.е. показывать неотслеживаемые файлы и каталоги.

Возможные варианты:

  • no - Не показывать неотслеживаемые файлы
  • normal - Показывает неотслеживаемые файлы и каталоги
  • all - Также показывает отдельные файлы в неотслеживаемых каталогах.

Значение по умолчанию можно изменить с status.showUntrackedFilesпомощью переменной конфигурации, задокументированной в git-config (1) .

Пэнхэ Гэн
источник
9

Вы можете просто использовать

git add --dry-run .

в корне вашего репозитория, который дает вам список любого файла в любом подкаталоге, который будет добавлен при рассмотрении .gitignore.

Cweigel
источник
1

Как насчет того, чтобы поместить .gitignoreфайл в свои подкаталоги вместо строки

# Ignore everything in this directory
*
# Except these file
!.gitignore
!file1
!file2
!file3
Адриан Корниш
источник
У меня нет ничего .gitignoreпохожего на то, что вы опубликовали (т.е. игнорируя каталоги или подкаталоги с исключениями). Кроме того, какое это имеет значение? Кстати, git statusвозвращает список файлов, которые будут правильно зафиксированы после постановки с помощью git add ..
Амелио Васкес-Рейна,
1
Я знаю, что ты не. Удалите каталог из корня .gitignoreи добавьте его .gitignoreв свой подкаталог - у вас может быть больше одного. Они гнездятся
Адриан Корниш
-1

используйте команду git git ls-files -o для вывода списка неотслеживаемых файлов

вместо -o используйте -c --cached Показывать кешированные файлы в выводе (по умолчанию)

-d --deleted Показать удаленные файлы в выводе

-m --modified Показать измененные файлы в выводе

Прадип Пандей
источник
Этот вопрос специфичен для того, чтобы показать, какие файлы будут добавлены, с учетом .gitignore. Ваш ответ игнорирует .gitignore.
Джаред