Sobes.tech
Junior

Kaip sprendžiate konfliktus Git?

sobes.tech AI

Atsakymas iš AI

Kai atliekate pull arba rebase, įvyksta pakeitimų sujungimas. Jei Git negali automatiškai išspręsti konfliktuojančių eilučių failuose, jis juos pažymi specialiais žymekliais:

<<<<<<< HEAD
eilutė iš dabartinės šakos
=======
eilutė iš sujungiamos šakos
>>>>>>> feature/nauja-funkcija

Norint išspręsti konfliktą:

  1. Atidarykite konfliktuojantį failą redaktoriuje.

  2. Rankiniu būdu redaguokite failą, pasirinkdami reikalingas dalis iš abiejų versijų arba sukurdami naują derinį.

  3. Pašalinkite žymeklius <<<<<<<, =======, >>>>>>>.

  4. Išsaugokite failą.

  5. Pridėkite išspręstą failą į indeksą naudodami git add:

    # Pridėti konkretų failą
    git add kelias/į/išspręstą/failą.txt
    
    # Pridėti visus išspręstus failus
    git add .
    
  6. Atlikite commit, kad užbaigtumėte sujungimą:

    # Suijungimo metu
    git commit -m "Sukonfliktuotas sujungimas išspręstas"
    
    # Rebase metu
    git rebase --continue
    

Jei yra daug konfliktų arba jie sudėtingi, galite naudoti sujungimo įrankius:

git mergetool

Tai atvers grafinį įrankį, kuris padės žingsnis po žingsnio pereiti per konfliktus.

Jei susiduriate su sunkumais rebase metu, galite naudoti:

  • git rebase --abort: Atšaukti rebase ir grįžti į ankstesnį būseną.
  • git rebase --skip: Praleisti šiuo metu konfliktuojantį commit'ą (gali būti pavojinga).

Svarbu po konfliktų sprendimo išbandyti pakeitimus, kad įsitikintumėte, jog kodas veikia teisingai.