Sobes.tech
Junior

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:

  1. 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>
    
  2. 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 status
    

    Fayllarda 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.
  3. 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.

  4. 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.

  5. 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 commit
    

    Bu mesajı yadda saxlamadan əvvəl redaktə edə bilərsiniz.

  6. 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.