F
Fərid HəsənovMüəllif
farid.hasanov@example.comGit Rebase vs Git Merge: Hansı Halda Hansı Seçilməlidir?
Komanda mühitində təmiz, oxunaqlı və konfliktlərdən uzaq Git tarixçəsi formalaşdırmaq qaydaları.
Hər bir proqramlaşdırma komandasında ən azı bir dəfə belə bir dialoq olur: "Merge edək, yoxsa Rebase?". Hər iki komanda eyni məqsədə — iki budağın (branch) kodunu birləşdirməyə xidmət etsə də, onların arxada buraxdığı tarixçə tamamilə fərqlidir.
📌 1. Git Merge: Həqiqətin Qorunması
'git merge' etdikdə Git iki budağın son vəziyyətini birləşdirən xüsusi bir 'Merge commit'-i yaradır.
- Üstünlüyü: Tarixçə olduğu kimi qalır, heç bir köhnə commit dəyişmir.
- Çatışmazlığı: Əgər layihədə 10 mühəndis işləyirsə, 'git log' qrafiki saysız-hesabsız qollara ayrılan qarmaqarışıq hörümçək toruna çevrilir.
📌 2. Git Rebase: Xətti və Təmiz Tarixçə
'git rebase main' komandası sizin budaqdakı commit-ləri müvəqqəti kənara qoyur, 'main' budağındakı ən son dəyişiklikləri gətirir və sizin commit-lərinizi bir-bir onun ən təpəsinə yenidən yazır.
- Üstünlüyü: Tarixçə xətti, təmiz və oxunaqlı olur. Sanki siz kodunuzu məhz 5 dəqiqə əvvəlki ən son baza üzərindən yazmısınız.
- Çatışmazlığı: Commit-lərin SHA hash-ləri dəyişir.
📌 3. Qızıl Qayda (The Golden Rule of Rebase):
Heç vaxt hamı ilə paylaşılan ictimai budaqda (məsələn, 'main' və ya 'develop') REBASE ETMƏYİN!
Rebase yalnız sizin şəxsi lokal budağınızda, hələ 'Pull Request' göndərməzdən əvvəl edilməlidir. Birləşdirmə anında isə çox vaxt 'Squash and Merge' seçilir ki, PR-dəki 15 kiçik commit tək bir səliqəli commit-ə çevrilsin.
←Bütün yazılara qayıtKateqoriya: Best Practices