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 man :

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

Показувати файли, що не відстежуються.

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

Можливі варіанти:

  • no - Не показувати файли без відстеження
  • normal - Показує відстежені файли та каталоги
  • all - Також відображає окремі файли в невідстежених каталогах.

Типове значення можна змінити за допомогою status.showUntrackedFilesзмінної конфігурації, задокументованої у git-config (1) .


9

Ви можете просто використовувати

git add --dry-run .

у кореневій частині вашого сховища, який надає вам список будь-якого файлу в будь-якому підкаталозі, який буде доданий під час розгляду .gitignore.



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 --видалено Показати видалені файли у вихідних даних

-m --modified Показати змінені файли у вихідних даних


Це питання специфічне для того, щоб показати, які файли будуть додані, при цьому враховуючи .gitignore. Ваша відповідь ігнорує .gitignore.
Джаред,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.