อัพเดต 2019:
ตั้งแต่กรกฎาคม 2019git restore
ได้มีคำสั่งใหม่ซึ่งไม่ตรงนี้:
ในgit status
ตอนนี้ Git แนะนำให้ใช้คำสั่งนี้แทนที่จะgit checkout
ใช้
ในขณะที่คำสั่งนี้ยังสามารถใช้เพื่อกู้คืนแผนผังการทำงานไปยังการคอมมิทเฉพาะหรือการกู้คืนเนื้อหาของดัชนีโดยค่าเริ่มต้นแผนผังการทำงานจะถูกกู้คืนสู่สถานะในดัชนี (สิ่งที่ถูกถามที่นี่)
ดังนั้นในการกู้คืนไฟล์ที่ตรงกับ pathspec (กำจัดการเปลี่ยนแปลงที่ไม่มีการจัดเรียง) คุณจะต้อง:
git restore <pathspec>
ตัวอย่างเช่นหากต้องการกู้คืนการเปลี่ยนแปลงที่ไม่ได้จัดทำทั้งหมดในไดเรกทอรีปัจจุบันคุณสามารถเรียกใช้:
git restore .
หากคุณเรียกใช้สิ่งนี้จากรูทของโปรเจ็กต์มันจะกู้คืนการเปลี่ยนแปลงที่ไม่มีการจัดเก็บทั้งหมดในที่เก็บทั้งหมด
โปรดทราบว่าเช่นเดียวกับgit checkout -- .
(ตามที่อธิบายโดย Mariusz Nowak) สิ่งนี้จะยกเลิกการเปลี่ยนแปลงเฉพาะไฟล์ที่ติดตามโดย Git และจะไม่ทิ้งไฟล์ใหม่ที่ไม่ได้ติดตาม หากคุณต้องการยกเลิกการเปลี่ยนแปลงใด ๆ ที่ไม่จัดทำรวมถึงไฟล์ที่ไม่ได้ติดตามใหม่คุณสามารถเรียกใช้งานเพิ่มเติมได้:
git clean -df
ระมัดระวังคำสั่งนี้ในภายหลังอย่างไรก็ตามเนื่องจากคุณอาจทิ้งไฟล์ที่คุณไม่ต้องการกำจัด
หมายเหตุเกี่ยวกับgit restore
: เนื่องจากนี่เป็นคำสั่งใหม่หน้า man ของมันจึงมีคำเตือน:
คำสั่งนี้เป็นการทดลอง พฤติกรรมอาจเปลี่ยนไป
ดังนั้นจึงเป็นไปได้ว่าคำตอบนี้อาจล้าสมัยหากพฤติกรรมเปลี่ยนไปในอนาคต ดังนั้นจึงควรที่จะเรียกใช้ด่วนman git-restore
ก่อนใช้งาน
git-clean
ลบไฟล์ที่ไม่ได้ติดตามเท่านั้นออกจากแผนผัง