Pull request'leri tamamlama, bırakma veya geri döndürme

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Visual Studio 2019 | Visual Studio 2022

Tavsiye

Azure DevOps görevlerine yardımcı olması için yapay zekayı kullanabilirsiniz. Başlamak için bkz. Azure DevOps MCP Sunucusu ile yapay zeka yardımlarını etkinleştirme .

Gerekli tüm gözden geçirenler çekme isteğinizi (PR) onayladıktan ve çekme isteği tüm dal ilkesi gereksinimlerini karşıladıktan sonra, değişikliklerinizi hedef dal ile birleştirip çekme isteğini tamamlayabilirsiniz. Veya PR'daki değişiklikleri uygulamama kararı alırsanız, PR'yi terk edebilirsiniz.

Gözden geçirenlerin değişikliklerini ele almak, gözden geçirme açıklamalarını yanıtlamak ve çözümlemek için bkz . Açıklamaları adresle.

Önkoşullar

Kategori Gereksinimler
Proje erişimi Bir projenin üyesi.
İzinler - Özel projelerde kodu görüntüleme: En azından Temel erişim.
- Özel projelerde kod kopyalama veya koda katkıda bulunma: Katkıda Bulunanlar güvenlik grubunun üyesi veya projedeki ilgili izinler.
- Dal veya depo izinlerini ayarlama: İzinleri yönetme , dal veya depo izinleridir.
- Varsayılan dalı değiştir: İlkeleri düzenleme işlemi, depoya ilişkin izinleri belirler.
- Bir depoyu içeri aktarma: Proje Yöneticileri güvenlik grubunun üyesi veya Git proje düzeyinde Depo oluşturma izni İzin Ver olarak ayarlanır. Daha fazla bilgi için bkz . Git deposu izinlerini ayarlama.
Hizmetler Depolar etkinleştirildi.
Tools Optional. Komutları kullanın az repos : Azure DevOps CLI.

Not

Ortak projelerde Paydaş erişimi olan kullanıcılar, kodu görüntüleme, kopyalama ve koda katkıda bulunma dahil olmak üzere Azure Depolarına tam erişime sahiptir.

Kategori Gereksinimler
Proje erişimi Bir projenin üyesi.
İzinler - Kodu görüntüle: En azından Temel erişim.
- Kodu kopyalama veya koda katkıda bulunma: Katkıda Bulunanlar güvenlik grubunun üyesi veya projedeki ilgili izinler.
Hizmetler Depolar etkinleştirildi.

İzinler ve erişim hakkında daha fazla bilgi için bkz . Varsayılan Git deposu ve dal izinleri ve Erişim düzeyleri hakkında.

Azure DevOps Services'te, kullanarak Azure komut satırı arabiriminden azure-devops yönetebilirsiniz. Azure DevOps Services CLI ile çalışmayı öğrenmek için bkz . Azure DevOps CLI'yı kullanmaya başlama. Azure Repos CLI komutları PR'ler için az repos pr kullanıyor.

Birleştirme değişikliklerini kontrol etme

Çekme isteğini tamamladığınızda Git, ana dalın sonuna yeni bir birleştirme işlemesi ekler. Bu birleştirme commit'i, ana dalın ve PR kaynak dalının geçmişlerini bağlar. Önizleme birleştirme işlemesini görmek ve birleştirme çakışmalarını kontrol etmek için, bir PR Genel Bakış sayfasının sağ üst köşesindeki Diğer seçenekler menüsünü ve ardından Birleştirme değişikliklerini görüntüle'yi seçin.

Çekme isteğini oluşturduktan sonra hedef dalı değiştirdiyseniz, Birleştirmeyi Yeniden Başlat’ı seçerek yeni bir önizleme birleştirme işlemi oluşturun ve birleştirme değişikliği fark görünümünü güncelleyin.

P R'nin Diğer seçenekler menüsündeki Birleştirmeyi görüntüle ve Birleştirmeyi yeniden başlat seçeneklerini gösteren ekran görüntüsü.

Dal ilkelerini gözden geçirme

Ekipler, korumalı dallardaki PR'lerin birleştirilmeden önce belirli ölçütleri karşılamasını gerektiren dal ilkeleri ayarlayabilir. Çekme isteğinizde geçerli olan dal ilkelerini, birleştirme için gerekli olup olmadıklarını ve çekme isteğinizin başarılı olup olmadığını görebilirsiniz.

Çekme İsteği Genel Bakış sekmesi, çekme isteği için başarılı veya başarısız olan dal politikalarını özetler. Genel bakışta yalnızca başarısız ilkeler listelenir, ancak Tüm <n> denetimlerini görüntüle'yi seçerek tüm ilke denetimlerini görebilirsiniz.

PR Genel Bakış sayfasında, dal ilkesi gereksinimlerinde simgesi bulunur. Gereksinimin yanındaki Diğer seçenekler'i seçin ve ardından İlke Politikasını Görüntüle'yi seçerek Proje Ayarları'ndaki dalın Dal Politika Ayarları sayfasına gidin.

