Junior — Middle
git rebase ve git merge komutlarını nasıl ayırt ederiz ve temel farkları nelerdir?
sobes.tech yapay zeka
AI'dan gelen yanıt
git merge ve git rebase, bir dalın değişikliklerini diğerine entegre etmek için kullanılan iki farklı komuttur, ancak farklı şekilde çalışırlar.
-
git merge yeni bir birleştirme commit'i oluşturur ve her iki dalın geçmişini birleştirir, paralel gelişimi korur. Geçmiş dallanmış kalır ve ne zaman ve nasıl birleştirildiğini açıkça gösterir.
-
git rebase geçmişi "yazdırır", yerel commitlerinizi başka bir dalın üzerine taşır ve birleştirme commit'leri olmadan doğrusal bir geçmiş oluşturur. Bu, geçmişi basitleştirir, ancak commit hash'lerini değiştirir.
Ana farklar:
- Merge, dallanmış geçmişi korur, rebase geçmişi doğrusal yapar.
- Rebase sonrası, kamu dallarıyla dikkatli olunmalı, çünkü geçmiş yeniden yazılır.
- Merge, işbirliği için daha basit ve daha güvenlidir.
Örnek:
# merge
git checkout feature
git merge main
# rebase
git checkout feature
git rebase main
İlk durumda bir birleştirme commit'i oluşur, ikinci durumda ise commitleriniz "taşınır" ve main'in en üstüne yerleştirilir.