Sobes.tech
Junior

git rebase və git merge əmrləri arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

git rebasegit merge arasındakı fərq, dəyişikliklərin bir şaxədən digərinə necə inteqrasiya olunmasında yatıb.

git merge dəyişiklikləri birləşdirir və yeni birləşdirmə commit-i yaradır. Commit tarixi yalnız hər bir şaxdə xətisiz qalır, lakin birləşdirmə nöqtəsi "filial" yaradır.

// İstifadə nümunəsi:
git checkout main
git merge feature/yeni-xususiyyət

git rebase məqsədli şaxin commitlərini əsas şaxin commitlərinin üstünə keçirir. Bu, sanki iş birbaşa əsas şaxdə aparılmış kimi, xətisiz commit tarixini yaradır. Rebase edilən şaxdəki orijinal commitlər yeni valideyn commitləri ilə yenidən yazılır.

// İstifadə nümunəsi:
git checkout feature/yeni-xususiyyət
git rebase main

Müqayisə:

Xüsusiyyət git merge git rebase
Tarix növü Nizamsız (birlikdə commitlər ilə) Nizamsız (commitlər yenidən yazılır)
Commit tarixi Tamamilə qorunur Dəyişdirilir (commitlər yenidən yazılır)
Birləşdirmə commit-i Yaradılır Yaradılmır
Tarixin aydınlığı Çox vaxt izləmək çətin ola bilər Daha təmiz və nizami, lakin orijinal birləşdirmələrin konteksti itir.

Seçim vəzifə və komanda üstünlüklərinə bağlıdır. Ümumi şaxlər üçün adətən git merge üstün tutulur, tarix saxlanılır. Lokal, hələ yayımlanmamış şaxlər üçün isə, təmiz nizami tarix saxlamaq üçün git rebase istifadə olunur.