P R'de dal politikası gereksiniminin yanındaki 'Politikayı Görüntüle' seçeneğini gösteren ekran görüntüsü.

Çekme isteğini tamamla

Birleştirme çakışmalarını çözümledikten ve PR tüm dal politikalarını karşıladıktan ve gerekli onaylara sahip olduktan sonra PR'yi tamamlayabilirsiniz.

  1. PR'yi tamamlamak için sağ üst köşeden Tamamla'yı seçin. İsterseniz, Tamamla düğmesinin yanındaki açılan oku seçin ve seçeneklerden birini belirleyin.

    P R için Tamamla düğmesi seçeneklerini gösteren ekran görüntüsü.

    • Tamamla: PR’yi şimdi tamamlayın ve değişiklikleri hedef dala kaynaştırın.
    • Otomatik tamamlama ayarla: PR'yi gerekli tüm dal ilkelerini karşıladığında tamamlayacak ve birleştirecek şekilde yapılandırın.
    • Taslak olarak işaretle: Çekme isteğini taslak durumuna döndürerek tüm oyları kaldırın.
    • Terk Etme: Değişiklikleri birleştirmeden çekme isteğini kapatın.
  2. Çekme isteğini tamamla bölmesindeki Birleştirme türü altında birleştirme seçeneklerinden birini seçin.

    P R iletişim kutusunun tamamını gösteren ekran görüntüsü.

    • Birleştirme (hızlı ileri sarma olmadan): Tüm commit'leri koruyan doğrusal olmayan bir geçmiş ile birleştirme yapın.
    • Squash commit: Tüm kaynak commit'leri hedef commit'te birleştiren doğrusal bir geçmişle birleştirin veya squash birleşmeleri. İşleme geçmişini kaynak daldan tutmadan hedef dal için yeni bir işleme oluşturulacağını unutmayın.
    • Yeniden temel ve ileri sarma: Kaynak işlemelerini hedefe ve ileriye doğru yeniden temelleyin.
    • Yarı doğrusal birleştirme: Kaynak değişikliklerini hedefe yeniden uygulayın ve iki ebeveynli bir birleştirme oluşturun.

    Not

    Mevcut ilkeler zorunlu kılındı. Örneğin, dalınızın şu anda "yalnızca squash birleştirme" ilkesi varsa, başka bir birleştirme türü kullanmak istiyorsanız bu ilkeyi değiştirmeniz gerekir.

  3. Aşağıdaki tamamlama sonrası seçeneklerinden herhangi birini seçin. Bazı birleştirme türleri için bazı seçenekler kullanılamaz.

    • Birleştirmeden sonra ilişkili iş öğelerini tamamlama: Bağlı iş öğelerini tamamlayın.
    • Birleştirdikten sonra <dal adını> silin: PR'ın kaynak dalını birleştirdikten sonra silin.
    • Birleştirme komutuyla ilgili özel ileti: Özel birleştirme komutuyla ilgili ileti ekleyin. Bu seçeneği seçerseniz birleştirme işleme iletisini güncelleştirin.
    • Dal ilkelerini geçersiz kılın ve birleştirmeyi etkinleştirin. Çekme isteği dal ilkelerinin tümünü karşılamasa bile birleştirilmeyi zorla. Bu seçenek yalnızca politikadan muaf tutulma yetkiniz varsa kullanılabilir.
  4. Birleştirmeyi tamamla seçeneğini seçin.

Birleştirmeyi tamamladığınızda, bağlı iş öğeleri PR tamamlanmasını göstermek için otomatik olarak güncellenir.

Tamamlanan P Rs değerini gösteren bağlantılı iş öğelerinin ekran görüntüsü.

PR tamamlanırken yeniden temel alma

Çekme isteği tamamlama sırasında yeniden başlatmanın mümkün olmadığı birkaç durum vardır:

  • Hedef dallardaki bir ilke "rebase" stratejilerinin kullanılmasını yasaklıyorsa, "rebase" yapmak için dal ilkelerini geçersiz kılma iznine sahip olmanız gerekir.
  • PR kaynak dalının ilkeleri varsa, yeniden temel alamazsınız. Taban aralığı değiştirme, politika onay sürecinden geçmeden kaynak dalını değiştirir.
  • Birleştirme Çakışması Uzantısı'nı birleştirme çakışmalarını çözmek için kullandıysanız yeniden temel alamazsınız. Üç yönlü birleştirmeye uygulanan çakışma çözümleri, tüm çekme isteği taahhütlerini ayrı ayrı yeniden sıralarken nadiren başarılı veya geçerli olur.

Tüm bu durumlarda, dalınızı yerel olarak yeniden düzenleyip ardından uzak depoya gönderebilir veya PR'ı tamamladığınızda değişikliklerinizi squash ederek birleştirebilirsiniz.

Birden çok birleştirme tabanı sorunu

