Git Şubesini Hızlı İleri Alma ve Güncelleme
Git dallarıyla çalışırken genellikle "geliştirme", "yayınlama" veya "hazırlama" dalları gibi farklı dalları tutmak gerekir.
Git dallarıyla çalışırken genellikle "geliştirme", "yayınlama" veya "hazırlama" dalları gibi farklı dalları tutmak gerekir. Git ile, bir şubeyi başka bir şubeyle güncel tutmak için hızlı ileri sarmak kolaydır; örneğin yayın şubesini aşamalandırmadaki değişiklikleri içerecek şekilde güncellemek.
Git Şubesini Hızlı İletme
Git'te dallar yalnızca dalın HEAD'i adı verilen belirli bir işlemin işaretçileridir. Şube, şube yeni taahhütlerle güncellendiğinde veya bir başkasıyla birleştirildiğinde değişebilen basit bir etikettir.
İki farklı dalı birleştirmek için git merge komutunu kullanabilirsiniz. Genellikle bu, iki dalın geçmişlerini birleştiren bir birleştirme işlemi oluşturur; örneğin bir özellik dalından gelen işlemlerin bir çekme isteğiyle ana dalın içine çekilmesi gibi.
Ancak iki dalın geçmişi aynıysa Git özel bir hızlı ileri birleştirme işlemi gerçekleştirecektir. Yukarıdaki örnekte HEAD yayın dalı, development geçmişine dahil edilmiştir; bu, birleştirme işlemine gerek olmadığı anlamına gelir. Bunun yerine, release , develop'u işaret edecek şekilde güncellenir. Bunun için özel bir git fast-forward komutu yoktur; diğerleri gibi basit bir birleşmedir. Birleştirme sırasında değişiklikleri alacak şubeyi kontrol etmek istiyorsunuz. Bu durumda, release güncellenen daldır, dolayısıyla sürümü kontrol ederiz:
git checkout releaseDaha sonra hızlı ileri sarma işlemini gerçekleştirecek olan geliştirme dalını onunla birleştirebiliriz:
git merge developGit GUI istemcisi kullanıyorsanız bu işlem daha sezgisel olabilir. Çoğu müşteri, eski şubeye sağ tıklayıp üzerinde çalıştığınız dalla güncel hale getirme seçeneğine sahip olacaktır.
Hızlı İleri Uzak Şubeler
Unutulmaması gereken bir nokta, hızlı ileri sarmanın yalnızca yerel deponuzu güncelleyeceğidir. Uzaktan kumandayı güncellemek için Github'a basmanız gerekecek. Bir GUI istemcisi kullanıyorsanız, siz itene kadar uzak deponun etiketinin güncel olmadığını görebilirsiniz.
Şubenin hızlı iletilmesi bir taahhüt oluşturmaz ancak yine de Github Eylemleri gibi CI/CD işlem hatlarını tetiklemesi gerekir. Olmazsa, her zaman bir birleştirme taahhüdü oluşturma seçeneği vardır:
git merge --no-ffBu aynı zamanda bazı durumlarda, özellik dallarının her zaman ana daldan ayrı olacağı ve birleştirildiğinde bir birleştirme taahhüdü oluşturacağı daha açık bir dal topolojisinin sürdürülmesi için de yararlı olabilir. Varsayılan olarak, özelliği birleştirirken ana dalda hiçbir şeyi değiştirmediyseniz Git, bekleyebileceğiniz olağan birleştirme taahhüdünü oluşturmak yerine ana dalı hızlı ileri sarar. --no-ff bayrağı bu davranışı önleyecektir.
Alternatif olarak, hızlı ileri sarmayı denemek ve birleştirme işlemi gerekiyorsa başarısız olmak istiyorsanız --ff-only işaretini kullanabilirsiniz.



