Middle
Git versiya idarəetmə sistemində merge və rebase əmrləri arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
merge filialı iki valideyi yeni bir commit yaradaraq birləşdirir və dəyişikliklərin tarixçəsini saxlayır. rebase bir filialın commitlərini digərinin üstünə köçürür, tarixi xətkeşli edir, lakin commit hashlərini dəyişdirir.
-
mergeilə:- Yeni birləşdirmə commit-i yaradılır.
- Filialların tarixi açıq qalır.
- Konfliktlər baş verə bilər və yeni commit-də həll olunur.
# Merge nümunəsi git checkout feature-branch git merge main # Konfliktləri həll et, varsa git commit -m "main-i feature-branch-ə birləşdir" -
rebaseilə:- Commitlər "köçürülür" və hədəf filialın üstünə tətbiq olunur.
- Tarix xətkeşli olur, daha təmiz görünə bilər.
- Köçürülən commitlərin hashləri dəyişir.
- Hər köçürülən commit üçün konflikt baş verə bilər.
- Bu, artıq nəşr olunmuş və digər inkişaf etdiricilər tərəfindən istifadə olunan filiallar üçün tövsiyə edilmir, çünki tarixi dəyişir.
# rebase nümunəsi git checkout feature-branch git rebase main # Konfliktləri həll et, varsa (hər konfliktli commit üçün təkrarla) git add . git rebase --continue # və ya git rebase --skip, commit-i keçmək üçün # və ya git rebase --abort, ləğv etmək üçün
| Xüsusiyyət | merge | rebase |
|---|---|---|
| Tarix dəyişiklikləri | Tarixi saxlayır | Tarixi dəyişir (yenidən yazar) |
| Commitlər | Merge commit yaradır | Mövcud commitləri köçürür |
| Xəttəvi tarix | Yox (filiallar ayrılır) | Bəli (tarixi sadələşdirir) |
| Yanaşma | Törədici olmayan | Potensial olaraq dağıdıcı |
| Tətbiq sahəsi | İctimai, ümumi filialar | Lokal, şəxsi filialar |