เป็นไปได้ไหมที่จะรับ `git gc` เพื่อแพ็ควัตถุ reflog?

ตามคำแนะนำโดยคำตอบ 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 เป็นตัวเลขที่สูงมาก แต่นั่นจะทำให้เกิดปัญหาด้านประสิทธิภาพ (เล็กน้อย) ในระยะยาว


person Mikko Rantalainen    schedule 07.03.2019    source แหล่งที่มา