stan git -> Pokaż pliki, które zostaną dodane (umieszczone w poczekalni) w podkatalogach

88

Powiedzmy, że uruchamiam repozytorium git w folderze i mam w nim kilka podkatalogów.

Mam kilka wzorców globowania .gitignoredo wykluczania plików w podkatalogach. Jednak gdy zrobię to git status przed wykonaniem czegokolwiek na etapie , status git pokazuje tylko nazwy podfolderów, które zostaną dodane, bez określania, które pliki w każdym podkatalogu zostaną dodane (przemieszczone), jeśli to zrobię git add ..

Co ciekawe jednak, git statusjest wyraźnie o plikach, które zostaną popełnione po I etapie z plikami git add ..

Czy mimo to zapytać git statussię wprost o plikach dla plików, które byłyby inscenizowanych ?

Amelio Vazquez-Reina
źródło

Odpowiedzi:

147

Próbować:

git status -u

lub długa forma:

git status --untracked-files

który pokaże pojedyncze pliki w nieśledzonych katalogach.

Oto szczegółowy opis -uopcji ze strony podręcznika git-status :

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

Pokaż nieśledzone pliki.

Parametr mode jest opcjonalny (domyślnie all) i służy do określania obsługi plików bez śledzenia; gdy -unie jest używane, domyślnie jest to normal, tj. pokaż nieśledzone pliki i katalogi.

Możliwe opcje to:

  • no - Nie pokazuj nieśledzonych plików
  • normal - Pokazuje nieśledzone pliki i katalogi
  • all - Pokazuje również pojedyncze pliki w nieśledzonych katalogach.

Wartość domyślną można zmienić za pomocą status.showUntrackedFileszmiennej konfiguracyjnej udokumentowanej w git-config (1) .

Penghe Geng
źródło
9

Możesz po prostu użyć

git add --dry-run .

w katalogu głównym repozytorium, który zawiera listę dowolnego pliku w dowolnym podkatalogu, który zostałby dodany podczas rozważania .gitignore.

cweigel
źródło
1

Co powiesz na umieszczenie .gitignorepliku w podkatalogach zamiast w wierszu

# Ignore everything in this directory
*
# Except these file
!.gitignore
!file1
!file2
!file3
Adrian Cornish
źródło
Nie mam niczego, .gitignoreco wyglądałoby tak, jak opublikowałeś (tj. Ignorowanie katalogów lub podkatalogów z wyjątkami). Poza tym, dlaczego to ma znaczenie? Nawiasem mówiąc, git statuszwraca listę plików, które zostałyby zatwierdzone poprawnie po przemieszczeniu z git add ..
Amelio Vazquez-Reina
1
Wiem, że ty nie. Usuń katalog z katalogu głównego .gitignorei dodaj go .gitignoredo swojego podkatalogu - możesz mieć więcej niż jeden. Gniazdują
Adrian Cornish
-1

użyj polecenia git git ls-files -o, aby wyświetlić nieśledzony plik

zamiast tego -o użyj -c --cached Pokazuje pliki z pamięci podręcznej na wyjściu (domyślne)

-d --deleted Pokaż usunięte pliki w wyniku

-m --modified Wyświetla w wynikach zmodyfikowane pliki

Pradeep Pandey
źródło
To pytanie jest specyficzne dla pokazania, jakie pliki zostaną dodane, z uwzględnieniem .gitignore. Twoja odpowiedź ignoruje .gitignore.
Jared