Sobes.tech
Junior

Cum rezolvi conflictele în Git?

sobes.tech AI

Răspuns de la AI

Când se face un pull sau rebase, are loc o fuziune a modificărilor. Dacă Git nu poate rezolva automat liniile în conflict din fișiere, le marchează cu markeri speciali:

<<<<<<< HEAD
linie din ramura curentă
=======
linie din ramura pe care se face merge
>>>>>>> feature/nouă-funcționalitate

Pentru a rezolva conflictul:

  1. Deschide fișierul în conflict într-un editor.

  2. Editează manual fișierul, alegând părțile necesare din ambele versiuni sau creând o combinație nouă.

  3. Șterge markerii <<<<<<<, =======, >>>>>>>.

  4. Salvează fișierul.

  5. Adaugă fișierul rezolvat în index cu git add:

    # Adaugă un fișier specific
    git add cale/către/fișier/resolvat.txt
    
    # Adaugă toate fișierele rezolvate
    git add .
    
  6. Efectuează un commit pentru a finaliza fuziunea:

    # În timpul merge-ului
    git commit -m "Rezolvat conflictul de merge"
    
    # În timpul rebase-ului
    git rebase --continue
    

Dacă sunt multe conflicte sau sunt complexe, poți folosi instrumente de fuziune:

git mergetool

Aceasta va deschide un instrument grafic care te ajută să parcurgi pașii conflictelor.

În cazul dificultăților în timpul rebase, poți folosi:

  • git rebase --abort: Anulează rebase-ul și revino la starea anterioară.
  • git rebase --skip: Sari peste commit-ul în conflict actual (poate fi riscant).

Este important să testezi modificările după rezolvarea conflictelor pentru a te asigura că codul funcționează corect.