ตามคำแนะนำโดยคำตอบ https://stackoverflow.com/a/32025729 ฉันได้กำหนดค่า repo เปลือยระยะไกลด้วย
git config gc.pruneExpire never
git config gc.reflogExpire never
และด้วยเหตุนี้ ฉันจึงเก็บ Commit ที่เก็บไว้ทั้งหมดของ Branch และ Tags ทั้งหมดไว้เสมอ แม้ว่าฉันจะไม่ได้สร้างชื่อสาขาหรือแท็กถาวรสำหรับ Commit เหล่านั้นทั้งหมดก็ตาม
อย่างไรก็ตาม สิ่งนี้จะทำให้คำเตือนต่อไปนี้ปรากฏขึ้นในระยะยาว:
warning: There are too many unreachable loose objects; run 'git prune' to remove them.
นี่เป็นเพราะความจริงที่ว่าสิ่งที่ห้อยต่องแต่งที่ฉันต้องการเก็บไว้ตลอดไปจะถูกเก็บไว้เป็นวัตถุหลวม ๆ
มีวิธีที่ดีในการให้ git รวมการคอมมิตแบบห้อยที่อ้างอิงโดย reflog ในไฟล์แพ็คโดยตั้งใจหรือไม่ นั่นจะทำให้ประสิทธิภาพคงอยู่ในระดับสูงและไม่สูญเสียประวัติที่ไม่มีชื่อ
ฉันรู้ว่าฉันสามารถแก้ไขปัญหาคำเตือนได้โดยการตั้งค่า gc.auto
เป็นตัวเลขที่สูงมาก แต่นั่นจะทำให้เกิดปัญหาด้านประสิทธิภาพ (เล็กน้อย) ในระยะยาว