Kodu getirme, birleştirme ve çekme ile güncelleştirme
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Bir projeye birkaç katkıda bulunan olduğunda, başkalarının projenin uzak deposuna yüklediği çalışmaları indirip tümleştirerek yerel Git deponuzu güncel tutun. Bu Git komutları yerel deponuzu güncelleştirir:
- Git fetch , başkalarının uzak depoya yüklediği tüm yeni işlemeleri indirir. Yerel depo önbelleğindeki uzaktan izleme dalları güncelleştirilir; yerel dallar değişmeden kalır.
- Git birleştirme , bir veya daha fazla kaynak daldan gelen işlemeleri hedef dala tümleştirir.
- Git yeniden temeli , bir kaynak daldan gelen işlemeleri hedef dala tümleştirir, ancak Git birleştirmeden farklı bir strateji kullanır.
- Git çekme işlemi, getirilen işlemeleri geçerli yerel dalınızla tümleştirmek için bir getirme ve ardından birleştirme veya yeniden temel alma işlemi gerçekleştirir.
Yerel deponuzu uzak bir depoyla eşitlerken Visual Studio bu Git komutlarının bir alt kümesini kullanır.
Git iş akışına genel bakış için bkz . Azure Repos Git öğreticisi.
Bu makalede aşağıdaki görevler için yordamlar sağlanır:
- Getirme ile değişiklikleri indirme
- Birleştirme veya yeniden temelle dalları güncelleştirme
- Çekme ile değişiklikleri indirme ve dalları güncelleştirme
Getirme ile değişiklikleri indirme
Git fetch, yerel deponuzda mevcut olmayan uzak dal işlemelerini ve başvuruda bulunılan dosya nesnelerini indirir ve yerel depo önbelleğindeki uzaktan izleme dallarını güncelleştirir. Uzaktan izleme dalları, uzak dalların yerel olarak önbelleğe alınmış salt okunur kopyalarıdır ve yerel dallarınız değildir. Git fetch yerel dallarınızı güncelleştirmez. Örneğin, tarafından origin
belirlenen uzak deponun bir bugfix3
dalı varsa Git fetch, yerel bugfix3
dalınızı değil, adlı origin/bugfix3
uzaktan izleme dalını güncelleştirir. Uzaktan izleme dallarını kullanarak:
- Getirilen değişiklikleri gözden geçirmek için uzaktan izleme dallarını yerel dalla karşılaştırın.
- Uzaktan izleme dallarını yerel dala birleştirin.
- Uzaktan izleme dalından yeni bir yerel dal oluşturun.
- Visual Studio 2022
- Visual Studio 2019 - Git menüsü
- Visual Studio 2019 - Takım Gezgini
- Git Komut Satırı
Visual Studio 2022, Git menüsünü, Git Değişikliklerini ve Çözüm Gezgini bağlam menülerini kullanarak bir Git sürüm denetimi deneyimi sağlar. Visual Studio 2019 sürüm 16.8, Takım Gezgini Git kullanıcı arabirimini de sunar. Daha fazla bilgi için Visual Studio 2019 - Takım Gezgini sekmesine bakın.
Git Değişiklikleri penceresinde Getir'i seçin. Ardından Git Deposu penceresini açmak için giden/gelen'i seçin.
Git menüsünden Getir'i de seçebilirsiniz.
Git Deposu penceresinde, getirilen işlemeler Gelen bölümünde görünür. Bu işlemedeki değiştirilen dosyaların listesini görmek için getirilen bir işlemeyi seçin. Değiştirilen içeriğin fark görünümünü görmek için değiştirilmiş bir dosya seçin.
İpucu
Getirme , yerel depo önbelleğinizde artık uzak bir karşılığı olmayan uzaktan izleme dallarını silmez. Visual Studio'yu Bir Getirme sırasında eski uzaktan izleme dallarını ayıklamak üzere yapılandırmak için:
- Araçlar>Seçenekler>Kaynak Denetimi>Git Genel Ayarlar'ı seçin.
- Getirme sırasında uzak dalları ayıklama seçeneğini olarak
True
ayarlayın.
Git getirildikten sonra, yerel dalı ilgili uzaktan izleme dalı ile karşılaştırarak uzak dalda nelerin değiştiğini görebilirsiniz. Geçerli yerel dalınızı getirilen değişikliklerle güncelleştirmeye karar verirseniz Git birleştirme veya yeniden temel alma işlemi gerçekleştirebilirsiniz. Alternatif olarak Git çekme işlemini çalıştırarak Git getirme işlemini Git birleştirme veya yeniden temel alma ile birleştirebilirsiniz. Hem Git birleştirme hem de Git yeniden temeli, bir kaynak daldan hedef dala işlemeler uygulayarak hedef dalı güncelleştirir. Ancak Git birleştirme ve Git yeniden temeli farklı stratejiler kullanır. Daha fazla bilgi için bkz . Birleştirme veya yeniden temel alma ile dalları güncelleştirme ve Yeniden temel alma ile birleştirme karşılaştırması.
Birleştirme veya yeniden temelle dalları güncelleştirme
Git birleştirme ve Git rebase, bir kaynak daldan gelen işlemeleri geçerli yerel dalınızla (hedef dal) tümleştirir. Git birleştirme, hızlı veya hızlı olmayan bir birleştirme gerçekleştirir. Hızlı olmayan birleştirme, üç yönlü birleştirme veya doğru birleştirme olarak da bilinir. Git yeniden temeli başka bir birleştirme türüdür. Bu birleştirme türleri aşağıdaki diyagramda gösterilmiştir.
Git birleştirme ve Git yeniden temeli Git iş akışında yaygın olarak kullanılır. Yerel bir özellik veya hata düzeltme dalı üzerinde çalışırken yaygın olarak şunlar uygulanır:
- Uzak işlemeleri getirmek ve birleştirmek için düzenli aralıklarla çekerek yerel
main
dalınızı uzak karşılık gelen dalıyla güncel tutun. - Yeniden temel veya birleştirme kullanarak yerel
main
dal güncelleştirmelerini yerel özellik dalınızla tümleştirin. - Yerel özellik dalındaki çalışmanızı ilgili uzak dala göndererek yedekleyin.
- Özellik tamamlandığında, uzak özellik dalınızı uzak
main
dalla birleştirmek için bir çekme isteği oluşturun.
Bu yaklaşım size yardımcı olur:
- Çalışmanızı etkileyebilecek diğer kişiler tarafından yapılan son çalışmaların farkında olun.
- İşinizle diğer kişiler arasındaki çakışmaları hemen çözün.
- Yeni özelliğinizi güncel proje içeriğinin üzerine uygulayın.
- Çalışmanızın çekme isteği gözden geçirmesini alın.
Adres Mektup Birleştirme
Git birleştirme için, hedef dalın ucu kaynak dal içinde varsa, varsayılan birleştirme türü bir hızlı birleştirme olacaktır. Aksi takdirde, varsayılan birleştirme türü hızlı olmayan bir birleştirme olur.
Hedef dalın ucu kaynak daldan ayrılırsa Git hızlı ileriye doğru birleştirme uygulamayacağından, ileriye doğru git birleştirme işlemi hiçbir zaman birleştirme çakışması içeremez. Varsayılan olarak, Git mümkün olduğunda hızlı bir birleştirme kullanır. Örneğin Git, yerel dalda yalnızca uzak karşılık gelen dalından çekerek güncelleştirdiğiniz bir hızlı iletme birleştirmesi uygular.
Hızlı olmayan git birleştirmesi, kaynak dal değişikliklerini hedef dal değişiklikleriyle tümleştiren yeni bir hedef dal "birleştirme işlemesi" oluşturur. Geçerli değişiklikler, her iki dal için de ortak olan son işlemeden sonra yapılan değişikliklerdir. Yukarıdaki diyagramda işleme C, her iki daldaki son yaygın işlemedir. Herhangi bir kaynak dal değişikliği herhangi bir hedef dal değişikliğiyle çakışırsa Git, birleştirme çakışmasını çözmenizi ister. Birleştirme işlemesi (L) tümleşik kaynak dalını ve hedef dal değişikliklerini içerir. Kaynak ve hedef dal ipuçları (K ve E), birleştirme işlemesinin ana öğeleridir. Dalınızın işleme geçmişinde birleştirme işlemesi, birleştirme işlemi için yararlı bir işaretleyicidir ve hangi dalların birleştirildiğini açıkça gösterir.
Git birleştirme yalnızca hedef dalı değiştirir; kaynak dal değişmeden kalır. Bir veya daha fazla birleştirme çakışması ile karşılaştığınızda, birleştirmeyi tamamlamak için bunları çözümlemeniz gerekir. Alternatif olarak, birleştirme işlemini iptal edebilir ve hedef dalı önceki durumuna döndürebilirsiniz.
Birleştirme seçenekleri ve stratejileri hakkında daha fazla bilgi için Bkz . Git başvuru kılavuzu ve Git birleştirme stratejileri.
İpucu
Kaynak dal bir uzaktan izleme dalıysa, birleştirmeden önce git getirme işlemini çalıştırarak dalın güncel olduğundan emin olun.
- Visual Studio 2022
- Visual Studio 2019 - Git menüsü
- Visual Studio 2019 - Takım Gezgini
- Git Komut Satırı
> Git Deposu penceresini açmak için menü çubuğunda Git Dalları Yönet'i seçin.
Git Deposu penceresinde hedef dala sağ tıklayın ve Kullanıma Alma'yı seçin.
Kaynak dala sağ tıklayın ve Kaynak dalı hedef dala> birleştir'i <<seçin.>
Başarılı bir birleştirme işleminden sonra Visual Studio bir onay iletisi görüntüler.
Birleştirme çakışmaları nedeniyle birleştirme durdurulduysa, Visual Studio sizi bilgilendirir. Çakışmaları çözebilir veya birleştirmeyi iptal edip birleştirme öncesi durumuna dönebilirsiniz.
Rebase
Git rebase , hedef dalın işleme geçmişini yeniden sorgular, böylece tüm kaynak dal işlemelerini ve ardından son ortak işlemeden bu yana tüm hedef dal işlemelerini içerir. Bunu görüntülemenin başka bir yolu, Git yeniden tabanının kaynak dal geçmişinin üzerinde hedef dalınızdaki değişiklikleri yeniden yürütmesidir. Herhangi bir kaynak dal değişikliği herhangi bir hedef dal değişikliğiyle çakışırsa Git, birleştirme çakışmasını çözmenizi ister. Git rebase birleştirme işlemesi oluşturmaz. Özellikle Git yeniden temeli, diğer birleştirme stratejileri için geçerli olmayan mevcut hedef dal işlemelerinin sırasını değiştirir. Yukarıdaki diyagramda commit K', K ile aynı değişiklikleri içerir, ancak C yerine E işlemesine geri bağlandığı için yeni bir işleme kimliğine sahiptir.
Git yeniden temeli yalnızca hedef dalı değiştirir; kaynak dal değişmeden kalır. Bir veya daha fazla birleştirme çakışması ile karşılaştığınızda, yeniden temeli tamamlamak için bunları çözümlemeniz gerekir. Alternatif olarak, yeniden temel işlemini iptal edebilir ve hedef dalı önceki durumuna döndürebilirsiniz.
Özelliğiniz veya hata düzeltme dalınız üzerinde çalışan tek kişi sizseniz, yeni main
dal işlemelerini bu dalda tümleştirmek için Git yeniden temeli'ni kullanmayı göz önünde bulundurun. Aksi takdirde Git birleştirmeyi kullanın. Git yeniden temeli ve ne zaman kullanılacağı hakkında daha fazla bilgi için bkz. Rebase ile değişiklikleri uygulama ve Birleştirmeyi yeniden temel alma.
İpucu
Kaynak dal bir uzaktan izleme dalıysa, yeniden temelden önce git getirme işlemini çalıştırarak dalın güncel olduğundan emin olun.
- Visual Studio 2022
- Visual Studio 2019 - Git menüsü
- Visual Studio 2019 - Takım Gezgini
- Git Komut Satırı
Git > Deposu penceresini açmak için Git Dalları Yönet'i seçin.
Git Deposu penceresinde hedef dala sağ tıklayın ve Kullanıma Alma'yı seçin.
Kaynak dala sağ tıklayın ve Hedef dalı kaynak> dalda> yeniden temelle'yi <<seçin.
Visual Studio, başarılı bir yeniden temelden sonra bir onay iletisi görüntüler.
Birleştirme çakışmaları nedeniyle yeniden temel durdurulmuşsa, Visual Studio sizi bilgilendirir. Çakışmaları çözebilir veya yeniden temeli iptal edip yeniden temel öncesi durumuna dönebilirsiniz.
Çekme ile değişiklikleri indirme ve dalları güncelleştirme
Varsayılan olarak Git çekme işlemi, geçerli yerel dalınızı uzak karşılık gelen dalından güncelleştirmek için git getirme ve Git birleştirme özelliklerini birleştirir. İsteğe bağlı olarak, Git çekme işlemi Git birleştirmesi yerine Git yeniden temeli gerçekleştirebilir.
Git getirme işleminin aksine Git çekme işlemi, uzak depodan yeni işlemeleri indirdikten hemen sonra geçerli yerel dalınızı güncelleştirir. Git getirildikten hemen sonra geçerli yerel dalınızı güncelleştirmek istediğinizi bildiğinizde Git çekme özelliğini kullanın.
İpucu
Visual Studio'yu, Çekerken birleştirme yerine yeniden temel olacak şekilde yapılandırmak için:
- Git menüsünden Araçlar>Seçenekler>Kaynak Denetimi>Git Genel Ayarlar'ne gidin.
- Çekerken Yerel dalı yeniden temelle seçeneğini olarak
True
ayarlayın.
- Visual Studio 2022
- Visual Studio 2019 - Git menüsü
- Visual Studio 2019 - Takım Gezgini
- Git Komut Satırı
Git Değişiklikleri penceresinde Çek'i seçin.
Git menüsünden Çek'i de seçebilirsiniz.
Çekme işlemi tamamlandığında bir onay iletisi görüntülenir.
Çekme işleminin birleştirme bölümü sırasında çakışmalar varsa, Visual Studio sizi bilgilendirir. Çakışmaları çözebilir veya birleştirmeyi iptal edip birleştirme öncesi durumuna dönebilirsiniz.
Not
Visual Studio'da Eşitleme, yerel ve uzak dalı eşitlemek için çekme ve gönderme gerçekleştirir. Eşitleme hakkında daha fazla bilgi için bkz. Visual Studio'da sürüm denetimi için git getirme, çekme, gönderme ve eşitleme kullanma.