Sarkan bir taahhüt, referansla ilişkili olmayan bir taahhüttür, yani ona ulaşmanın bir yolu yoktur.
Örneğin, aşağıdaki diyagramı düşünün. Diyelim ki şube özelliğiX'i değişikliklerini birleştirmeden siliyoruz, sonra D komutu sarkan bir taahhüt haline gelecektir, çünkü onunla ilişkili bir referans yoktur. Master ile birleşmiş olsaydı, HEAD ve master referansları D'yi taahhüt ederdi ve featureX'i silmiş olsak bile artık sarkmazdı. Bunu daha iyi anlamak için diyagramdan sonra notu okuyun.
Git otomatik olarak çöp sarkanları toplar (yani atar). git reflog
Birleştirmeden silinen bir dalı (sarkan taahhütlerin) kurtarmak için kullanabiliriz . Silinen taahhütleri ancak yerel nesne deposunda varsa kurtarabiliriz. Çöp toplanmışsa, geri kazanamayız.
NOT şube adı yani şube etiket aslında son bir referans olduğunu dalın ucunda yani şube üzerinde. Yukarıdaki şemada, featureX, master ve HEAD sadece belirli taahhütlere referanslardır. featureX ve master etiketler ilgili şubelerindeki en son taahhütleri ifade eder. HEAD genellikle şu anda teslim alınmış dalın ucunu ifade eder (bu durumda master). Mevcut şubenizde daha eski bir taahhüdü kontrol ederseniz, HEAD bağımsız bir durumda olacaktır, yani en son yerine eski taahhüdü gösterecektir. Ayrıca HEAD'in sembolik bir referans olarak adlandırıldığından, gerçekte geçerli dal etiketine ve herhangi bir dal etiketinin her zaman dalın ucuna işaret ettiğine dikkat edin. Dolayısıyla, normal şartlar altında HEAD dolaylı olarak en son taahhüdü işaret eder.
Bir yana, Git'in kesin grafiğini / geçmişini yönlendirilmiş bir döngüsel grafik olarak temsil ettiğini unutmayın . Her bir taahhüdün ana öğeye bir referansı vardır. Bu nedenle, bir taahhüt diyagramındaki oklar çocuk taahhüdünden ebeveyn taahhüdüne işaret eder. Bir daldaki daha eski taahhütlere ulaşmak için en son çocuk taahhüdüne referans vermemiz gerekir.
PS - Yukarıdaki diyagram ve anlayış bu ücretsiz dersten elde edilmiştir . Kurs oldukça eski olmasına rağmen, bilgi hala konuyla ilgilidir.
git gc
ve 2) bu konuda endişelenmem gerekmiyor çünkü bu sarkan bitler normal ve zaten git onlar mı?