Git deposuna sahibim. A
harici bir alt modül kullanıyor, B
, github'dan. URL'si kaydedildi B
içinde . gitmodules
olduğu origin/B
, benim çatalım upstream/B
. Ben yönetemiyorum upstream/B
.
Bir noktada, içinde gelişiyordum B
, gelişmelerime origin/B
ve bu değişiklikleri A
. Sonunda, güncellemeleri test ettikten sonra, bir çekme isteği yaptım upstream/B
.
Birkaç gün sonra, çekme talebim github üzerindeki squash düğmesini kullanarak ters yöndeki insanlar tarafından "birleştirildi". Şimdi, B
ve origin/B
artık uyumlu değildi upstream/B
, dosya içeriği aynı olmasına rağmen. Daha ileri gelişmeler yapmak ve belki daha sonra başka bir çekme isteği yapmak istedim, bu yüzden yaptım git reset --hard upstream/B
ve sonra git push -f origin
yukarı akış şubesiyle senkronize etmek için. (Evet, yaparken dikkatli olmanın nedenlerini biliyorum. reset --hard
ve push -f
. İçeriğindeki içeriği kaybetmemeye özen gösterdim B
.)
Hiçbir şekilde yapmak istemiyorum reset --hard
veya rebase
içinde A
. Paralel olarak bu tür operasyonları çok karmaşık hale getiren başka değişiklikler de oldu. Sorun benim tarihim A
şimdi taahhütte bulunacak işaretçiler var origin/B
artık hiçbir dalın tarihinde bulunmuyor.
Bu taahhütler bir noktada github'ta toplanan çöpler olacak mı? Onları korumak için bu komisyonlarda bir şube veya etiket yapmam gerekir mi? Yoksa çekme talebinde bulundukları için korunacaklar mı?