ฉันมี repo ที่มีสองไฟล์ที่ฉันควรเปลี่ยนในเครื่อง
ฉันติดอยู่กับสิ่งนี้:
$ git status
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: dir1/foo.aspx
# modified: dir2/foo.aspx
#
no changes added to commit (use "git add" and/or "git commit -a")
การทำgit diff
บอกว่าเนื้อหาของไฟล์ทั้งหมดมีการเปลี่ยนแปลงแม้ว่าจะดูไม่เป็นความจริง (ดูเหมือนจะมีช่วงบรรทัดทั่วไปที่ดูเหมือนว่าจะไม่สามารถมองเห็นได้)
ที่น่าสนใจคือฉันจำไม่ได้ว่าเปลี่ยนไฟล์เหล่านี้ในเครื่อง repo นี้ใช้กับ repo ระยะไกลหนึ่งรายการ (ส่วนตัวที่ GitHub.com, FWIW)
ไม่ว่าฉันจะพยายามอย่างไรฉันก็ไม่สามารถละทิ้งการเปลี่ยนแปลงเหล่านี้ได้ ฉันได้ลองทั้งหมด:
$ git checkout -- .
$ git checkout -f
$ git checkout -- dir1/checkout_receipt.aspx
$ git reset --hard HEAD
$ git stash save --keep-index && git stash drop
$ git checkout-index -a -f
กล่าวอีกนัยหนึ่งฉันได้ลองทุกอย่างที่อธิบายไว้ในฉันจะยกเลิกการเปลี่ยนแปลงที่ไม่มีขั้นตอนใน Git ได้อย่างไร และอีกมากมาย แต่ไฟล์ทั้ง 2 ไฟล์ยังคงติดอยู่ในสถานะ "เปลี่ยนแปลง แต่ไม่ได้ยืนยัน"
ห่าอะไรจะทำให้สองไฟล์ติดแบบนี้และดูเหมือนจะ "ยกเลิกการเปลี่ยนตาราง" ??
PS ในรายการดังกล่าวข้างต้นแสดงให้เห็นคำสั่งที่ฉันพยายามแล้วผมเข้าใจผิดเขียนเมื่อฉันหมายถึงgit revert
ฉันขอโทษและขอบคุณบรรดาผู้ที่ตอบว่าผมควรจะลองgit checkout
checkout
ฉันแก้ไขคำถามเพื่อแก้ไข checkout
แน่นอนผมลองแล้ว
git diff --ignore-space-change
หรือgit diff --ignore-all-space
สร้างความแตกต่างในการส่งออกของที่git diff
?