เมื่อแก้ไขซอร์สโค้ดโดยใช้ gvim (v.7.4.488) ฉันต้องการคอมมิทการเปลี่ยนแปลง vcs (ฉันใช้ git 2.1.4 จากบรรทัดคำสั่งใน Ubuntu linux)
git --status
แสดงไฟล์ที่ฉันเปลี่ยน อย่างไรก็ตามมันยังแสดง vim .*.swp
ของบัฟเฟอร์ที่มองเห็นได้ในปัจจุบัน (ทั้งคู่ถ้าไฟล์มีการเปลี่ยนแปลงที่ไม่ได้บันทึกและเมื่อไฟล์ที่แก้ไขเหมือนกันกับ.*.swp
-file) แน่นอน, git สามารถละเว้นไฟล์เหล่านี้หรือเป็นกลุ่มสามารถเก็บไฟล์ swap ในตำแหน่งอื่น (ดูvim.wikiaหรือคำถามนี้ที่ stackoverflow ) แต่ฉันชอบ - .*.swp
ไฟล์ที่ปรากฏขึ้นgit --status
เมื่อพวกเขามีการเปลี่ยนแปลงที่ไม่ได้บันทึกเพราะมันเป็นสัญญาณให้ฉันเห็นว่าฉันกำลังยืนยันไฟล์ในสถานะที่แตกต่างจากสิ่งที่ฉันคิดว่าพวกเขามี
ฉันจะหลีกเลี่ยงผลบวกปลอมของ.*.swp
-files ที่ปรากฏขึ้นgit --status
เมื่อไฟล์ที่บันทึกไว้เหมือนกับ -file ได้อย่างไรใน.*.swp
ขณะที่สามารถเห็นไฟล์ที่จะคอมมิทนั้นจะอยู่ในสถานะที่แตกต่างจากที่ฉันแก้ไขด้วย vim
- เป็นไปได้หรือไม่ที่มี
.*.swp
-files เท่านั้นเมื่อไฟล์บนดิสก์และไฟล์ใน vim แตกต่างกัน? - มีวิธีอื่นในการตรวจจับไฟล์ที่ไม่ได้บันทึกหรือไม่?
การรวมความคิดเห็นของ@elyashivและ@VanLaserเป็นวิธีที่ง่ายกว่าการตรวจจับว่าไฟล์สลับแปลว่าไฟล์ที่ไม่ได้บันทึกหรือไม่:
- อย่าปล่อยให้คอมไพล์ละเว้นไฟล์. *. sw [po];
- เมื่อกระทำถ้า
git --status
พบว่าไฟล์ใด ๆ.*.sw[po]
ทำ a:wa
ใน vi; และ, - เพิ่มและกระทำ
git commit
...
:wa
เพื่อให้แน่ใจว่าไม่มีไฟล์ที่ไม่ได้บันทึก