Git, istikrarlı salım dalının kirlenmesini önlemek için gelişim akışlarını izole etmek için dalları kullanır. Bir dalda çalışmayı ana akıma getirmek birleştirme dalları anlamına gelir. İşte böyle yapıyorsun.
GIT'de birleşme nedir?
Git'te bir şubeyi birleştirmeye hazırlanıyor
Bir Birleştirme Yapmak
Git'te hızlı bir şekilde birleştirme yapmak
Git'teki birleştirme çatışmaları nasıl çözülür
Sonunda her şey birleşir
GIT'de birleşme nedir?
Git dallanmayı basit ve hızlı hale getirmek için tasarlanmıştır. Diğer sürüm kontrol sistemlerinin aksine, git üzerinde dallanma önemsiz bir konudur. Özellikle çok geliştirici projelerde dallanma, GIT’in temel organizasyon araçlarından biridir.
Şubeler Sandbox Yeni geliştirme çabaları, kodun diğer dallarındaki, özellikle ana veya ana daldaki kodu etkilemeden değiştirilebilmesi veya eklenebilmesi için yeni geliştirme çabaları. Bu genellikle kod tabanınızın kararlı sürümünü içerir.
Bu değişiklikleri kararlı kod sürümünüzden izole etmek mükemmel mantıklıdır. Ancak er ya da geç yeni kod test edilecek, gözden geçirilecek ve ana şubeye yuvarlanmak için kauçuk damgalanacaktır. Bu noktada, dalınızı ana dalda birleştirmeniz gerekir.
Aslında, dalların alt dalları olabilir, böylece dalınızı ana dal yerine başka bir dalda birleştiriyor olabilirsiniz. Birleşmelerin her zaman bir şubeyi alıp birleştirdiğini unutmayın. hedef Şube, bu şube ne olursa olsun. Master dalınızı başka bir şubeye birleştirmek istiyorsanız, bunu da yapabilirsiniz.
GIT'deki çoğu eylem gibi, yerel deponuzda birleşmeler yaparsınız ve bunları uzak deponuza itersiniz.
Git'te bir şubeyi birleştirmeye hazırlanıyor
Yerel bir GIT deposu ve uzak Git deposu ile küçük bir geliştirme projemiz var. “Master” şubesinden “Bugfix14” adlı bir şube oluşturduk ve bir hataya bir çözüm üzerinde çalıştık.
Bu çalışma tamamlandı ve kodumuzu test ettik. Her şey beklendiği gibi çalışıyor. Bu değişiklikleri ana şubeye yuvarlamak istiyoruz, böylece düzeltmemiz yazılımın bir sonraki sürümünün bir parçası.
Birleşmeyi gerçekleştirmeden önce yapılması gereken küçük bir hazırlık var. Hedef şubenin - bu durumda “Master” şubesinin - ve onunla birleşeceğimiz şubenin her ikisi de güncel olduğundan emin olmalıyız.
- Şube Bugfix14 : Bu bizim mevcut şubemiz.
- Şubeniz "Kökeni/Bugfix" ile günceldir : Yerel depomuzdaki şube, uzak depodaki şube ile aynı taahhüt geçmişine sahiptir. Bu aynı oldukları anlamına gelir.
- Taahhüt edecek hiçbir şey Evreleme alanında kararlı olmayan bir değişiklik yoktur.
- Çalışma Ağacı Temiz : Çalışma dizinde dengesiz bir değişiklik yoktur.
Bunların hepsi şubenin güncel olduğunu ve devam etmemiz açıktır. Bunlardan herhangi biri değişikliklerin var olduğunu gösterdiyse, onları sahnelememiz, taahhüt etmemiz ve uzaktan kumandaya itmemiz gerekir. Başka biri bu dosyalar üzerinde çalışmış olsaydı, değişikliklerini uzak depodan çekmemiz gerekebilir.
Birleştirme sürecini basitleştireceğimiz şubeyi kontrol etmek. Ayrıca güncel olduğunu doğrulamamızı da sağlar. Ana şubeye bir göz atalım.
“Master” şubesinin güncel olduğunu onaylıyoruz.
İLGİLİ: Git iş akışını nasıl seçilir & amp; Takımınız için doğru olan dallanma modeli
Bir Birleştirme Yapmak
“BugFix14” şubesi “Master” dalından dallandı. “Bugfix14” şubesi oluşturulduktan sonra “Master” şubesine bir taahhüt olmuştur. “Bugfix14” şubesine birkaç taahhüt olmuştur.
İki şubemizin güncel olduğundan emin olduk ve “Master” şubesini kontrol ettik. “BugFix14” dalını “Master” dalında birleştirme komutunu verebiliriz.
Birleştirme gerçekleşir. “BugFix14” dalı hala var, ancak şimdi o dalda yapılan değişiklikler “Master” dalında birleştirildi.
Bu durumda birleştirme komutu bir üç yönlü birleştirme . Sadece iki şube var, ancak üç taahhüt var. Her iki şubenin başı ve birleştirme eyleminin kendisini temsil eden üçüncü bir taahhüttür.
Uzak depomuzu güncellemek için, Git Push emretmek.
Bazı insanlar onları birleştirdikten sonra yan şubeleri silmeyi tercih eder. Diğerleri onları projenin gerçek kalkınma tarihinin bir kaydı olarak korumaya özen gösterir.
Şubeyi silmek istiyorsanız, bunu kullanarak bunu yapabilirsiniz.
git şubesi
İle komuta
-D
(Sil) seçeneği.
İle Şubeyi sil Uzak depoda şu komutu kullanın:
Doğrusal bir taahhüt tarihiniz olacak, ancak gerçek tarih olmayacak.
İLGİLİ: Yerel ve uzak depolarda git dalları nasıl silinir
Git'te hızlı bir şekilde birleştirme yapmak
“Master” şubesine herhangi bir taahhütte bulunmadıysanız, geçmişiniz böyle görünecektir. Eğer varsa buna da bakacak rebalan Geliştirme şubeniz, “Master” şubesinin sonuna bağlı olacak şekilde.
“Master” şubesinde “Bugfix15” şubesini birleştirmek için herhangi bir taahhüt olmadığından, Git'in yapması gereken tek şey “ana” kafa işaretçisini “BugFix15” dalının son taahhütüne yönlendirmektir.
Git hızlı bir şekilde birleşecek Ne zaman yapabilirse . “Master” şubesini taahhüt ederse, hızlı bir şekilde birleştirme mümkün değildir, git bir üç yönlü birleştirme .
Yapamazsın
güç
Hızlı bir birleştirme-sonuçta mümkün olmayabilir-ancak hızlı bir şekilde birleştirme veya hiçbir şey olacağını beyan edebilirsiniz. Git'e geçebiliyorsa hızlı bir şekilde birleştirme kullanma talimatını veren bir seçenek var, ancak yapamazsa üç yönlü bir birleştirme yapmamak için. Seçenek
-sadeceff
(Yalnızca hızlı birleştirme).
Bu, “Bugfix15” dalını “ana” dalda birleştirir, ancak yalnızca hızlı bir birleştirme mümkünse.
Bu durumda, “Master” şubesine taahhütler olmuştur, bu nedenle hızlı bir şekilde birleşme mümkün değildir.
Git'teki birleştirme çatışmaları nasıl çözülür
Her iki dalda aynı dosyanın aynı kısımları değiştirilmişse, dallar birleştirilemez. Çatışan düzenlemeleri çözmek için insan etkileşimi gereklidir.
Burada, “Rot.c” adlı bir dosyada “Bugfix17” adlı bir şubede “Master” şubesinde birleştirmek istediğimiz bir dosyada değişiklik yaptık. Ancak “Master” şubesinde “Rot.C” de değiştirildi.
Birleştirmeye çalıştığımızda, çatışmaların olduğu konusunda bir uyarı alırız. GIT çelişkili dosyaları listeler ve birleştirmenin başarısız olduğunu söyler. Tamamen geri çekilebiliriz
-
seçenek:
Ancak birleşmeleri çözmek göründüğü kadar korkutucu değildir. Git bize yardımcı olmak için biraz iş yaptı. Çatışan dosyalardan birini düzenlersek - bizim durumumuzda sadece bir tane var - bizim için vurgulanan çelişkili kod bölümlerini bulacağız.
Her çatışma, yedi karakterden daha az karakterle sınırlıdır ”
& lt; lt; lt; lt;
”Ve yedi büyük karakter”
& gt; & gt; & gt; & gt; & gt;
"Yedi eşit işaretle"
=======
" onların arasında.
- Eşit işaretlerin üzerindeki kod, birleştirdiğiniz şubeden geliyor içine .
- Eşit işaretin altındaki kod, çalıştığınız şubeden gelen koddur. birleştirmek .
Yedi karakterlik setlerden birini kolayca arayabilir ve dosyanız aracılığıyla çatışmadan çatışmaya geçebilirsiniz. Her çatışma için, hangi düzenleme kümesini tutacağınızı seçmeniz gerekir. Reddediğiniz kodu ve Git'in eklediği yedi karakterlik satırları düzenlemelisiniz.
Kodu “Bugfix17” şubesinden tutacağız. Düzenledikten sonra dosyamız böyle görünüyor.
Şimdi birleşmeye devam edebiliriz. Ama not, kullanıyoruz
işlemek
bunu yapmak için komuta değil
birleştirmek
emretmek.
Dosyayı hazırlayarak ve her zamanki gibi taahhüt ederek değişikliği taahhüt ediyoruz. Son taahhüdü yapmadan önce durumu kontrol edeceğiz.
Birleştirme tamamlandı. Şimdi bunu uzak depomuza itebiliriz.
İLGİLİ: Git taahhütleri nasıl düzeltilir, düzenlenir, düzenlenir (Git geçmişini değiştirir)
Sonunda her şey birleşir
Sonunda tüm dalların birleştirilmesi gerekir, böylece onlardaki değişiklikler yetim kalmaz ve unutulmaz.
Şubeleri birleştirmek kolaydır, ancak çatışmalarla uğraşmak yoğun, daha büyük takımlarda karmaşıklaşabilir. Çatışmaların çözülmesi, sadece kodlarının ne yaptığını ve değişikliklerini neden yaptıklarını açıklamak için her geliştiricinin girdisini gerektirebilir. Hangi düzenlemelerin saklanacağı hakkında bilinçli bir karar vermeden önce bunu anlamanız gerekir.
- › GIT'de bir şube nasıl yeniden adlandırılır
- › Uzak Git Şubesi Nasıl Ödeme Yapılır
- › Gitteki değişiklikler nasıl saklanır
- › GitHub'da Şubeler Nasıl Değiştirilir
- › Git Rebase: Bilmeniz gereken her şey
- › OnePlus 11 burada, ama zor bir başlangıç ile
- › Microsoft Edge AI sohbeti ve pencerelerde yeni bir görünüm alıyor
- › İPhone hayranları için en iyi kulaklıklar en düşük fiyatlarına çarptı