8 Ekim 2020 Perşembe

git merge seçeneği - Belirtilen Bir Dalı Alır ve Mevcut Dal İle Birleştirir

Giriş 
Belirtilen dalı mevcut dal ile birleştirmek için kullanılır. Bu komut yerine squash veya rebase kullanılabilir. Açıklaması şöyle
Merge the specified branch into the current branch
Merge ve Conflict
Merge işleminde conflict çıkma olasılığı var. Bu yüzden sıkça merge yapmakta fayda var. Açıklaması şöyle
Delaying things only means it's more likely for others to get code into your merge target, making the merge worse
Merge ve Unit Test
Her iki dalda da unit testlerin geçmesi, merge işleminde sonra da testlerin geçeceği anlamına gelmez. Dolayısıyla master branch'te de testlerin koşması gerekir.

Kullanım
Feature isimli branch açtığımızda şeklen şöyle olur
Merge işleminden sonra şöyle olur. Yani commit tarihçemizi veya sıramızı muhafaza eder

Pull Request vs. Merge Request
Açıklaması şöyle
Pull Request in Bitbucket and GitHub or Merge Request in GitLab are the features made for more convenient code review and change management. Though they have different names, these features are equivalent, as they both do the same git merge command to merge feature branches or forks with the existing code.
Bitbucket Pull Request şeklen şöyle.

Birleştirme işleminden sonra kaynak dalı silmek isteyebiliriz. Şöyle yaparız


Kullanım
Bulunduğumuz dala ismi belirtilen daldaki değişiklikleri birleştirir.

Örnek
Şöyle yaparız
git checkout develop
git merge feature/[JIRA-ID]-description
Yani "develop" dalına geçtikten sonra "feature/[JIRA-ID]-description" dalındaki değişiklikleri develop'a birleştirmek isteriz.

Örnek
Şöyle yaparız
# Get repo changes
git fetch origin

# Go to our feature branch
git checkout feature

# Commit some work
...

# Go to main branch
git checkout master

# Merge feature to main branch
git merge --no-ff feature

# Push to origin
git push origin main

# We can delete the feature branch safely
git branch -d feature
-squash seçeneği
Açıklaması şöyle. Yani commit tarihçesini veya sırasını muhafaza etmez, bizim commitleri en sona ekler.
In this case a new commit in the origin branch will be created, containing all of the commits created in our feature branch.
Şeklen şöyle olur


Örnek
Şöyle yaparız. release branch'e geçtikten sonra bugfix ve feature branch'lerini release branch'e birleştiririz
git checkout release/[YY.MM]
git merge --squash bugfix/[JIRA-ID]-description
git merge --squash feature/[JIRA-ID]-description

Örnek
Şöyle yaparız
# Get repo changes
git fetch origin

# Go to our feature branch
git checkout feature

# Commit some work
...


# Go to main branch
git checkout main

# Merge feature to main branch
git merge --squash feature

# Push to origin
git push origin main

# We can delete the feature branch safely
git branch -d feature

-X seçeneği
Örnek
Şöyle yaparız. otherbranch o anda checkout etmiş olduğumuz branch ile birleştirilir. Yani
develop <- otherbranch şeklindedir.
Burada patience git'e patience algoritmasını kullanması söyleniyor.
git merge -X patience otherbranch

Hiç yorum yok:

Yorum Gönder