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 ?

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) .


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.



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

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


Pertanyaan ini khusus untuk menunjukkan file apa yang akan ditambahkan, sambil memperhitungkan .gitignore. Jawaban Anda mengabaikan .gitignore.
Jared
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.