Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Git, her yeni işlemeyi kendi öncüline bağlayarak bir dalda geliştirme geçmişini otomatik olarak korur. Bir dalı başka bir dalla birleştirdiğinizde , geçmiş daha az basit hale gelebilir. Örneğin, hızlı ilerleme yapılmayan bir birleştirme, birden çok öncülle birleştirme işlemi oluşturarak ayrışmış geliştirme hatlarını birleştirir. Buna karşılık Git yeniden tabanı , birleştirme işlemesi oluşturmadan farklı geliştirme satırlarını birleştirir ve bu da daha basit bir işleme geçmişine neden olur ancak birleştirme hakkındaki bilgileri kaybeder. Birleştirme türü seçiminiz, birleştirme kaydını korumak mı yoksa işleme geçmişini basitleştirmek mi istediğinizden etkilenir.
Bu makalede, ileri sarmalı birleştirme yerine ne zaman yeniden temel kullanılacağı açıklanır ve aşağıdaki görevler için yordamlar sağlanır:
- Yerel dalınızı yeniden oluşturun
- Yeniden temel aldıktan sonra yerel dalınızı zorla pushlayın
- Yerel işlemeleri sıkıştırmak için etkileşimli yeniden temel
Git iş akışına genel bakış için bkz . Azure Repos Git öğreticisi.
Önkoşullar
Kategori | Gereksinimler |
---|---|
Proje erişimi | projesiüyesi. |
İzinler | - Özel projelerde kodu görüntüleme: En az Temel erişimi. - Özel projelerde kodu klonlama veya katkıda bulunma: Projede Katkıda Bulunanlar güvenlik grubuna üyelik veya ilgili izinler. - Dal veya depo izinlerini ayarlayın: izinleri yönetin dal veya depo için. - Varsayılan dalı değiştir: Depo için politika izinlerini düzenleyin. - Depoyu içeri aktarma: Proje Yöneticileri güvenlik grubunun üyesi veya Git proje düzeyi Depo oluşturma izni İzin verolarak ayarlanmıştır. Daha fazla bilgi için bkz . Git deposu izinlerini ayarlama. |
Hizmetler | Repo'lar etkinleştirildi. |
Araçlar | Opsiyonel. az repos komutlarını kullanın: Azure DevOps CLI. |
Uyarı
Genel projelerde, Paydaş erişimi olan kullanıcılar, kod 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 | projesiüyesi. |
İzinler | - Kodu görüntüle: En az Temel erişim. - Kodun bir kopyasını oluşturma veya koda katkıda bulunma: Katkıda Bulunanlar güvenlik grubunun üyesi veya projedeki ilgili izinlere sahip olma. |
Hizmetler | Repo'lar etkinleştirildi. |
Yerel dalınızı yeniden temel oluşturma
Git rebase, bir kaynak daldan gelen taahhütleri geçerli yerel dalınıza (hedef dal) entegre eder. Kaynak dal değişmeden kalır. Karşılaştırma için Git yeniden temeli ve diğer birleştirme türleri aşağıdaki diyagramda gösterilmiştir.
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 bir başka yolu, rebase işleminin, hedef dalınızdaki değişiklikleri kaynak dal geçmişinin üzerine yeniden oynatmasıdır. Özellikle Git rebase, diğer birleştirme stratejileri için geçerli olmayan mevcut hedef dalın commit'lerinin 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.
Yeniden temel oluşturma sırasında, kaynak dal değişikliği hedef dal değişikliğiyle çakışırsa Git , birleştirme çakışmasını çözmenizi ister. Yeniden temel oluşturma sırasında birleştirme çakışmalarını, birleştirme sırasındaki birleştirme çakışmalarını çözümlediğiniz şekilde çözebilirsiniz.
Rebase ve hızlı iletimsiz birleştirme
Git'in yeniden düzenleme işlemi, hızlı-ileri değil birleştirme olarak da bilinen üç yönlü veya doğru birleştirmeden daha basit ancak daha az kesin bir işlem geçmişiyle sonuçlanır. İşleme geçmişinde bir birleştirme kaydının olmasını istediğinizde, hızlı olmayan bir birleştirme kullanın.
Bir özellik veya hata düzeltme dalı üzerinde çalışan tek kişi sizseniz, yeni main
dal çalışmalarını düzenli aralıklarla tümleştirmek için yeniden temel kullanmayı göz önünde bulundurun. Bu strateji, başkaları tarafından yapılan son çalışmaların farkında olmanıza ve ortaya çıkan birleştirme çakışmalarını hemen çözmenize yardımcı olur. Yeni özelliğinizi en son main
dalının üstüne yeniden üsleyerek doğrusal bir işlem geçmişi sürdürmeye yardımcı olursunuz.
Git rebase ve ne zaman kullanılacağı hakkında daha fazla bilgi için bkz. Rebase ve birleştirme.
Yeniden temel ve zorla gönderme yönergeleri
Daha önce göndermiş olduğunuz bir yerel dalı yeniden temel alır ve ardından varsayılan Git anında iletme komutunu yeniden çalıştırırsanız gönderim başarısız olur. Varsayılan Git push komutu, yerel dalınızı uzak dalla tümleştirmek için bir hızlı ileri sarma birleştirmesi uygular. Rebase işlemi, yerel hedef dalınızdaki mevcut işlemelerin sırasını değiştirdiğinden, bu komut rebase'den sonra başarısız olur ve uzak muadilinin geçmişiyle artık eşleşmez. Bu senaryoda, uzak dalın üzerine yazarak zorla gönderme başarılı olur.
Git rebase ve force push güçlü araçlardır, ancak bunları kullanıp kullanmama konusunda karar verirken şu yönergeleri göz önünde bulundurun:
- Başka kişilerle paylaşılan bir yerel dal gönderildiyse ve başkaları şu anda bu dalı kullanıyorsa, bu dalı yeniden temel almayın; paylaşılan dalı kimsenin kullanmadığından emin olmadıkça bu işlemi yapmayın. Yeniden birleştirme yaptıktan sonra, yerel dalınız artık uzak sunucudaki dalın geçmişiyle eşleşmeyecektir.
- Uzak dalın yerel sürümü artık güncelleştirilmiş uzak dal geçmişiyle eşleşmeyeceğinden, başkaları tarafından kullanılan uzak dala göndermeye zorlamayın.
- Ekibinizin yeniden temel almaya ve göndermeye zorlamaya yönelik kullanım senaryoları üzerinde anlaşmaya varması gerekir.
Tavsiye
Birlikte gözden geçirme süreci için, yeni çalışmayı uzak deponun varsayılan dalı ile birleştirmek amacıyla pull request kullanın.
Yeniden temel oluşturma
- 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 > Dalları Yönet seçeneğini seçerek Git Deposu penceresini açın.
Git Deposu penceresinde hedef dala sağ tıklayın ve Çıkış Yap'ı seçin.
Kaynak dala sağ tıklayın ve Hedef dalı>, >kaynak dal üzerine yeniden temellemek için<< seçin.
Visual Studio, başarılı bir yeniden temelden sonra bir onay iletisi görüntüler.
Birleştirme çakışmaları nedeniyle bir rebase durdurulursa, Visual Studio sizi bilgilendirir. Çakışmaları çözebilir veya rebase işlemini iptal edip rebase öncesi duruma dönebilirsiniz.
Yeniden temel aldıktan sonra yerel dalınızı zorla gönderin
Daha önce göndermiş olduğunuz bir yerel dalı yeniden temel alırsanız, sonraki varsayılan Git gönderimi başarısız olur. Bunun yerine, yerel dalınızı, işleme geçmişlerinin eşleşmesi için uzak karşılık geleninin üzerine yazmaya zorlayabilirsiniz.
Uyarı
Başkalarının üzerinde çalıştığı bir dalı hiçbir zaman güçlü bir şekilde itmeyin. Daha fazla bilgi için bkz. Rebase ve force push yönergeleri.
Visual Studio'da zorlama gönderme yapmak için önce zorlama gönderme seçeneğinin açılması gerekiyor.
Araçlar>Seçenekler>Kaynak Denetimi>Git Genel Ayarları'na gidin.
Push'u etkinleştir --force-with-lease seçeneğini seçin.
Git push --force-with-lease
bayrağı, zorla gönderdiğiniz yerel dallar ile tümleştirilmeyen commit'leri olan uzak dalın üzerine yazmayacağı için --force
bayrağından daha güvenlidir.
- Visual Studio 2022
- Visual Studio 2019 - Git menüsü
- Visual Studio 2019 - Takım Gezgini
- Git Komut Satırı
Git Değişiklikleri penceresinde, değişikliklerinizi göndermek için push düğmesini seçin.
İsterseniz Git menüsünden Gönder'i de seçebilirsiniz.
Varsayılan Git gönderme işlemi başarısız olursa, Visual Studio başarısızGit-Push iletişim kutusunu başlatır. Zorla Gönder'i seçin.
Başarılı bir gönderimden sonra Visual Studio bir onay iletisi görüntüler.
Yerel commitleri sıkıştırmak için etkileşimli yeniden düzenleme
Genellikle, yerel özellik dalınızın yeni bir özelliği üzerinde çalışırken birden çok işleme oluşturursunuz. Yeni özelliği yayımlamaya hazır olduğunuzda, işleme geçmişini basitleştirmek için bu işlemeleri tek bir işlemede birleştirmek isteyebilirsiniz. Etkileşimli bir yeniden düzenleme kullanarak birden çok taahhüdü tek bir taahhüde sıkıştırabilirsiniz.
- Visual Studio 2022
- Visual Studio 2019 - Git menüsü
- Visual Studio 2019 - Takım Gezgini
- Git Komut Satırı
Visual Studio 2022 etkileşimli yeniden dengelemeyi desteklemez. Bunun yerine Git komut satırını kullanın.
Uyarı
Azure DevOps kullanıcıları, çekme isteği sırasında konu dalının commit geçmişini yoğunlaştırmak için squash birleştirme yapabilir.