Yanıtlar:
GitLab'ın "birleştirme isteği" özelliği, GitHub'ın "çekme isteği" özelliğine eşdeğerdir . Her ikisi de değişiklikleri başka bir daldan veya çataldan dalınıza çekmenin ve mevcut kodunuzla birleştirmenin bir yoludur. Kod inceleme ve değişiklik yönetimi için kullanışlı araçlardır.
GitLab'ın bir makalesinde , özelliğin adlandırılmasındaki farklılıklar tartışılmaktadır:
Birleştirme veya çekme istekleri bir git yönetimi uygulamasında oluşturulur ve atanan bir kişiden iki dalı birleştirmesini ister. GitHub ve Bitbucket gibi araçlar, ilk manuel işlem özellik dalını çekmek olacağı için ad çekme isteğini seçer. GitLab ve Gitorious gibi araçlar, birleştirici tarafından istenen son eylem olduğundan ad birleştirme isteğini seçer. Bu yazıda birleştirme istekleri olarak bahsedeceğiz.
"Birleştirme isteği" git merge
komutuyla karıştırılmamalıdır . "Çekme isteği" git pull
komutuyla da karıştırılmamalıdır . Her iki git
komut da hem çekme isteklerinde hem de birleştirme isteklerinde perde arkasında kullanılır, ancak bir birleştirme / çekme isteği yalnızca bu iki komuttan çok daha geniş bir konuyu ifade eder.
Aynı özellik
Birleştirme veya çekme istekleri bir git yönetimi uygulamasında oluşturulur ve atanan bir kişiden iki dalı birleştirmesini ister. GitHub ve Bitbucket gibi araçlar, ilk manuel işlem özellik dalını çekmek olacağı için ad çekme isteğini seçer. GitLab ve Gitorious gibi araçlar, birleştirici tarafından istenen son eylem olduğundan ad birleştirme isteğini seçer. Bu yazıda birleştirme istekleri olarak bahsedeceğiz.
Benim görüşüme göre, aynı faaliyet anlamına geliyor, ancak farklı bakış açılarından:
Bir düşünün, Alice, Bob'un B deposundan çatallanmış A deposu için bazı taahhütlerde bulunur.
Alice, değişikliklerini B'ye "birleştirmek" istediğinde, Bob'un bu değişiklikleri A'dan "çekmesini" ister.
Bu nedenle, Alice'in bakış açısından, bu bir "birleştirme isteği" iken, Bob bunu bir "çekme isteği" olarak görür.
Çatışma yönetimi açısından ince bir fark vardır. Çatışma durumunda, Github'daki bir çekme talebi, hedef dalda birleştirme taahhüdü ile sonuçlanacaktır . Gitlab'da bir çakışma bulunduğunda, yapılan değişiklikler kaynak dalında birleştirme işleminde olacaktır .
Bkz. Https://docs.gitlab.com/ee/user/project/merge_requests/resolve_conflicts.html
"GitLab, kaynak dalda hedef dalda otomatik olarak birleştirilmemiş bir birleştirme taahhüdü oluşturarak çakışmaları giderir. Bu, birleştirme işleminin değişiklikler birleştirilmeden önce gözden geçirilmesini ve test edilmesini sağlar, böylece hedef dalda gözden geçirilmeden veya kesilmeden istenmeyen değişikliklerin önlenmesi sağlanır. yapı. "
GitLab 12.1 (Temmuz 2019) bir fark getiriyor:
" Gizli Sorunlar için Birleştirme İstekleri "
Güvenlik açıkları gibi gizli sorunları tartışırken, planlarken ve çözerken, Git deposu herkese açık olduğu için açık kaynak projelerinin verimli kalması özellikle zor olabilir.
12.1'den itibaren, ortak bir projedeki gizli sorunların, projenin özel çatalında bir birleştirme isteği oluşturmanıza yardımcı olan Gizli birleştirme isteği oluştur düğmesini kullanarak kolaylaştırılmış bir iş akışı içinde çözülmesi mümkündür.
58583 numaralı sorundan bkz . " Gizli sorunlar " .
GitHub'da benzer bir özellik var, ancak " sürdürücü güvenlik danışma " adı verilen özel bir özel çatal oluşturulmasını içeriyor .
Önceki yanıtlarda belirtildiği gibi, her ikisi de neredeyse aynı amaca hizmet eder. Şahsen git rebase ve birleştirme isteğini seviyorum (gitlab'de olduğu gibi). Birleştirme isteği eklerken özellik dalının, özellik dalı oluşturulduktan sonra ana dalda yapılan en son taahhütlerin tümünü içerdiğinden emin olarak, gözden geçiren / sürdürücüden yük alır. Rebase'i ayrıntılı olarak açıklayan çok kullanışlı bir makale: https://git-scm.com/book/en/v2/Git-Branching-Rebasing