git status -> แสดงไฟล์ที่จะเพิ่ม (จัดฉาก) ในไดเรกทอรีย่อย


93

สมมติว่าฉันเริ่มต้นที่เก็บ git ในโฟลเดอร์และฉันมีไดเร็กทอรีย่อยอยู่ในนั้น

ฉันมีรูปแบบ globbing หลายแบบ.gitignoreเพื่อแยกไฟล์ในไดเร็กทอรีย่อย แต่เมื่อฉันทำgit status ก่อนที่ผมจะขั้นตอนอะไรสถานะคอมไพล์จะแสดงเฉพาะชื่อของโฟลเดอร์ย่อยที่จะถูกเพิ่มโดยไม่ต้องเฉพาะเจาะจงเกี่ยวกับการที่ไฟล์ในไดเรกทอรีย่อยแต่ละรายการจะถูกเพิ่ม (ฉาก) git add .ถ้าฉันทำ

ที่น่าสนใจgit statusคือมีความชัดเจนเกี่ยวกับไฟล์ที่จะถูกคอมมิตหลังจากที่ฉันจัดทำไฟล์ด้วยgit add ..

มีการขอgit statusให้ชัดเจนเกี่ยวกับไฟล์สำหรับไฟล์ที่จะจัดฉากหรือไม่?

คำตอบ:


149

ลอง:

git status -u

หรือแบบยาว:

git status --untracked-files

ซึ่งจะแสดงไฟล์แต่ละไฟล์ในไดเรกทอรีที่ไม่มีการติดตาม

นี่คือคำอธิบายโดยละเอียดของ-uตัวเลือกจากgit-status man page :

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

แสดงไฟล์ที่ไม่ได้ติดตาม

พารามิเตอร์โหมดเป็นทางเลือก (ค่าเริ่มต้นเป็นall) และใช้เพื่อระบุการจัดการไฟล์ที่ไม่ถูกติดตาม เมื่อ-uไม่ได้ใช้ค่าเริ่มต้นคือnormalแสดงไฟล์และไดเรกทอรีที่ไม่ได้ติดตาม

ตัวเลือกที่เป็นไปได้คือ:

  • no - ไม่แสดงไฟล์ที่ไม่ถูกติดตาม
  • normal - แสดงไฟล์และไดเรกทอรีที่ไม่ได้ติดตาม
  • all - ยังแสดงไฟล์แต่ละไฟล์ในไดเรกทอรีที่ไม่มีการติดตาม

เริ่มต้นสามารถเปลี่ยนแปลงได้โดยใช้status.showUntrackedFilesตัวแปรการกำหนดค่าการบันทึกไว้ในGit-config (1)


11

คุณสามารถใช้ไฟล์

git add --dry-run .

ในรากของพื้นที่เก็บข้อมูลของคุณซึ่งจะช่วยให้คุณรายการของไฟล์ใด ๆ ในไดเรกทอรีย่อยใด ๆ .gitignoreที่จะถูกเพิ่มในขณะที่การพิจารณา



1

วิธีการวาง.gitignoreไฟล์ในไดเรกทอรีย่อยของคุณแทนตามบรรทัดของ

# Ignore everything in this directory
*
# Except these file
!.gitignore
!file1
!file2
!file3

ฉันไม่มีอะไรในของฉัน.gitignoreที่ดูเหมือนสิ่งที่คุณโพสต์ (เช่นละเว้นไดเรกทอรีหรือไดเรกทอรีย่อยที่มีข้อยกเว้น) ทำไมถึงเป็นเช่นนั้น? โดยวิธีนี้git statusจะส่งคืนรายการไฟล์ที่จะถูกคอมมิตอย่างถูกต้องหลังจากการจัดเตรียมด้วยgit add ..
Amelio Vazquez-Reina

1
ฉันรู้ว่าคุณทำไม่ได้ ลบไดเร็กทอรีออกจากรูท.gitignoreและเพิ่มสิ่งนี้.gitignoreในไดเร็กทอรีย่อยของคุณ - คุณสามารถมีได้มากกว่าหนึ่ง พวกมันทำรัง
Adrian Cornish

-1

ใช้คำสั่ง git git ls-files -o เพื่อแสดงรายการไฟล์ที่ไม่ได้ติดตาม

แทน -o ใช้ -c - แคชแสดงไฟล์แคชในเอาต์พุต (ค่าเริ่มต้น)

-d - ลบแสดงไฟล์ที่ถูกลบในผลลัพธ์

-m --modified แสดงไฟล์ที่แก้ไขในเอาต์พุต


คำถามนี้มีไว้เพื่อแสดงว่าไฟล์ใดจะถูกเพิ่มในขณะที่บัญชีสำหรับ. gitignore คำตอบของคุณละเว้น. gitignore
Jared
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.