เมื่อเปิดGit GUIloose objectsฉันได้รับข้อความป๊อปอัพที่หมายถึง ฉันทำgit gcและลบข้อความ
สิ่งที่เป็นloose objectsและวิธีการที่ฉันสามารถป้องกันการนี้เกิดขึ้นอีกครั้งหรือไม่
เมื่อเปิดGit GUIloose objectsฉันได้รับข้อความป๊อปอัพที่หมายถึง ฉันทำgit gcและลบข้อความ
สิ่งที่เป็นloose objectsและวิธีการที่ฉันสามารถป้องกันการนี้เกิดขึ้นอีกครั้งหรือไม่
คำตอบ:
วัตถุ (blobs, ต้นไม้และคอมมิชชัน) ด้วย SHA พูด - 810cae53e0f622d6804f063c04a83dbc3a11b7ca จะถูกเก็บไว้ที่
.git/objects/81/0cae53e0f622d6804f063c04a83dbc3a11b7ca
(การแยกตัวอักษรสองตัวแรกเพื่อปรับปรุงประสิทธิภาพของระบบไฟล์ในขณะนี้ไม่ใช่วัตถุทั้งหมดจะถูกเก็บไว้ในไดเรกทอรีเดียวกัน)
วัตถุที่เก็บไว้ข้างต้นเรียกว่าวัตถุที่หลวม
เมื่อคุณเริ่มต้นกับ repo ของคุณส่วนใหญ่คุณจะมีวัตถุหลวม ๆ เมื่อตัวเลขสูงขึ้นมันจะไม่มีประสิทธิภาพและจะถูกเก็บไว้ในไฟล์แพ็ค วัตถุดังกล่าวเรียกว่าวัตถุที่ถูกบรรจุ
git gc
คือสิ่งที่คุณเรียกใช้เพื่อแพ็ควัตถุ (โดยปกติจะเป็นวัตถุที่ไม่จำเป็นและไม่กี่สัปดาห์ก็ถูกลบออกและมี--prune=<date>ตัวเลือกที่คุณสามารถบังคับให้ลบวัตถุที่ไม่ต้องการออกได้อีกต่อไปเช่นเมื่อคุณแก้ไขคอมมิชชัน ต้องการอีกต่อไป.)
--pruneตัวเลือกที่ถูกเปิดใช้งานโดยค่าเริ่มต้นและตั้งแต่git gcถูกเรียกโดยอัตโนมัติด้วยการใช้งานทั่วไป (เช่นcommit), คุณมักจะไม่ต้องกังวลเกี่ยวกับเรื่องนี้ ฉันไม่ได้ใช้ git gui และฉันไม่สามารถหาตำแหน่งที่มันถูกทริกเกอร์ในแหล่งที่มา แต่มันจะตรวจสอบของตัวเองหรือเพียงแค่สกัดกั้นทgcริกเกอร์โดยคำสั่งที่เรียกว่า แม้ว่าจะไม่มีอะไรต้องกังวลแน่นอนเกิดจากการใช้งานปกติ
git gcด้วยตนเองหรือไม่? ฉันคิดว่าควรปรับปรุงเนื่องจากวัตถุหลวมไม่มีประสิทธิภาพและ 50,000 เป็นจำนวนมาก ฉันยังพบว่าการจัดเก็บจะช่วยลดพื้นที่ที่.gitโฟลเดอร์ใช้เช่นกัน
หนังสือ Git อธิบายได้ค่อนข้างดี: https://git-scm.com/book/en/v2/Git-Internals-Packfiles
วัตถุที่หลวมเป็นรูปแบบที่ง่ายกว่า มันเป็นเพียงข้อมูลที่บีบอัดที่เก็บไว้ในไฟล์เดียวบนดิสก์ วัตถุทุกชิ้นที่เขียนไปยังไฟล์แยกต่างหาก
git gcให้คุณด้วยแถบความคืบหน้าของ GUI ที่ดี (แม้ว่าจะแสดงว่าติดอยู่เกือบตลอดเวลา)