ฉันใช้ Git สำหรับการควบคุมเวอร์ชัน ตอนนี้ฉันต้องการลบไฟล์ทั้งหมดในที่เก็บเครื่องที่ไม่ได้ติดตาม
ฉันสามารถใช้
git status
เพื่อแสดงรายการไฟล์เหล่านี้ แต่ฉันจะลบไฟล์ทั้งหมดได้อย่างไร
ฉันใช้ Git สำหรับการควบคุมเวอร์ชัน ตอนนี้ฉันต้องการลบไฟล์ทั้งหมดในที่เก็บเครื่องที่ไม่ได้ติดตาม
ฉันสามารถใช้
git status
เพื่อแสดงรายการไฟล์เหล่านี้ แต่ฉันจะลบไฟล์ทั้งหมดได้อย่างไร
คำตอบ:
git clean -xfหากคุณมีมันอยู่ในละเว้นการใช้งาน คุณสามารถทำได้git clean -dfแต่จะลบไดเรกทอรีที่ไม่ถูกติดตามด้วย ใช้-nสำหรับการแห้ง
-xfจะลบและไฟล์ที่ถูกละเว้นและนี่อาจไม่ใช่สิ่งที่คุณต้องการ ใช้-nfและดำเนินการต่อด้วยความระมัดระวัง ดู: stackoverflow.com/questions/61212/…
วิธีการโต้ตอบของผู้ใช้:
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เพื่อตรวจสอบสิ่งที่มันจะทำ
มีความละเอียดอ่อนที่กล่าวถึงเกี่ยวกับ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ทำสิ่งนั้น