Birkaç alt modüle başvuran bir git süper projem var ve proje üyelerimin geri kalanı için bir iş akışını kilitlemeye çalışıyorum.
Bu soru için, süper projemin çağrıldığını supery
ve alt modülün çağrıldığını varsayalım subby
. (O zaman yapmaya çalıştığım şeyin bir basitleştirmesidir ... Aslında dalları sürümler için kullanmıyorum, ancak soru olarak ortaya koymanın en kolay olacağını düşündüm.)
Ana dalım, alt modül olarak başvurulan git projesinin supery
etiketine v1.0
sahip subby
. Dalı supery
olarak adlandırılan one.one
ve etikete noktasına altmodülün referansını değiştirdi v1.1
arasında subby
.
Bu şubelerin her birinde sorunsuz çalışabilirim, ancak one.one
şubeyi şubeden değişikliklerle güncellemeye çalışırsam master
bazı çatışmalar alıyorum ve bunları nasıl çözeceğimi bilmiyorum.
Temelde dalda bir git pull . master
süre çalıştıktan sonra subby
, ek alt modüller yaratıyor gibi görünüyor.
Çekme / birleştirme önce, istenen yanıt almak git submodule
den one.one
dalı:
$ git checkout master
$ git submodule
qw3rty...321e subby (v1.0)
$ git checkout one.one
$ git submodule
asdfgh...456d subby (v1.1)
Ancak çekmeden sonra, çalıştırdığımda ek alt modüller ekliyor git submodule
:
$ git pull . master
Auto-merged schema
CONFLICT (submodule): Merge conflict in subby - needs qu3rty...321e
Automatic merge failed; fix conflicts and then commit the results.
$ git submodule
qw3rty...321e subby (v1.0)
asdfgh...456d subby (v1.1)
zxcvbn...7890 subby (v1.1~1)
İstenmeyen alt modül referanslarını nasıl silerim / yok sayarım ve çakışmalarımı ve değişikliklerimi nasıl gerçekleştiririm? Veya orijinalimle kullanabileceğim, git pull
alt modüllerimi yok sayacak bir parametre var mı?