Kaip išspręsti „Git“ klaidą: pirmiausia turite išspręsti dabartinį indeksą

Klaida „Pirmiausia turite išspręsti dabartinį indeksą “ atsiranda „Git“ ir reiškia, kad įvyko susijungimo konfliktas, ir nebent išspręsite konfliktą, jums nebus leista atsiskaityti į kitą filialą. Šis klaidos pranešimas taip pat reiškia, kad nepavyko sujungti arba yra konfliktų su failais.

Klaida: pirmiausia turite išspręsti dabartinį indeksą valdydami „Git“ šaltinį

Kas yra visi šie failai, susijungimai ir konfliktai? Šios sąlygos jums nebus žinomos, jei esate „Git“ naudojimo pradininkas. „Git“ yra versijų valdymo platforma, leidžianti keliems žmonėms vienu metu dirbti su failais ir perkelti savo vietinę kodo kopiją į tą, kuri saugoma debesyje. Tokiu būdu, jei pakeisite atsisiųstą (arba jau įstumtą) kodą ir vėl jį nustumsite į debesį, debesyje pakeitimus perrašys jūsų vietinė kopija.

Git turi šakų sampratą. Yra pagrindinė šaka ir dar kelios šakos. Ši klaida ypač pasitaiko, jei perjungiate iš vienos šakos į kitą (naudodamiesi kasa) ir dabartinio filialo failuose yra konfliktų. Jei jie nebus išspręsti, negalėsite perjungti šakų.

Kas sukelia „Git“ klaidą: pirmiausia turite išspręsti dabartinį indeksą?

Kaip minėta anksčiau, šios klaidos priežastys yra gana ribotos. Jūs patirsite šią klaidą, nes:

  • Sujungti nepavyko ir jums reikia kreiptis į suliejimo konfliktą prieš pereinant su kitomis užduotimis.
  • Dabartinio (arba tikslinio filialo) failuose yra konfliktų ir dėl šių konfliktų negalėsite išsiregistruoti iš filialo ar „push“ kodo.

Prieš tęsdami sprendimą įsitikinkite, kad turite tinkamą versijų valdymą ir protinga sustabdyti kitus komandos narius keisti kodą prieš išsprendžiant konfliktą.

1 sprendimas: suliejimo konflikto sprendimas

Jei „Git“ automatiškai neišsprendžia jūsų sujungimo, indeksas ir darbinis medis paliekami specialioje būsenoje, kuri suteikia jums visą informaciją, kurios jums reikia norint išspręsti susijungimą. Failai, turintys konfliktų, bus specialiai pažymėti rodyklėje ir tol, kol išspręsite problemą ir atnaujinsite rodyklę, toliau gausite šį klaidos pranešimą.

  1. Išspręskite visus konfliktus . Patikrinkite failus, kurie turi prieštaravimų, nes juos pažymės rodyklė, ir atitinkamai atlikite juose pakeitimus.
  2. Išsprendę visus esamus konfliktus, pridėkite failą ir atlikite įsipareigojimus .

Pavyzdys:

$ git add file.txt $ git įsipareigoti

Įsipareigodami galite pridėti savo asmeninį komentarą. Pavyzdys:

$ git įsipareigoti –m „Tai„ Appuals Git “saugykla“
  1. Išsprendę konfliktą, pabandykite išsiregistruoti iš esamo filialo ir sužinoti, ar problema išspręsta.

2 sprendimas: sugrąžinkite sujungimą

Yra daugybė atvejų, kai sujungiate šakas ir sujaukėte. Dėl visų konfliktų ir painiavos projektas dabar yra netvarka, o jūsų komandos nariai jus dėl to kaltina. Tokiu atveju turite atšaukti ankstesnį įsipareigojimą (sujungimo įsipareigojimą) . Tai visiškai panaikins sujungimą ir grąžins visą projektą į būseną, kai neatlikote jokių sujungimų. Tai gali būti gelbėtojas, jei nesugadinote dalykų.

Norėdami sugrąžinti sujungimą , įveskite:

$ git reset -– sujungti

Pirmiau nurodyta komanda iš naujo nustatys indeksą ir atnaujins darbo medžio failus, kurie skiriasi nuo „įsipareigoti“ ir „galvos“. Tačiau ji išsaugos tuos failus, kurie skiriasi nuo indekso ir darbo medžio.

Taip pat galite pabandyti grąžinti HEAD naudodami šią komandą:

$ git grąžinti GALVĄ

Jei norite nurodyti tikslų suliejimo įsipareigojimą, kurį norite grąžinti, galite naudoti tą pačią grąžinimo komandą, bet nurodyti papildomus parametrus. Bus naudojamas sujungimo įsipareigojimo SHA1 maišas. -M, po kurio seka 1, rodo, kad norime išlaikyti sujungimo pagrindinę pusę (šaką, į kurią jungiamės). Šio grįžimo rezultatas yra tai, kad „Git“ sukurs naują įsipareigojimą, kuris sugrąžins pakeitimus iš sujungimo.

$ git revert -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4>