4 Git klaidų pataisymai: pirmiausia turite išspręsti dabartinį indeksą
„Git“ funkcionalumas yra susietas su filialų idėja. Yra pagrindinė šaka, nuo kurios atsišakoja daugybė kitų šakų. Pastebėsite „Git klaida: pirmiausia turite išspręsti esamą indeksą“, jei pereinate iš vienos šakos į kitą arba jei kyla konfliktų su filialo failais.
Negalėsite sukeisti filialų „Git“, kol problema nebus išspręsta. Nereikia bijoti, nes šiandien taisome „Git“ sujungimo klaidą.
Kokie dokumentai, susijungimai ir ginčai? Šios sąlygos jums gali būti nepažįstamos, jei Git dar nesate susipažinęs. „Git“ yra versijos valdymo sistema, leidžianti keliems vartotojams vienu metu dirbti su failais ir įdėti vietinę kopiją į debesies versiją.
Pakeitus bet kurį įkeltą (arba jau pateiktą) kodą, debesies pakeitimai bus pakeisti vietine kopija.
Git turi šakojimosi sąvoką. Pagrindinis filialas yra prieinamas, iš jo atsišakojo įvairūs filialai. Ši problema yra gana dažna migruojant (naudojant patikrą) iš vienos šakos į kitą, kai nesuderinami dabartinės šakos failai. Jei filialas neišspręstas, jo pakeisti negalite.
Git ir jo savybės
Git yra versijų kūrimo platforma arba kodas, leidžiantis stebėti bet kurio failų rinkinio pakeitimus. Paprastai programuotojai tai naudoja savo pastangoms koordinuoti. Git turi keletą svarbių savybių, tokių kaip:
- Greitis
- Duomenų vientisumas ir saugumas
- Pagalba su netiesiniais, paskirstytais procesais
Paskirstyta versijų valdymo sistema leidžia keliems kūrėjams dirbti lygiagrečiai, nesiginčijant dėl kodo. „Git“ leidžia kūrėjams prireikus grįžti prie ankstesnės kodo versijos.
„Git“ stebi projektų failus tiek inžinieriams, tiek netechniniams darbuotojams. Taip keliems žmonėms lengviau dirbti kartu, o tai ypač svarbu dideliuose projektuose su didžiulėmis komandomis.
Paprasčiau tariant, „Git“ yra nemokamas atvirojo kodo valdymo sprendimas. Jis seka projektus ir failus, kaip jie keičiasi laikui bėgant, padedami kelių bendradarbių. Be to, „Git“ leidžia grįžti į ankstesnę būseną arba versiją, jei atsiranda klaidų, pvz., „Git“ sujungimo klaida.
Išmeta Git klaida: pirmiausia reikia išspręsti dabartinį indeksą
Kaip jau minėta, šios problemos priežasčių yra palyginti nedaug. Šią klaidą galite gauti, nes:
- Sujungti nepavyko, todėl prieš pereidami prie papildomų užduočių turite išspręsti sujungimo ginčą.
- Negalite atsiskaityti filialo ar siunčiamo kodo dėl konfliktų dabartiniuose failuose (arba norimoje šakoje).
Prieš pereidami prie sprendimo, įsitikinkite, kad turite tinkamą versijos valdymą, ir patartina neleisti kitiems komandos nariams atlikti kodo pakeitimų, kol ginčas nebus išspręstas.
Kaip ištaisyti „Git sujungimas nepavyko: pirmiausia reikia išspręsti dabartinį indeksą“?
Negalite persijungti į kitą šaką dėl sujungimo konfliktų, atsižvelgiant į „Git Current Index“ klaidą. Kartais šią klaidą gali sukelti dviejų failų neatitikimas, tačiau dažniausiai taip nutinka, kai nepavyksta sujungti. Tai taip pat gali sukelti naudojant pull arba git-checkout komandas.
„Git Merge“ konfliktų tipai
Git sujungimas gali nepavykti dėl šių aplinkybių:
- Pradėti sujungimo procesą: jei pakeisite dabartinio projekto darbo katalogą, sujungimo procedūra nebus pradėta. Pirmiausia turite sukaupti drąsą ir atlikti visas atviras užduotis.
- Vykdant sujungimo procedūrą: sujungimo procesas nebus baigtas, jei kils nesutapimas tarp jungiamo filialo ir dabartinio arba vietinio filialo. Esant tokiai situacijai, Gitas bando pats išspręsti problemą. Tačiau kai kuriais atvejais gali tekti ištaisyti situaciją.
Parengiamieji žingsniai
1. Prieš vykdydami instrukcijas, kaip išspręsti „Git“ sujungimo problemą, turite užtikrinti, kad kiti suliejamų failų naudotojai neturėtų prieigos prie jų ir neatliktų jų pakeitimų.
2. Prieš paliekant šią šaką arba sujungiant dabartinę šaką su pagrindine šaka, rekomenduojama visus pakeitimus išsaugoti naudojant komandą commit. Įsipareigojimui vadovaukitės instrukcijomis:
$ git add
$ git commit -m
Pradėkime taisydami Git Current Index Error arba Git Merge Error.
- Sujungimo konflikto sprendimas
- Anuliuoti sujungimą
- Sujunkite dabartinę šaką su šaka Head
- Ištrinkite nulūžusią šaką
Dabar aptarkime šiuos veiksmus po vieną:
1 veiksmas: sujungimo konflikto sprendimas
Jei „Git“ neišspręs sujungimo automatiškai, jis paliks darbinį medį ir indeksą tam tikroje būsenoje, suteikdamas prieigą prie visos reikiamos informacijos.
Šį klaidos pranešimą pamatysite prieš ištaisydami klaidą „Klaida: pirmiausia reikia išspręsti dabartinio indekso problemą“ ir atnaujindami indeksą, nes failai, kuriuose yra konfliktų, yra specialiai pažymėti indekse.
1. Užbaikite visus ginčus. Kadangi indeksas juos identifikuoja, prieštaringi failai turi būti patikrinti ir modifikuoti.
2. Pridėkite failą ir patvirtinkite jį išsprendę visus ginčus.
Pavyzdys:
$ git add file.txt
$ git commit
Galite palikti asmeninį komentarą. Štai vienas pavyzdys:
$ git commit -m „Tai READUS Git saugykla“
3. Kai konfliktas bus išspręstas, patikrinkite dabartinę šaką ir sužinokite, ar problema išspręsta.
2: susigrąžinkite sujungimą
Yra keletas atvejų, kai filialų sujungimas gali suklysti. Šiuo metu projektas yra chaotiškas dėl visų nesutarimų ir nesusipratimų, o jūsų komandos nariai kaltina jus.
Būtų naudinga, jei šioje situacijoje atšauktumėte ankstesnį įsipareigojimą (sujungti įsipareigojimą). Tai visiškai atšauks sujungimą ir grąžins projektą į būseną prieš bet kokias sujungimo operacijas. Jei ką nors sugadinsite nepataisomai, tai gali išgelbėti jūsų gyvybę.
Norėdami anuliuoti sujungimą, įveskite:
-
$ git reset --merge
Ir paspauskite įvesti.
Aukščiau pateikta komanda atnaujins failus darbiniame medyje, kurie skiriasi nuo „įsipareigojimo“ ir „head“, ir iš naujo nustatys indeksą. Tačiau ji išsaugos failus, kurie skiriasi darbiniame medyje ir indekse.
Ši komanda taip pat gali būti naudojama bandant grįžti į HEAD:
- Įveskite
$ git reset --hard HEAD
ir paspauskite enter.
Galite naudoti aukščiau pateiktą komandą su papildomomis parinktimis, kad apibrėžtumėte tikslų sujungimo įsipareigojimą, į kurį norite grįžti. Bus naudojama sujungimo įsipareigojimo SHA1 maiša. Norime išlaikyti pirminę sujungimo svetainę, kuri žymima -m ir pažymėta 1. (šaka, į kurią jungiamės).
Dėl šio grąžinimo „Git“ sukurs naują įsipareigojimą, kuris grąžins sujungimo pakeitimus:
- Įveskite
$ git revert -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4>
ir paspauskite enter.
3: sujungti dabartinę šaką su pagrindine šaka
Norėdami pereiti prie dabartinės šakos ir ištaisyti „Git“ sujungimo klaidą, vadovaukitės toliau pateiktomis instrukcijomis pastabų rengyklėje:
- Įvedę paspauskite klavišą Enter
git checkout<>
.
Vykdykite šią komandą, kad atliktumėte sujungimo įsipareigojimą, kuris išsaugos viską iš dabartinės šakos ir pašalins viską iš pagrindinės šakos:
- Tipas
git merge -s ours master
.
Norėdami grįžti į pagrindinę šaką, nedelsdami paleiskite šią komandą:
-
git checkout master
Tada naudokite šią komandą kodo rengyklėje, kad sujungtumėte abi šakas:
-
git merge <>
4: ištrinkite nulūžusią šaką
Ištrinkite šaką, kurioje yra daug konfliktų, ir pradėkite iš naujo. Kai visa kita nepavyksta, patariama pašalinti nesuderinamus failus, kad išspręstumėte Git sujungimo klaidą, kaip parodyta toliau:
- Kodo rengyklėje įveskite
git checkout -f <>
. - Paspausk Enter.
Žodynėlis: Common Git Commands
Toliau pateiktame „Git“ komandų rinkinyje pateikiama trumpa jų funkcijų apžvalga šalinant „Git“ sujungimo klaidą: reikia išspręsti esamą indeksą.
- git log -merge: ši komanda pateiks visų jūsų sistemoje esančių komandų, susijusių su sujungimo konfliktu, sąrašą.
- git diff: programa git diff gali būti naudojama norint rasti skirtumus tarp būsenų, saugyklų ar failų.
- git checkout: naudodami komandą git checkout galite anuliuoti failo pakeitimus ir perjungti šakas.
- git reset -mixed: šią komandą galima naudoti norint anuliuoti pakeitimus darbo kataloge ir sustojimo srityje.4
- git merge -abort: galite naudoti komandą Git git merge, kad grįžtumėte į išankstinį sujungimą. Tai taip pat padės jums išeiti iš sujungimo proceso.
- git reset: jei norite atkurti prieštaringus failus į pradinę būseną, naudokite komandą git reset. Ši komanda dažnai naudojama, kai nesutariama dėl sujungimo.
Žodynėlis: bendrieji Git terminai
Prieš bandydami išspręsti „Git“ sujungimo klaidą, peržiūrėkite šią terminologiją. Jei Git dar nesate susipažinęs, šie žodžiai jums nepažįstami.
- Patikra – ši komanda arba žodis padeda vartotojui naršyti tarp šakų. Tačiau tai darydami turite būti atsargūs dėl failų konfliktų.
- Pavyzdys. Kai atliekate „Git“ gavimą, galite atsisiųsti ir perkelti duomenis iš konkretaus filialo į savo darbo vietą.
- Indeksas yra veikianti arba sustatomoji Git dalis. Pakeisti, pridėti ar pašalinti failai bus saugomi indekse, kol būsite pasirengę juos patvirtinti.
- Sujungti – pakeitimų paėmimas iš vienos šakos ir sujungimas į kitą (dažnai pagrindinę) šaką.
- HEAD yra rezervuota galva (pavadinta nuoroda), naudojama įsipareigojimo metu.
Išvada
Tikimės, kad mūsų vadovas buvo naudingas ir įveikėte „Git Merge“ klaidą: pirmiausia turite išspręsti esamą indeksą.
DUK
Ką Git reiškia poreikių sujungimas?
Klaida „Pirmiausia reikia išspręsti dabartinį indeksą“ atsiranda „Git“ ir rodo sujungimo konfliktą ir negalėsite pereiti į kitą šaką, kol problema nebus išspręsta. Šis klaidos pranešimas taip pat rodo, kad nepavyko sulieti arba yra failų konfliktų.
Ką veikia „Git Branch“ komanda?
Galite naudoti komandą git filialas filialams kurti, sudaryti, pervardyti ir ištrinti. Tai neleidžia perjungti šakų ar atkurti šakotos istorijos. Dėl to git filialo komanda yra glaudžiai susijusi su git patikros ir git sujungimo procedūromis.
Parašykite komentarą