git status -> Tampilkan file yang akan ditambahkan (dipentaskan) di subdirektori

91

Katakanlah saya memulai repositori git dalam sebuah folder, dan saya memiliki beberapa subdirektori di dalamnya.

Saya memiliki beberapa pola globbing .gitignoreuntuk mengecualikan file di subdirektori. Namun, ketika saya melakukan git status sebelum melakukan apa pun , status git hanya menampilkan nama subfolder yang akan ditambahkan, tanpa menjelaskan secara spesifik file mana di setiap subdirektori yang akan ditambahkan (bertahap) jika saya melakukannya git add ..

Menariknya, git statuseksplisit tentang file yang akan dilakukan setelah saya mementaskan file dengan git add ..

Apakah ada cara untuk meminta git statussecara eksplisit tentang file untuk file yang akan dipentaskan ?

Amelio Vazquez-Reina
sumber

Jawaban:

148

Mencoba:

git status -u

atau bentuk panjang:

git status --untracked-files

yang akan menampilkan file individual dalam direktori yang tidak terlacak.

Berikut penjelasan rinci tentang -uopsi dari halaman manual git-status :

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

Tampilkan file yang tidak terlacak.

Parameter mode adalah opsional (default ke all), dan digunakan untuk menentukan penanganan file yang tidak terlacak; bila -utidak digunakan, defaultnya adalah normal, yaitu menampilkan file dan direktori yang tidak terlacak.

Opsi yang memungkinkan adalah:

  • no - Tidak menampilkan file yang tidak terlacak
  • normal - Menampilkan file dan direktori yang tidak terlacak
  • all - Juga menampilkan file individual dalam direktori yang tidak terlacak.

Defaultnya dapat diubah menggunakan status.showUntrackedFilesvariabel konfigurasi yang didokumentasikan di git-config (1) .

Penghe Geng
sumber
11

Anda cukup menggunakan

git add --dry-run .

di root repositori Anda yang memberi Anda daftar file apa pun di sub direktori mana pun yang akan ditambahkan sambil mempertimbangkan .gitignore.

cweigel.dll
sumber
1

Bagaimana jika meletakkan .gitignorefile di sub direktori Anda, bukan di sepanjang baris

# Ignore everything in this directory
*
# Except these file
!.gitignore
!file1
!file2
!file3
Adrian Cornish
sumber
Saya tidak memiliki apa pun di dalam saya .gitignoreyang terlihat seperti yang Anda posting (misalnya, mengabaikan direktori atau subdirektori dengan pengecualian). Juga, mengapa itu penting? Ngomong-ngomong, git statusmengembalikan daftar file yang akan dikomit dengan benar setelah pementasan dengan git add ..
Amelio Vazquez-Reina
1
Aku tahu kamu tidak. Hapus direktori dari root .gitignoredan tambahkan ini .gitignoreke sub direktori Anda - Anda dapat memiliki lebih dari satu. Mereka bersarang
Adrian Cornish
-1

gunakan perintah git git ls-files -o untuk membuat daftar file yang tidak terlacak

sebagai gantinya -o gunakan -c --cached Tampilkan file yang di-cache dalam output (default)

-d --deleted Menampilkan file yang terhapus dalam output

-m --modified Tampilkan file yang diubah dalam output

Pradeep Pandey
sumber
Pertanyaan ini khusus untuk menunjukkan file apa yang akan ditambahkan, sambil memperhitungkan .gitignore. Jawaban Anda mengabaikan .gitignore.
Jared