Git: วิธีลบไฟล์ที่ไม่ได้ติดตามทั้งหมด


39

ฉันใช้ Git สำหรับการควบคุมเวอร์ชัน ตอนนี้ฉันต้องการลบไฟล์ทั้งหมดในที่เก็บเครื่องที่ไม่ได้ติดตาม

ฉันสามารถใช้

git status

เพื่อแสดงรายการไฟล์เหล่านี้ แต่ฉันจะลบไฟล์ทั้งหมดได้อย่างไร


1
คุณเพียงแค่ตรวจสอบไฟล์ทั้งหมดไปยังที่อื่นที่เครื่องของคุณแล้วลบเวอร์ชั่นเก่าหรือไม่
Nifle

1
แน่นอนฉันทำได้ แต่ไม่มีวิธีที่ง่ายกว่านี้ใช่ไหม
RoflcoptrException

คำตอบ:


54

git clean -xfหากคุณมีมันอยู่ในละเว้นการใช้งาน คุณสามารถทำได้git clean -dfแต่จะลบไดเรกทอรีที่ไม่ถูกติดตามด้วย ใช้-nสำหรับการแห้ง

ดูการล้างการยกเลิกการติดตาม


3
-x ละเว้นการเพิกเฉย ..
2557

8
-xfจะลบและไฟล์ที่ถูกละเว้นและนี่อาจไม่ใช่สิ่งที่คุณต้องการ ใช้-nfและดำเนินการต่อด้วยความระมัดระวัง ดู: stackoverflow.com/questions/61212/…
Mr_and_Mrs_D

2
จำไว้ว่าสิ่งนี้อาจลบโฟลเดอร์ environment / IDE ของคุณ (เช่น. vagrant หรือ .idea (phpstorm))
timhc22

1
ระวัง! ไฟล์ gitignored จะถูกลบทิ้งอย่างถาวร -100
sepehr

5
git clean -f

8
มันอาจเข้าท่าที่จะเพิ่มความหมายของคำสั่งนั้นเพื่อทำให้คำตอบนี้มีอยู่ในตัวเอง
NN

5

วิธีการโต้ตอบของผู้ใช้:

git clean -i -fd

Remove .classpath [y/N]? N
Remove .gitignore [y/N]? N
Remove .project [y/N]? N
Remove .settings/ [y/N]? N
Remove src/com/amazon/arsdumpgenerator/inspector/ [y/N]? y
Remove src/com/amazon/arsdumpgenerator/manifest/ [y/N]? y
Remove src/com/amazon/arsdumpgenerator/s3/ [y/N]? y
Remove tst/com/amazon/arsdumpgenerator/manifest/ [y/N]? y
Remove tst/com/amazon/arsdumpgenerator/s3/ [y/N]? y

-i สำหรับการโต้ตอบ
-f สำหรับไฟล์
-d สำหรับไดเร็กทอรี

หมายเหตุ: เพิ่ม-nหรือ--dry-runเพื่อตรวจสอบสิ่งที่มันจะทำ


3

มีความละเอียดอ่อนที่กล่าวถึงเกี่ยวกับgit clean -fไฟล์และไดเรกทอรีที่ไม่ได้ติดตาม หากคุณมีไดเรกทอรีที่ไม่ได้ติดตามซึ่งมีไฟล์ซึ่งก็คือ fortiori, untracked git clean -fจะไม่ลบไฟล์ที่ไม่ได้ติดตาม

กล่าวอีกนัยหนึ่งอาจไม่ใช่กรณีที่git clean -fจะลบไฟล์ที่ไม่ได้ติดตามทั้งหมด คำอธิบายที่ดีกว่าgit clean -fคือมันลบไฟล์ที่ไม่ได้ติดตามทั้งหมดที่ไม่ได้อยู่ในไดเรกทอรีที่ไม่ได้ติดตาม

git clean -f -d จะต้องใช้เพื่อลบไฟล์ที่ไม่ได้ติดตามซึ่งอยู่ในไดเรกทอรีที่ไม่ได้ติดตามและดูเหมือนจะไม่มีทางที่จะลบไฟล์ที่ไม่ได้ติดตามได้โดยไม่ต้องลบไดเรกทอรีที่ไม่ได้ติดตามที่มีไฟล์ที่ไม่ได้ติดตาม

ใช้git clean -f -d -nเพื่อดูว่าคุณต้องการทำอะไรเพื่อกู้คืนไดเร็กตอรี่ที่ทำงานของคุณให้เป็นไฟล์ที่ไม่มีไฟล์ที่ไม่ได้ติดตาม จากนั้นใช้git clean -f -dทำสิ่งนั้น

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