itibaren https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging
Bu temelde sahte bir birleştirme yapacak. Her iki dalda da ebeveyn olarak yeni bir birleştirme taahhüdü kaydeder, ancak birleştirdiğiniz şubeye bile bakmaz. Sadece mevcut dalınızdaki tam kodun birleştirilmesinin sonucu olarak kaydeder.
$ git merge -s ours mundo
'Bizim' stratejisi ile yapılan birleşme.
$ git diff HEAD HEAD~
Şu anda bulunduğumuz şube ile birleşmenin sonucu arasında bir fark olmadığını görebilirsiniz.
Bu genellikle Git'i daha sonra birleştirme yaparken bir dalın zaten birleştirildiğini düşünmesi için faydalı olabilir. Örneğin, bir sürüm dalından ayrıldığınızı ve bunun üzerinde bir noktada ana dalınızla birleştirmek isteyeceğiniz bazı çalışmalar yaptığınızı varsayalım. Bu arada, master'daki bazı hata düzeltmelerinin sürüm şubenize bildirilmesi gerekir. Bugfix dalını sürüm dalına birleştirebilir ve aynı dalı -s bizimki aynı dalı ana dalınıza birleştirebilirsiniz (düzeltme zaten orada olsa bile), böylece daha sonra sürüm dalını yeniden birleştirdiğinizde, bugfix'den çakışma olmaz.
Ustanın yeni bir konu dalındaki değişiklikleri yansıtmasını istiyorsam faydalı bulduğum bir durum. -Xtheirs'in bazı durumlarda çatışma olmadan birleşmediğini fark ettim ...
$ git merge -Xtheirs topicFoo
CONFLICT (modify/delete): js/search.js deleted in HEAD and modified in topicFoo. Version topicFoo of js/search.js left in tree.
Bu durumda bulduğum çözüm
$ git checkout topicFoo
topicFoo, ilk önce -s bizimki stratejisini kullanarak birleştirme, bu sadece topicFoo'nun durumu olan sahte taahhüdü yaratacaktır. $ git merge -s bizimki usta
oluşturulan birleştirme taahhüdünü kontrol et
$ git log
şimdi ana şubeye göz at
$ git checkout master
konu dalını birleştirin, ancak bu sefer -Xtheirs özyinelemeli stratejiyi kullanın, bu size topicFoo durumuyla bir ana dal sunacaktır.
$ git merge -X theirs topicFoo