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, 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.

  1. Git Değişiklikleri penceresinde Getir'i seçin. Ardından Git Deposu penceresini açmak için giden/gelen'i seçin.

    Visual Studio 2019'un Git Değişiklikleri penceresindeki Getir düğmelerinin ve Gelen bağlantısının ekran görüntüsü.

    Git menüsünden Getir'i de seçebilirsiniz.

    Visual Studio 2019'da Git menüsündeki Getir seçeneğinin ekran görüntüsü.

  2. 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.

    Visual Studio 2019'da Git Deposu menüsünün ekran görüntüsü.

İ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 Trueayarlayı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.

Birleştirme ve yeniden temel kullanma sırasında işleme öncesi ve sonrası işlemelerini gösteren diyagram.

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:

  1. 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.
  2. Yeniden temel veya birleştirme kullanarak yerel main dal güncelleştirmelerini yerel özellik dalınızla tümleştirin.
  3. Yerel özellik dalındaki çalışmanızı ilgili uzak dala göndererek yedekleyin.
  4. Ö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.

  1. > Git Deposu penceresini açmak için menü çubuğunda Git Dalları Yönet'i seçin.

    Visual Studio 2019'un Git menüsündeki Dalları Yönet seçeneğinin ekran görüntüsü.

  2. Git Deposu penceresinde hedef dala sağ tıklayın ve Kullanıma Alma'yı seçin.

    Visual Studio 2019'un Git Deposu penceresindeki Kullanıma Alma seçeneğinin ekran görüntüsü.

  3. Kaynak dala sağ tıklayın ve Kaynak dalı hedef dala> birleştir'i <<seçin.>

    Visual Studio 2019'un Git Deposu penceresindeki Birleştir seçeneğinin ekran görüntüsü.

  4. Başarılı bir birleştirme işleminden sonra Visual Studio bir onay iletisi görüntüler.

    Visual Studio 2019'un Git Deposu penceresindeki birleştirme onay iletisinin ekran görüntüsü.

    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.

    Visual Studio 2019'un Git Deposu penceresindeki birleştirme çakışma iletisinin ekran görüntüsü.

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.

  1. Git > Deposu penceresini açmak için Git Dalları Yönet'i seçin.

    Visual Studio 2019'un Git menüsündeki Dalları Yönet seçeneğinin ekran görüntüsü.

  2. Git Deposu penceresinde hedef dala sağ tıklayın ve Kullanıma Alma'yı seçin.

    Visual Studio 2019'un Git Deposu penceresindeki dal bağlam menüsündeki Kullanıma Alma seçeneğinin ekran görüntüsü.

  3. Kaynak dala sağ tıklayın ve Hedef dalı kaynak> dalda> yeniden temelle'yi <<seçin.

    Visual Studio 2019'un Git Deposu penceresindeki dal bağlam menüsündeki Rebase seçeneğinin ekran görüntüsü.

  4. Visual Studio, başarılı bir yeniden temelden sonra bir onay iletisi görüntüler.

    Visual Studio 2019'un Git Deposu penceresindeki rebase onay iletisinin ekran görüntüsü.

    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.

    Visual Studio 2019'un Git Deposu penceresindeki rebase çakışma iletisinin ekran görüntüsü.

Ç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:

  1. Git menüsünden Araçlar>Seçenekler>Kaynak Denetimi>Git Genel Ayarlar'ne gidin.
  2. Çekerken Yerel dalı yeniden temelle seçeneğini olarak Trueayarlayın.
  1. Git Değişiklikleri penceresinde Çek'i seçin.

    Visual Studio 2019'un Git Değişiklikleri penceresindeki Çekme düğmesinin ekran görüntüsü.

    Git menüsünden Çek'i de seçebilirsiniz.

    Visual Studio 2019'da Git menüsündeki Çekme seçeneğinin ekran görüntüsü.

  2. Çekme işlemi tamamlandığında bir onay iletisi görüntülenir.

    Visual Studio 2019'daki Git Değişiklikleri penceresindeki çekme onayı iletisinin ekran görüntüsü.

    Ç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.

    Visual Studio 2019'daki Git Değişiklikleri penceresindeki çekme çakışması iletisinin ekran görüntüsü.

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.

Sonraki adımlar