Git, birleştirme sırasında her zaman yeni sürümü seçmeye zorlansın mı?


103

Diyelim ki gittim mergeve bir birleştirme çatışması var.

Sorum şu: git'i her zaman çakışan yeni kod sürümünü seçmeye nasıl zorlayabilirim, böylece çatışmayı elle çözmem gerekmeyecek?



ancak bir birleştirme yapmak (taahhütleri geçersiz kılmak değil), ancak ayrıca çakışmaları otomatik olarak çözmek istiyorum.
bartek

Yanıtlar:


189

Bu tam olarak "daha yeni" sürüm değildir, ancak git'e her zaman kullanarak geçerli daldaki git merge branch -X ourssürümü tercih etmesini veya birleştirilecek dalın sürümünü tercih etmesini söyleyebilirsiniz git merge branch -X theirs.

Kimden man git-merge:

bizim:

Bu seçenek, bizim sürümümüzü tercih ederek, çakışan hunks'ların otomatik olarak temiz bir şekilde çözülmesini zorlar. Bizim tarafımızla çelişmeyen diğer ağaçtaki değişiklikler birleştirme sonucuna yansıtılır. İkili bir dosya için tüm içerik bizim tarafımızdan alınır.

onların:

Bu "bizim" kelimesinin tam tersidir.


9
ours- theirs!! Sadece söyleyin ve komutun ne yaptığını anlayın! Git'i seviyorum! : D
Haywire

14
not: zaten kullandıysanız git merge branch, bunu git merge --abortyapmadan önce yapmanız gerekir .
John Dvorak

1
Benim için çalışmıyor. Hala birleştirmeyi iptal ediyor. error: The following untracked working tree files would be overwritten by merge:İlk başta bu dosyaların neden bu dalda olduğunu bile bilmiyorum, ama üzerine yazılmaları gerekiyor ve git reddediyor.
mcv

2
İzlenmemişlerse, git addönce onları kaldırmanız (veya ) gerekir. Biraz okuyun git clean, bu konuda size yardımcı olabilir.
Renato Zannon

Çalıştırıldıktan sonra git merge ours, bazı çakışma dosyaları varsa, herhangi bir günlük olacak mı? ve izleyebilir miyim git merge ours?
zx1986

20

Bunu kullanıyorum,

git fetch --prune
git reset --hard origin/master

2
Bu çözüm, tek istediğim ana dal ile geçersiz kılmak olduğunda, birleşmemiş çatışmaları düzeltmeme yardımcı oldu. git reset --hard master (yerelden) kullandım
Juan Mendez
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.