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ą:
-
Atidarykite konfliktuojantį failą redaktoriuje.
-
Rankiniu būdu redaguokite failą, pasirinkdami reikalingas dalis iš abiejų versijų arba sukurdami naują derinį.
-
Pašalinkite žymeklius
<<<<<<<,=======,>>>>>>>. -
Išsaugokite failą.
-
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 . -
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.