Sobes.tech
Junior — Middle

git rebase və git merge komandalarını necə ayırd etmək və onların əsas fərqləri nədir?

sobes.tech Süni İntellekt

AI-dan cavab

git mergegit rebase iki fərqli əmirdir, biri digərinə dəyişiklikləri inteqrasiya etmək üçün istifadə olunur, lakin onlar fərqli şəkildə işləyirlər.

  • git merge yeni birləşmə commit-i yaradır, bu hər iki budağın tarixçəsini birləşdirir və onların paralel inkişafını saxlayır. Tarixçənin qolları qalır və nə zaman və necə birləşdiyini açıq şəkildə göstərir.

  • git rebase "tarixçəni" yenidən yazır, sizin yerli commitlərinizi başqa bir budağın üstünə köçürür və birləşmə commitləri olmayan xətti tarix yaradır. Bu, tarixçəni sadələşdirir, lakin commit hashlərini dəyişir.

Əsas fərqlər:

  • Merge qolları qırılmış tarixçəni saxlayır, rebase isə tarixi xətti edir.
  • Rebase-dən sonra, ictimai budaqlarla diqqətli olun, çünki tarixçəni yenidən yazır.
  • Merge daha sadə və komanda işi üçün daha təhlükəsizdir.

Nümunə:

# merge
git checkout feature
git merge main

# rebase
git checkout feature
git rebase main

Birinci halda, birləşmə commit-i yaranacaq, ikinci halda isə commitləriniz "yuxarı" köçürüləcək və main-ın üstünə yerləşdiriləcək.