Bazı durumlarda bir PR birden fazla gerçek birleştirme tabanına sahip olabilir ve bu durum güvenlik sorunlarına yol açabilir. Çekme isteğindeki dosyaların birleştirme tabanları içinde farklı sürümleri varsa, birden çok birleştirme tabanı uyarısı verilir. Daha fazla bilgi ve düzeltme için Birden Çok Birleştirme Temeli'ne bakın.

Birleştirme çakışmalarını çözmek

Dalınızdaki dosya değişiklikleri başka bir daldaki değişikliklerle çakışabilir. Nasıl birleştirileceği net olmadığında, Git, çekme isteğinin Genel Bakış sayfasında çakışan dosyaları gösterir. PR veya otomatik tamamlama ayarlarını yapmadan önce, PR dalı ile hedef dal arasındaki birleştirme çakışmalarını çözmeniz gerekir. Birleştirme çakışmalarını çözme yönergeleri için bkz . Birleştirme çakışmalarını çözme.

P R'nin Genel Bakış sekmesinde birleştirme çakışmalarını gösteren ekran görüntüsü.

Otomatik tamamlama için çekme isteği oluşturma

Koşullar tüm dal ilkelerini karşıladığında çekme isteği değişikliklerini tamamlamak ve birleştirmek için Tamamla açılır listesinden Otomatik tamamlama ayarla'yı seçin. PR (çekme isteği) tamamlandığında bir e-posta bildirimi alırsınız. Bir çakışma veya hata, PR'nin tamamlanmasını engelliyorsa, sorun hakkında sizi bir e-posta bilgilendirir.

Not

Otomatik tamamlama ayarla seçeneği, dal ilkeleriniz olduğunda Azure Repos ve TFS 2017 ve üzeri sürümlerde kullanılabilir. Otomatik tamamlamayı ayarla seçeneğini görmüyorsanız dal politikalarınız yok. Daha fazla bilgi için bkz . Dal ilkeleri.

Varsayılan olarak, otomatik tamamlanacak şekilde ayarlanmış bir pull request yalnızca gerekli ilkelerde bekler. Otomatik tamamlamayı etkinleştir panelinde isteğe bağlı ilkeleri beklemeyi de seçebilirsiniz.

Otomatik tamamlamayı etkinleştir panelinde isteğe bağlı bir ilkenin gerekli olarak değiştirilmesini gösteren ekran görüntüsü.

TFS 2018 Güncelleştirme 2'den başlayarak, Genel Bakış sayfası PR'nin beklediği tüm ilke kriterlerinin listesini görüntüler. Otomatik tamamlamayı etkinleştir panelinde gerekli olacak şekilde bir ilke ayarladıysanız, Genel Bakış sayfasında ilkeyi isteğe bağlı olarak ayarlayabilirsiniz.

Otomatik tamamlama'yı kapatmak için Otomatik tamamlamayı iptal et'i seçin.

Otomatik tamamlama durumundaki PR'nin ekran görüntüsü.

Otomatik tamamlama durumundaki PR'nin ekran görüntüsü.

Otomatik tamamlamaya ayarlanmış bir çekme isteği, otomatik tamamlama rozeti ile Çekme istekleri sayfasında gösterilir.

Çekme isteği listesinde otomatik tamamlamayı gösteren bir çekme isteği ekran görüntüsü.

Çekme isteğini iptal etme veya yeniden etkinleştirme

Değişikliklerinizi ve çekme isteğinizi birleştirmeden bırakmak için, Tamamla düğmesindeki açılan listeden Bırak'ı seçebilirsiniz. Terk edilen çekme isteğini görüntülemeye devam edebilirsiniz ve iş öğeleriyle ilişkilendirilmeye devam eder.

Bırakılan bir çekme isteğini istediğiniz zaman yeniden etkinleştirmek için Bırakılan sekmesindeki Çekme İsteği görünümünü açın ve sağ üst köşedeki Yeniden Etkinleştir'i seçin.

Tamamlanmış çekme isteğini geri alma

Çekme isteğindeki değişiklikleri geri döndürmek için şu adımları izleyin. Daha fazla bilgi için bkz Değişiklikleri geri alma.

  1. Tamamlanan çekme isteğini açın ve Geri Al'ı seçin. Bu eylem, deponuzdaki mevcut bir hedef dalda çekme isteğiyle yapılan değişiklikleri geri alan bir dizi değişiklik içeren yeni bir dal oluşturur.

  2. Çekme isteğini geri al bölmesinde:

    1. Hedef dal altında PR değişikliklerini geri almak istediğiniz dalı seçin.
    2. Konu dal adı gerekli altında, çekme isteği dalının adını geri alma işlemi yapacaksanız değiştirin.
    3. Geri Al'ı seçin.
  3. Yeni çekme isteği ekranında Oluştur'u seçin.

  4. Geri döndürme işlemini tamamlamak için yeni pull request'i birleştirin.

Not

Bu geri döndürme işlemi sırasında oluşturulan dal, özgün çekme isteğindeki tüm dosya değişikliklerini geri alan tek bir işlemeye sahiptir. Dal, orijinal PR'deki commit'lerin her biri için geri alınmış bir commit içermez.

Sonraki adımlar