Git Eğitimi


Git ve {{title}}


Git Katkıda Bulun


Git Gelişmiş


Git Geri Al




Git Şube Birleştirme


Dalları Birleştir

Acil durum düzeltmesi hazır, öyleyse ana ve acil durum düzeltme dallarını birleştirelim.

İlk olarak, ana şubeye geçmemiz gerekiyor:

Örnek

git checkout master
Switched to branch 'master'

Şimdi mevcut dalı (master) acil durum düzeltmesi ile birleştiriyoruz:

Örnek

git merge emergency-fix
Updating 09f4acd..dfa79db
Fast-forward
 index.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Acil düzeltme şubesi doğrudan master'dan geldiğinden ve biz çalışırken master'da başka bir değişiklik yapılmadığından Git bunu master'ın bir devamı olarak görüyor. Böylece, aynı işleme hem ana hem de acil düzeltmeyi işaret ederek "Hızlı ileri sarabilir".

Ana ve acil düzeltme artık temelde aynı olduğundan, artık gerekmediğinden acil düzeltmeyi silebiliriz:

Örnek

git branch -d emergency-fix
Deleted branch emergency-fix (was dfa79db).

Çatışmayı Birleştir

Artık merhaba dünya görüntülerine geçebilir ve çalışmaya devam edebiliriz. Başka bir resim dosyası (img_hello_git.jpg) ekleyin ve index.html'yi değiştirin, böylece onu göstersin:

Örnek

git checkout hello-world-images
Switched to branch 'hello-world-images'

Örnek

<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<link rel="stylesheet" href="bluestyle.css">
</head>
<body>

<h1>Hello world!</h1>
<div><img src="img_hello_world.jpg" alt="Hello World from Space" style="width:100%;max-width:960px"></div>
<p>This is the first file in my new Git Repo.</p>
<p>A new line in our file!</p>
<div><img src="img_hello_git.jpg" alt="Hello Git" style="width:100%;max-width:640px"></div>

</body>
</html>

Artık buradaki işimiz bitti ve bu dal için sahne alabilir ve taahhüt verebiliriz:

Örnek

git add --all
git commit -m "added new image"
[hello-world-images 1f1584e] added new image
 2 files changed, 1 insertion(+)
 create mode 100644 img_hello_git.jpg

Her iki dalda da index.html'nin değiştirildiğini görüyoruz. Artık merhaba-dünya-görüntülerini master ile birleştirmeye hazırız. Ama son zamanlarda ustada yaptığımız değişikliklere ne olacak?

Örnek

git checkout master
git merge hello-world-images
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.

index.html sürümleri arasında çakışma olduğundan birleştirme başarısız oldu. Durumu kontrol edelim:

Örnek

git status
On branch master
You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Changes to be committed:
        new file:   img_hello_git.jpg
        new file:   img_hello_world.jpg

Unmerged paths:
  (use "git add <file>..." to mark resolution)
        both modified:   index.html

Bu, index.html'de bir çakışma olduğunu doğrular, ancak görüntü dosyaları hazır ve işlenmeye hazırdır.

Bu yüzden bu çatışmayı düzeltmemiz gerekiyor. Dosyayı düzenleyicimizde açın:

Örnek

<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<link rel="stylesheet" href="bluestyle.css">
</head>
<body>

<h1>Hello world!</h1>
<div><img src="img_hello_world.jpg" alt="Hello World from Space" style="width:100%;max-width:960px"></div>
<p>This is the first file in my new Git Repo.</p>
<<<<<<< HEAD
<p>This line is here to show how merging works.</p>
=======
<p>A new line in our file!</p>
<div><img src="img_hello_git.jpg" alt="Hello Git" style="width:100%;max-width:640px"></div>
>>>>>>> hello-world-images

</body>
</html>

Sürümler arasındaki farkları görebilir ve istediğimiz gibi düzenleyebiliriz:

Örnek

<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<link rel="stylesheet" href="bluestyle.css">
</head>
<body>

<h1>Hello world!</h1>
<div><img src="img_hello_world.jpg" alt="Hello World from Space" style="width:100%;max-width:960px"></div>
<p>This is the first file in my new Git Repo.</p>
<p>This line is here to show how merging works.</p>
<div><img src="img_hello_git.jpg" alt="Hello Git" style="width:100%;max-width:640px"></div>

</body>
</html>

Şimdi index.html'yi hazırlayabilir ve durumu kontrol edebiliriz:

Örnek

git add index.html
git status
On branch master
All conflicts fixed but you are still merging.
  (use "git commit" to conclude merge)

Changes to be committed:
        new file:   img_hello_git.jpg
        new file:   img_hello_world.jpg
        modified:   index.html

Çatışma düzeltildi ve birleştirmeyi sonuçlandırmak için taahhüt kullanabiliriz:

Örnek

git commit -m "merged with hello-world-images after fixing conflicts"
[master e0b6038] merged with hello-world-images after fixing conflicts

Ve merhaba-dünya görüntüleri dalını silin:

Örnek

git branch -d hello-world-images
Deleted branch hello-world-images (was 1f1584e).

Artık dalların ve birleştirmenin nasıl çalıştığını daha iyi anladınız. Uzak bir depoyla çalışmaya başlama zamanı!

Egzersizlerle Kendinizi Test Edin

Egzersiz yapmak:

hello-youŞubeyi mevcut şubeyle birleştir :

git  hello-you