2012-03-14 17 views
11

Git rebase, çakışma işaretlerini dosyalarda satır içi olarak bırakır; gibi bir şey: Ben git formatı-yama ile oluşturulan bir yama uygulamak için geçerli budala kullandığınızdaGit hata düzeltmeleri, git hatası gibi satır içi iz bırakabilir mi?

<<<<<<< HEAD 
Whatever line + context is different from the previous commit 
======= 
Whatever line + context is different from the commit being applied 
>>>>>>> new version, new branch:app/views/common/version.txt 

, başarısız olur varsayılan olarak değiştirilmiş herhangi bir dosya bırakmak. Ben çözemez çatışmalara sahip olanlar için .rej dosyaları oluşturmasına neden olacak, ancak bunu verebilirim, gerçekten dosyaları değiştirip, git rebase'in yaptığı her şeyi bırakmak istiyorum, böylece dosyayı açabilirim. elle birleştirin ve sonra onu ekleyin ve devam etmek için git uygulamasına başvurun. Bunu bilmediğim bir yolu var mı? Benim için

cevap

6

aşağıdaki çalışır: o file sonra

git init 
seq 1 30 > file 
git add file 
git commit -m 1-30 
sed -i '13a13.4' file 
git commit -m 'add 13.4' file 
git format-patch -1 
git reset --hard HEAD^ 
sed -i 13d file 
git commit -m 'remove 13' file 
git am -3 0001-add-13.4.patch 

çatışma işaretleri vardır. Bu git apply yerine git am -3 kullanın.

+0

Hmmm - gerçekten ben isteyen kulüpler ne gibi görünüyor ilginç. Git git uygulamasının geçerli olduğunu düşündüm - belki de git uygulamasının komut satırı seçenekleri aracılığıyla erişilemeyen dahili bir API kullanıyor. Teşekkürler! – kcstrom

3

Kullanım üç yollu birleştirme ile seçeneği:

git apply -3 0001-patch.patch