Senaryo: Bir github projesini hazırladım ve üzerinde çalışmaya başladım (orijinal projeyi "yukarı akış" olarak adlandırılan uzak bir proje olarak ekledikten sonra). Çatalım üzerinde çalışırken, yukarı yönlü projeye bir dizi yayın yapıldı: v1.3-kararlı, v1.4-kararlı, v1.5-deneysel, vs. Şimdi, ana şubemde upstream taahhütlerini birleştirmem gerekiyor Ancak, SADECE belirli bir sürüme kadar, örneğin, v1.4 kararlılığını bırakın. Bu senaryo için en iyi iş akışı nedir?Git birleştirme, belirli bir üst sürüm yayınından itibaren
cevap
uzaktan kumandadaki bir etiket v1.4-kararlı olduğunu varsayarsak, çalışmanızı içeren daldan bu arayarak yerel repo için bu değişiklikleri uygulayabilirsiniz v1.4-kararlılıktan en son taahhüdün ardından, bu taahhütler tekrarlanır ve kendi işiniz en üstte düzgün bir şekilde yerleştirilir. Şayet çatallı çatalın üzerinden uzaktan kumanda önemli ölçüde değiştiyse, çatışmalar olacaktır.
v1.4-kararlı yerine
git pull --rebase origin v1.4-stable
Neden şube veya etiketi birleştirmiyorsunuz? Neden rebase? Bu sadece birleştirme işlemini birleştirir. – jszakmeister
Burada kendi sorumu yanıtlıyor olabilirim, ama sanırım OP'in işlerini yukarı akışına entegre etmeye çalıştığına inandığınız için ... ... bu durumda, bir rebase mantıklı. – jszakmeister
Önce, v1.5-experimental
için ayrılmış bir dalda çalıştığınızdan emin olun.
İkincisi,/v1.4 akıntıya için sendeki şube sıfırlayın:
git fetch upstream
git checkout master
git reset --hard upstream/v1.4
git push -f
Son olarak, v1 rebase (eğer devam eden çalışmaları yok emin olun bir sabit sıfırlama onları silip süpürecek). ustanın üstüne 5-Exprimental şube
Yumruk, activate rerere (yani v1.4 üstünde olduğu) (daha sonra birden rebase yapmanız gereken durumda: Eğer geçmişte benzer çatışmaları çözmek nasıl kayıt olacağını)
git config --global rerere.enabled true
Sonra rebase (v1.4 üstünde şubenizden taahhüt senin tekrar): Yalnızca çıkar çatışmaları (memba ve hem yapılan eşzamanlı değişiklikler olmalıdır çözmek zorunda kalacak çatışmalar
git checkout v1.5-experimental
git rebase master
git push -f
senin deneysel dal).
git fetch
git rebase --onto $(git rev-list -n1 v1.4-stable)
Rev-Liste kimliğini bulur:
Birisine repolarında 'git reset --hard 'komutunu çalıştırmasını söylüyorsun. En azından olası sonuçları hakkında uyarınız ... –
@HaraldNordgren teşekkür ederim. Cevabımı buna göre düzenledim. – VonC
Yapılmakta olan işlerin olmayacağını düşünürsünüz? Bu sorunun bütün noktası, kişisel çalışmayı uzaktan kumandadaki değişikliklerle pekiştirmekle ilgili görünüyor. Git sıfırlama, imkansız görünüyor. –
Bu v1.4-stable
bir ana dal üzerinde, salımını belirten tamamlama için bir etiket olduğunu varsayar yapmak isteyeceksiniz uzaktan kumandadaki bir dalıdır edin. Ödeme Ana ve son değişiklikleri çekin:
git checkout master
git pull --rebase
yanındaki bu taahhüt üstünde geliştirme şube rebase.
git rebase v.14-stable
Bu komut etiketli v.1.4-stable
taahhüt ve ondan önceki diğer tüm bültenleri içerecek şekilde şube tabanını değişecek: En çalışma ağaç temiz ve BAŞ sizin dev-dalına işaret emin olun. rebase önce
:
o---o---v.1.2---v.1.3---v.1.4---v.1.5-exp master
\
o---o---o dev
sonra:
o---o---v.1.2---v.1.3---v.1.4---v.1.5-exp master
\
o---o---o dev
git pull --rebase origin v1.4-stable
- 1. Sürüm nasıl çalıştırılır: belirli bir Git etiketinden performans gösterilsin mi?
- 2. Belirli bir satırı değiştiren birleştirme işlemini bulun.
- 3. Birleştirme 2 GIT Şubeleri
- 4. Git birleştirme nasıl birleştirilir?
- 5. Git adımları birleştirme adımları
- 6. Birleştirme Git Dalları
- 7. Git birleştirme taahhüt eder
- 8. Git birleştirme hataları
- 9. Git: Birleştirme "geri alma"
- 10. git: Birleştirme gerçekleştirmeden birleştirme çakışmalarını çözme
- 11. Git birleştirme yapmadan git birleştirme yaptıktan sonra git rebase -i'yi nasıl kullanabilirim?
- 12. Bir git birleştirme dosyasının nasıl düzenlenir
- 13. Birleştirme çakışmaları için git kanca
- 14. git birleştirme farkının tamamını görün
- 15. Git birleştirme Dosyalarımdaki HEAD işaretleri
- 16. git submodule birleştirme: nasıl görselleştirilir?
- 17. Depoya git birleştirme sürücüsü ekleyin?
- 18. CMake belirli bir Boost sürüm kullanın
- 19. Baştan itibaren belirli bir karaktere kadar bir dize seçebilir miyim?
- 20. Görünüm git log birleştirme işlemine giriyor
- 21. Belirli bir sırada CSS dosyalarını birleştirme
- 22. Belirli bir GIT'in hangi sürüm (ler) i içerdiği nasıl bulunur?
- 23. otomatik @synthesized özellikler Xcode 4.4 sürüm notları itibaren
- 24. Belirli bir dosyanın üst dizini alın
- 25. (git): Akış yönündeki şubeden belirli bir işlem nasıl gerçekleştirilir?
- 26. MySQL: Belirli bir tarihten itibaren haftalar nasıl hesaplanır?
- 27. Belirli bir tarihten itibaren mysqli tablo tablolarını al
- 28. Eclipse git birleştirme aracını kullanarak "bizimki" birleştirme nasıl yapılır?
- 29. Git - Belirli etikete rebasing
- 30. git - Sürüm kontrolü için Pipfile.lock gerekir mi?
Eğer GitHub repo bir bağlantı verebilir misiniz? –