แน่นอนว่าฉันทำสิ่งนี้เป็นครั้งคราวโดยใช้
git update-index --assume-unchanged [<file> ...]
หากต้องการยกเลิกและเริ่มการติดตามอีกครั้ง (หากคุณลืมไฟล์ใดที่ไม่ได้ติดตามดูคำถามนี้ ):
git update-index --no-assume-unchanged [<file> ...]
เอกสารที่เกี่ยวข้อง :
- [no-] สันนิษฐานว่าไม่มีการเปลี่ยนแปลง
เมื่อระบุแฟล็กนี้ชื่ออ็อบเจ็กต์ที่บันทึกสำหรับพา ธ จะไม่ถูกอัพเดต ตัวเลือกนี้จะตั้งค่า / ไม่เซ็ตบิต "ถือว่าไม่เปลี่ยนแปลง" สำหรับเส้นทาง เมื่อบิต "ถือว่าไม่มีการเปลี่ยนแปลง" เปิดอยู่ผู้ใช้สัญญาว่าจะไม่เปลี่ยนแปลงไฟล์และอนุญาตให้ Git สมมติว่าไฟล์แผนผังการทำงานตรงกับสิ่งที่บันทึกไว้ในดัชนี หากคุณต้องการเปลี่ยนไฟล์แผนผังการทำงานคุณต้องยกเลิกการตั้งค่าบิตเพื่อบอก Git บางครั้งสิ่งนี้มีประโยชน์เมื่อทำงานกับโปรเจ็กต์ขนาดใหญ่บนระบบไฟล์ที่มีการlstat(2)
เรียกระบบช้ามาก(เช่น cifs)
Git จะล้มเหลว (อย่างสวยงาม) ในกรณีที่จำเป็นต้องแก้ไขไฟล์นี้ในดัชนีเช่นเมื่อทำการรวมในการคอมมิท ดังนั้นในกรณีที่ไฟล์สันนิษฐานว่าไม่ได้ติดตามมีการเปลี่ยนแปลงต้นน้ำคุณจะต้องจัดการกับสถานการณ์ด้วยตนเอง
ล้มเหลวอย่างสง่างามในกรณีนี้หมายความว่าหากมีการเปลี่ยนแปลงใด ๆ ในอัปสตรีมไปยังไฟล์นั้น (การเปลี่ยนแปลงที่ถูกกฎหมาย ฯลฯ ) เมื่อคุณทำการดึงมันจะพูดว่า:
$ git pull
…
From https://github.com/x/y
72a914a..106a261 master -> origin/master
Updating 72a914a..106a261
error: Your local changes to the following files would be overwritten by merge:
filename.ext
และจะปฏิเสธที่จะรวม
เมื่อถึงจุดนี้คุณสามารถเอาชนะสิ่งนี้ได้โดยการคืนค่าการเปลี่ยนแปลงในท้องถิ่นของคุณต่อไปนี้เป็นวิธีหนึ่ง:
$ git checkout filename.ext
จากนั้นดึงอีกครั้งและแก้ไขไฟล์ในเครื่องของคุณอีกครั้งหรือสามารถตั้งค่า–no-assume-unchanged
และคุณสามารถทำการซ่อนและรวมปกติ ฯลฯ ณ จุดนั้น