Git-də münaqişələri necə həll etmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
Git-də münaqişələr, iki iştirakçı eyni faylın bir hissəsini dəyişdikdə və ya biri faylı silib digər faylı dəyişdirdikdə yaranır.
Münaqişələri həll etmək üçün adətən aşağıdakı addımlar izlənir:
-
Yerel depozit yeniləməsi: Əmin olun ki, uzaq depozitdən ən son kod versiyasına sahibsiniz.
// Uzaq depozitdən ən son dəyişiklikləri alın git pull origin <branch-name> -
Münaqişəli faylların müəyyənləşdirilməsi: Git, hansı fayllarda münaqişə olduğunu bildirəcək.
// Depozitin vəziyyətini və münaqişəli faylları göstərin git statusFayllarda münaqişə işarələri görəcəksiniz, məsələn:
<<<<<<< HEAD // Sizin yerli dəyişiklikləriniz ======= // Uzaq branch-dən gələn dəyişikliklər >>>>>>> <commit-hash><<<<<<< HEAD: yerli dəyişikliklərin başlanğıcı.=======: sizin dəyişiklikləriniz və gələnlər arasında ayırıcı.>>>>>>> <commit-hash>: gələn dəyişikliklərin sonu və commit hash-i.
-
Faylların əl ilə redaktəsi: Münaqişəli faylı mətn redaktorunda açın və münaqişə işarələrini əl ilə silin, yalnız lazım olan kodu saxlayın. Hansı versiyanı saxlamaq və ya hər ikisini birləşdirmək barədə qərar verin.
-
Düzəliş olunmuş faylların əlavə edilməsi: Faylı həll etdikdən sonra, onu indeksə əlavə edin.
// Həll olunmuş faylı indeksə əlavə edin git add <conflicted-file>Bu addımı bütün münaqişəli fayllar üçün təkrarlayın.
-
Münaqişənin həlli üçün commit yaradın: Bütün həll olunmuş faylları əlavə etdikdən sonra, commit yaradın. Git avtomatik olaraq münaqişənin həll olunduğunu göstərən mesaj təklif edəcək.
// Münaqişənin həlli üçün commit yaradın git commitBu mesajı yadda saxlamadan əvvəl redaktə edə bilərsiniz.
-
Dəyişiklikləri göndərin: Həll olunmuş dəyişiklikləri uzaq depozitə göndərin.
// Dəyişiklikləri uzaq depozitə göndərin git push origin <branch-name>
Münaqişələrin həlli üçün alətlər:
Daha rahatlıq üçün qrafikləşdirilmiş birləşdirmə alətləri istifadə edilə bilər, məsələn:
- Kdiff3
- Meld
- VS Code Birləşdirmə Redaktoru
- IDE-lər (IntelliJ IDEA, PyCharm və s.) ilə daxili vasitələr
Xarici aləti münaqişələrin həlli üçün konfiqurasiya etmək üçün:
// Xarici birləşdirmə alətinin konfiqurasiyası (misal üçün opendiff)
git config --global merge.tool opendiff
// Aləti işə salın
git mergetool
Əhəmiyyətlidir ki, vaxtında uzaq depozitdən dəyişiklikləri almaq (git pull) münaqişələrin sayını azaltmağa kömək edir.