ฉันกลัวว่าบรรทัดแรกของบรรทัดคำสั่งเหล่านั้นถูกลบโดยไม่มีเงื่อนไขจากการทำงานคัดลอกไฟล์ทั้งหมดที่อยู่ในพื้นที่จัดเตรียมของคอมไพล์ ไฟล์ที่สองทำ unstaged ไฟล์ทั้งหมดที่ถูกติดตาม แต่ถูกลบไปแล้ว น่าเสียดายที่นี่หมายความว่าคุณจะสูญเสียการแก้ไขที่ไม่มีข้อผูกมัดใด ๆ กับไฟล์เหล่านั้น
หากคุณต้องการได้รับสำเนาการทำงานของคุณและดัชนีกลับไปที่พวกเขากระทำล่าสุดคุณสามารถ ( อย่างระมัดระวัง ) ใช้คำสั่งต่อไปนี้:
git reset --hard
ฉันพูดว่า "อย่างระมัดระวัง" เนื่องจากgit reset --hard
จะกำจัดการเปลี่ยนแปลงที่ไม่มีข้อผูกมัดในสำเนาการทำงานและดัชนีของคุณ อย่างไรก็ตามในสถานการณ์เช่นนี้ดูเหมือนว่าคุณเพียงแค่ต้องการกลับไปสู่สถานะในการกระทำครั้งสุดท้ายของคุณและการเปลี่ยนแปลงที่ไม่มีข้อผูกมัดได้สูญหายไปแล้ว
อัปเดต: ฟังจากความเห็นของคุณเกี่ยวกับคำตอบของแอมเบอร์ที่คุณยังไม่ได้สร้างความมุ่งมั่นใด ๆ (เนื่องจาก HEAD ไม่สามารถแก้ไขได้) ดังนั้นสิ่งนี้จะไม่ช่วยฉันกลัว
สำหรับวิธีท่อเหล่านั้นทำงาน: git ls-files -z
และการส่งออกทั้งรายชื่อไฟล์ที่คั่นด้วยไบต์git diff --name-only --diff-filter=D -z
0
(สิ่งนี้มีประโยชน์เนื่องจากไม่เหมือนกับ newlines 0
ไบต์รับประกันได้ว่าจะไม่เกิดขึ้นในชื่อไฟล์บนระบบที่เหมือน Unix) โปรแกรมนี้xargs
สร้างบรรทัดคำสั่งจากอินพุตมาตรฐานโดยค่าเริ่มต้นจากการรับบรรทัดจากอินพุตมาตรฐานและเพิ่มไปยังจุดสิ้นสุด ของบรรทัดคำสั่ง -0
ตัวเลือกว่าจะคาดหวังว่าเข้ามาตรฐานโดยแยกจากกันโดย0
ไบต์ xargs
อาจเรียกใช้คำสั่งหลาย ๆ ครั้งเพื่อใช้พารามิเตอร์ทั้งหมดจากอินพุตมาตรฐานทำให้แน่ใจว่าบรรทัดคำสั่งไม่ยาวเกินไป
ตัวอย่างง่ายๆหากคุณมีไฟล์ชื่อtest.txt
มีเนื้อหาดังต่อไปนี้:
hello
goodbye
hello again
... จากนั้นคำสั่งxargs echo whatever < test.txt
จะเรียกใช้คำสั่ง:
echo whatever hello goodbye hello again
rm -f
ไม่ใช่คำสั่ง git และไม่มี--cached
ตัวเลือก ไฟล์ในเครื่องของคุณถูกลบก่อนที่คุณจะดำเนินการgit rm
ดังนั้นฉันไม่คิดว่าคุณจะโทษความผิดgit rm
ใด ๆ