Çakışan Git rebaseinin ortasında “onların” değişiklikleri nasıl elde edilir?


349

Çakışan dallar var, dal2 dal1 dallı.

Diyelim ki branch2akıma yeniden branch1basarken, çatışmaları çözerken , "(" ) dosyaların bazılarını (hepsini değil) olduğu gibi almaya karar verdim branch1. Bunu nasıl yaparım?

Denedim:

git checkout branch1:foo/bar.java
fatal: reference is not a tree: TS-modules-tmp:foo/bar.java

git checkout refs/heads/branch1:foo/bar.java
fatal: reference is not a tree: refs/heads/TS-modules-tmp:foo/bar.java

41
Not: branş2'yi bran11'e yeniden batarsanız, tekrarlama branş1'e göre olur, bu nedenle "onların" aslında branş2 ve "bizimki" branş1'dir. git.661346.n2.nabble.com/…
Bay Fooz


1
Bu bana yaklaşık 20 saat gayretli çalışmanın maliyeti. Dürüst olmak gerekirse "bizim" her zaman çalışan kopya olacağını düşündüm.
Theodore R. Smith

Yanıtlar:


496

Kullanmak istediğiniz:

git checkout --ours foo/bar.java
git add foo/bar.java

Eğer bir şube rebase Eğer feature_xkarşı master(yani çalışan git rebase masterdalda iken feature_x), rebasing sırasında oursatıfta masterve theirshiçfeature_x .

İçinde sivri out gibi git-Rebase docs :

Bir rebase birleşmesinin, dalın üstündeki çalışma kolundan her bir taahhüdü tekrarlayarak çalıştığını unutmayın. Bu nedenle, bir birleşme çatışması meydana geldiğinde, bizimki olarak bildirilen taraf, <upstream> ile başlayan şimdiye kadarki yeniden temellenmiş seridir ve onlarınki çalışma dalıdır. Başka bir deyişle, kenarlar değiştirilir.

Daha fazla ayrıntı için bu konuyu okuyun .


0

Belirli bir dosyayı başka bir şubeden çekmek istiyorsanız,

git checkout branch1 -- filenamefoo.txt

Bu, dosyanın bir sürümünü bir daldan geçerli ağaca çeker


35
Bu muhtemelen bir rebase ortasında kötü bir fikir olacaktır, çünkü dosyayı çatışan bir rebase durumunda olacağınız müstakil kafa noktasında değil, o şubenin başından
çekecektir
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.