Selama bekerja dengan repositori git Anda, Anda mungkin akan mundur dari operasi, dan membuat gerakan lain yang menyebabkan gumpalan perantara, dan bahkan beberapa hal yang git lakukan untuk Anda untuk membantu menghindari hilangnya informasi.
Akhirnya (secara kondisional, menurut halaman manual git gc ) ia akan melakukan pengumpulan sampah dan membersihkan semuanya. Anda juga dapat memaksanya dengan menjalankan proses pengumpulan sampah git gc
,.
Untuk informasi lebih lanjut tentang ini, lihat Pemeliharaan dan Pemulihan Data di situs git-scm.
Jalankan GC secara manual akan secara default meninggalkan 2 minggu sebelum runtime dari perintah jaring pengaman ini. Sebenarnya dianjurkan untuk menjalankan GC sesekali untuk membantu memastikan kinerja pemain atas repositori git Anda. Namun, seperti halnya apa pun, Anda harus memahami apa yang dilakukannya sebelum menghancurkan hal-hal yang mungkin penting bagi Anda.
git gc
, dan 2) saya tidak perlu khawatir tentang ini sama sekali karena bit menggantung ini normal dan git sudah tangani mereka?Menggantung gumpalan = Perubahan yang membuatnya ke area pementasan / indeks tetapi tidak pernah mendapat komitmen. Satu hal yang luar biasa dengan git adalah bahwa setelah ditambahkan ke area pementasan, Anda selalu dapat mendapatkannya kembali karena gumpalan ini berperilaku seperti komit karena mereka juga memiliki hash !!
Komitmen menggantung = Komit yang tidak langsung ditautkan oleh komit anak, cabang, tag atau referensi lainnya. Anda bisa mendapatkan ini juga!
sumber
HOWTO menghapus semua komit menggantung dari repositori git Anda dari http://www.tekkie.ro/news/howto-remove-all-dangling-commits-from-your-git-repository/
Pastikan Anda benar-benar ingin menghapusnya, karena Anda mungkin memutuskan bahwa Anda memang membutuhkannya.
sumber
Komit menggantung adalah komit yang tidak terkait dengan referensi, yaitu tidak ada cara untuk mencapainya.
Sebagai contoh, perhatikan diagram di bawah ini. Misalkan kita menghapus branch featureX tanpa menggabungkan perubahannya, maka komit D akan menjadi komit menggantung karena tidak ada referensi yang terkait dengannya. Seandainya itu digabung menjadi master, maka HEAD dan referensi master akan menunjuk ke komit D dan itu tidak akan menggantung lagi, bahkan jika kita menghapus featureX. Baca catatan setelah diagram untuk memahami ini dengan lebih baik.
Git secara otomatis mengumpulkan sampah (yaitu membuang) menggantung komit. Kita dapat menggunakan
git reflog
untuk memulihkan cabang (dari komit menggantung) yang telah dihapus tanpa menggabungkannya. Kami dapat memulihkan komit yang dihapus hanya jika ada di toko objek lokal. Jika itu sampah yang dikumpulkan, maka kita tidak bisa memulihkannya.CATATAN bahwa nama cabang yaitu label cabang sebenarnya adalah referensi ke komit terbaru pada cabang yaitu ujung cabang. Dalam diagram di atas, featureX, master dan HEAD hanyalah referensi untuk commit tertentu. label featureX dan master merujuk pada komit terbaru di cabang masing-masing. KEPALA umumnya mengacu pada ujung cabang yang sedang diperiksa (master dalam hal ini). Jika Anda checkout komit yang lebih lama pada cabang Anda saat ini, maka HEAD akan berada dalam keadaan terpisah, yaitu akan menunjuk ke komit yang lebih lama daripada yang terbaru. Juga perhatikan bahwa KEPALA disebut referensi simbolis karena sebenarnya menunjuk ke label cabang saat ini dan label cabang apa pun selalu menunjuk ke ujung cabang. Jadi, dalam keadaan normal, HEAD secara tidak langsung menunjuk ke komit terbaru.
Sebagai tambahan, catat bahwa Git merepresentasikan graph / histori komit sebagai grafik asiklik terarah . Setiap komit memiliki referensi ke induknya. Oleh karena itu, panah dalam diagram komit menunjukkan dari komit anak ke komit orang tua. Kami membutuhkan referensi ke anak komit terbaru untuk mencapai komit yang lebih tua di cabang.
PS - Diagram dan pengertian di atas diperoleh dari kursus gratis ini . Meskipun jalannya sudah cukup tua, pengetahuannya masih relevan.
sumber