เมื่อแก้ไขซอร์สโค้ดโดยใช้ 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เพื่อให้แน่ใจว่าไม่มีไฟล์ที่ไม่ได้บันทึก