ฉันมีไฟล์ที่ถูกติดตามบางส่วนในที่เก็บซึ่งถูกแก้ไขโดยอัตโนมัติเมื่อสร้างรหัส ฉันไม่ต้องการยกเลิกการติดตามพวกเขาฉันไม่ต้องการให้พวกเขาปรากฏว่ามีการปรับเปลี่ยนและฉันไม่ต้องการให้พวกเขาจัดฉากเมื่อฉันเพิ่มคอมไพล์
เป็นไปได้ไหม
ฉันมีไฟล์ที่ถูกติดตามบางส่วนในที่เก็บซึ่งถูกแก้ไขโดยอัตโนมัติเมื่อสร้างรหัส ฉันไม่ต้องการยกเลิกการติดตามพวกเขาฉันไม่ต้องการให้พวกเขาปรากฏว่ามีการปรับเปลี่ยนและฉันไม่ต้องการให้พวกเขาจัดฉากเมื่อฉันเพิ่มคอมไพล์
เป็นไปได้ไหม
คำตอบ:
แน่ใจ
git update-index --assume-unchanged [<file> ...]
วิธียกเลิกและเริ่มติดตามอีกครั้ง:
git update-index --no-assume-unchanged [<file> ...]
Git will fail (gracefully) in case it needs to modify this file in the index e.g. when merging in a commit; thus, in case the assumed-untracked file is changed upstream, you will need to handle the situation manually.
--assume-unchangedกับการโคลน? เพื่อให้ผู้ใช้ทุกคนมีไฟล์ แต่ไม่เห็นการเปลี่ยนแปลงในตัวเครื่อง
git update-index --no-assume-unchanged $(git ls-files $(git rev-parse --show-toplevel))ตั้งเป็นนามแฝง git เมื่อใดก็ตามที่ฉันสงสัยว่ามันเป็นคนฉลาดบางคนฉันก็ทำอย่างนั้น
อีกวิธีหนึ่ง (จากคำตอบที่ถูกลบตอนนี้โดย Seth Robertson แต่ฉันคิดว่ามันมีประโยชน์ดังนั้นการรื้อฟื้นมันใหม่) คือการรักษาไฟล์เทมเพลต "ที่ติดตามไว้" จากนั้นให้มีเวอร์ชันที่ไม่มีการติดตามท้องถิ่นเช่น: config.sample.ini "หรือ" config.ini.template "ดูhttps://gist.github.com/canton7/1423106สำหรับตัวอย่างเต็มรูปแบบ
จากนั้นจะไม่มีข้อกังวลใด ๆ หากไฟล์นั้นมีการเปลี่ยนแปลงภายใน git ฯลฯ และคุณสามารถใช้. gitignore (ในที่สุด) บนไฟล์ที่ไม่ได้ติดตามในเครื่อง
โซลูชันอื่นที่ใช้แอตทริบิวต์ git และ% f ในคำสั่ง filter:
git config filter.orig.clean "cat %f.orig"
cp filename filename.orig
echo "filename filter=orig" >> .git/info/attributes
echo "filename.orig" >> .git/info/exclude