Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Visual Studio 2019 | Visual Studio 2022
Git cherry-pick değişiklikleri bir veya daha fazla kaynak dal commit'inden hedef dala kopyalar. Birleştirme veya yeniden temel alma işlemlerinden farklı olarak, cherry-pick belirli kaynak dal işlemelerini seçmenize olanak tanır. Git, seçtiğiniz her kaynak dal işlemesi için hedef dalda karşılık gelen bir işleme oluşturur.
Bu yaygın görevleri yerine getirmek için tek tek seçim yapabilirsiniz:
- Belirli bir özelliği bir daldan diğerine dağıtma.
- Yanlış dalda işlediğiniz çalışmayı kopyalayın.
- Birden çok dalda hata düzeltmesi uygulayın.
Git iş akışına genel bakış için bkz . Azure Repos Git öğreticisi.
Ö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. |
Uyarı
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. |
Bir işlemeyi cherry-pick ile seçme
Azure Repos
Azure Repos, kiraz toplama için sınırlı destek sağlar ve yalnızca bir hedef dalda sıcak düzeltmeyi uygulamak için bir çekme isteği oluşturmak amacıyla sunulur. Daha fazla bilgi için bkz Azure DevOps cherry-picking geliştirme.
Azure Repos'taki çekme isteği menüsündeki Cherry-pick seçeneği aşağıdakileri yapar:
- Pull isteğinin hedef dalından yeni bir topic dalı oluşturur.
- Pull isteğinin kaynak dalından yeni konu dalına tüm değişiklikleri seçer.
- Yeni konu dalını başka bir hedef dalla birleştirmek için yeni bir çekme isteği oluşturmanızı ister.
Adım adım kılavuz için bkz. Cherry-pick ile yeni çekme isteği oluşturma.
GitHub
GitHub web arabirimi kiraz toplamayı desteklemez, ancak GitHub Desktop destekler. GitHub Desktop'ta cherry-pick yapma hakkında adım adım yönergeler için bakınız Bir işlemi seçme.
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 Dalları Yönet'i seçerek Git Deposu penceresini açın.
Git Deposu penceresinde hedef dala sağ tıklayıp Checkout'u seçin.
Dallar görünümünde, kaynak dala sağ tıklayın ve işleme Geçmişi sekmesini açmak için Geçmişi Görüntüle'yi seçin.
Geçmiş sekmesinde, seçmek istediğiniz commit'e sağ tıklayın ve Seçme İşlemini seçin. Visual Studio bir kerede birden fazla işleme seçmeyi desteklemediğinden, tek tek seçmek istediğiniz her işleme için bu adımı yinelemeniz gerekir.
Visual Studio, tek tek seçilen işlemedeki değişiklikleri içeren yeni bir hedef dal işlemesi oluşturur. Kiraz toplama işlemi başarıyla tamamlanmazsa Visual Studio sizi bilgilendirir.
Visual Studio 2019 sürüm 16.8 ve sonraki sürümleri, Takım Gezgini Git kullanıcı arabirimini korurken bir Git sürüm denetimi deneyimi sağlar. Takım Gezgini'ni kullanmak için, menü çubuğunda Araçlar>Seçenekler>Önizleme Özellikleri>Yeni Git kullanıcı deneyimi seçeneklerinin işaretlerini kaldırın. Git özelliklerini her iki arabirimden de birbirinin yerine kullanabilirsiniz.
Team Explorer'da Ana Sayfa düğmesini seçin ve Dallar'ı seçin.
Dallanma görünümünde hedef dala sağ tıklayın ve Geçiş yap seçeneğini seçin.
Dallar görünümünde, kaynak dala sağ tıklayın ve işleme Geçmişi sekmesini açmak için Geçmişi Görüntüle'yi seçin.
Geçmiş sekmesinde, seçmek istediğiniz commit'e sağ tıklayın ve Seçme İşlemini seçin. Visual Studio bir kerede birden fazla işleme seçmeyi desteklemediğinden, tek tek seçmek istediğiniz her işleme için bu adımı yinelemeniz gerekir.
Visual Studio, tek tek seçilen işlemedeki değişiklikleri içeren yeni bir hedef dal işlemesi oluşturur. Kiraz toplama işlemi başarıyla tamamlanmazsa Visual Studio sizi bilgilendirir.
git log komutunu, kaynak dal commit'lerini listelemek için kullanın.
--oneline bayrağı işleme bilgilerini kısaltir.
git log --oneline <source branch>
Git önce en son işlemeleri listeler. Her işleme kimliği, işlemeyi benzersiz olarak tanımlayan kısmi bir SHA-1 karmasıdır. Örneğin:
e745d06 (HEAD -> add-network-controller) Add a test initialization class
a89f48e (origin/add-network-controller) Add fiber optic transceiver test
31da50b Add network switch test
e74baa2 (origin/main, origin/HEAD, test-fiber-optic-transmitter, main) Add readme content
0c14391 Add readme file
32e3946 Add project files.
Tek tek seçmek istediğiniz işlemenin kimliğini not edin.
Henüz seçilmemişse hedef dalı seçin.
git checkout <target branch>
Kaydedilmemiş değişiklikleri işleyin, saklayın veya atın.
Tek bir taahhüt seçmek için:
git cherry-pick <commit ID>
Birden çok işlemeyi tek tek seçmek için işleme kimliklerini boşluklarla ayırın. İşlemeler, sizin girdiğiniz sırayla uygulanır:
git cherry-pick <commit1 ID> <commit2 ID> <commit3 ID>
Bir dizi commit'i kapsayıcı şekilde seçmek için ^..nokta aralığı gösterimini kullanın:
git cherry-pick <oldest-commit ID>^..<newest-commit ID>
Birden çok işlemeyi tek tek seçtiğinizde, varsayılan cherry-pick komutu yeni hedef dal işlemelerinin karşılık gelen bir dizisini oluşturur. Git'e hedef dal değişikliklerini hazırlamasını ve işlememesini söylemek için -n bayrağını kullanın.
git cherry-pick -n <commit1 ID> <commit2 ID>
Ardından, tek bir işlemeyi el ile oluşturarak kiraz seçme işleminden gelen tüm değişiklikleri içerebilirsiniz.
Git, kiraz seçme işlemi sırasında birleştirme çakışmaları olduğunda sizi bilgilendirir. Önce çakışmaları çözebilir ve ardından git cherry-pick --continue çalıştırabilir ya da cherry-pick işlemini geri almak için git cherry-pick --abort çalıştırabilirsiniz.
Sonraki adımlar
İlgili makaleler