Kaip ištaisyti „Git“ klaidą & lsquo; Vietiniai šių failų pakeitimai bus perrašyti sujungus & rsquo;

Klaidos pranešimas „ Jūsų vietiniai šių failų pakeitimai bus perrašyti sujungiant “ atsiranda „Git“ versijos valdymo mechanizme. Ši klaida įvyksta, jei pakeitėte failą, kuris taip pat turi pakeitimų nuotolinėje saugykloje.

Git klaida: Koduojant vietiniai šių failų pakeitimai bus perrašyti sujungiant

Šio klaidos pranešimo išvengiama, jei nuotolinėje saugykloje nėra neįvykdytų failų, kurie taip pat turi pakeitimų. Patiriant šią žinutę, geriausia pasikonsultuoti su kitais komandos nariais ir paprašyti jų nuomonės. Nesvarbu, ar norite sujungti vietinius pakeitimus, ar palikti versiją saugykloje, geriausia visus laikyti laive.

Kas yra saugyklos? Kas yra „push and pull“ „Git“?

Saugykla yra tam tikra kodo saugykla, kurią komandos nariai nuolat modifikuoja ir gauna naudodamiesi „GitHub“ versijos valdymo mechanizmu. „ Pull“ reiškia, kad naujausią saugyklos versiją traukiate į savo vietinę saugyklą / IDE (integruotą kūrimo aplinką), pvz., „Pycharm“ ir kt.

Po „Pull“ atliksite kodo pakeitimus arba pridėsite daugiau funkcijų. Kai baigsite, „ nuspausite“ kodą į saugyklą, kad pakeitimai būtų išsaugoti ir papildyti. Kodas prieinamas ir kitiems žmonėms.

Jei dar nesinaudojote „Github“ versijos valdymu, rekomenduojama pirmiausia atlikti visus pagrindus. Šiame straipsnyje mes manome, kad jūs jau turite pagrindinių žinių ir žinote visus trūkumus.

Kaip išspręsti problemą „Sujungus bus perrašyti jūsų vietiniai šių failų pakeitimai“?

Šio klaidos pranešimo skiriamoji geba priklauso nuo to, ką norite padaryti. Galite atmesti vietinius pakeitimus ir traukti juos į saugyklą, arba galite išsaugoti vietinius pakeitimus į talpyklą ir ištraukti versiją iš saugyklos. Viskas priklauso nuo jūsų pageidavimų.

Taigi, prieš eidami į priekį , rekomenduojame pasitarti su komandos nariais ir įsitikinti, kad visi esate tame pačiame puslapyje . Jei įsipareigojate neteisingai arba pateikiate neteisingą versiją, tai gali paveikti visą komandą.

1 metodas: priversti traukti perrašyti vietinius pokyčius

Jei jums nerūpi vietoje atlikti pakeitimai ir norite gauti kodą iš saugyklos, galite priversti traukti. Tai perrašys visus lokalius pakeitimus, atliktus jūsų kompiuteryje, pasirodys saugykloje esančios versijos kopija.

Savo IDE vykdykite šias komandas:

git reset - sunkus git pull

Tai iškart sunaikins visus jūsų vietinius pakeitimus, todėl įsitikinkite, kad žinote, ką darote, ir jums nereikia vietinių pakeitimų.

2 metodas: išlaikyti abu pakeitimus (vietinius ir iš atpirkimo)

Jei norite išsaugoti abu pakeitimus (pakeitimus, atliktus vietoje ir pakeitimus, esančius saugykloje), galite pridėti ir atlikti pakeitimus. Kai traukiate, akivaizdžiai kils susijungimo konfliktas. Čia galite naudoti IDE įrankius (pvz., „Difftool“ ir „mergetool“), kad palygintumėte du kodo elementus ir nustatytumėte, kuriuos pakeitimus palikti, o kuriuos pašalinti. Tai yra vidurinis kelias; jokie pakeitimai nebus prarasti, kol nepašalinsite jų rankiniu būdu.

git pridėti $ the_file_under_error git įsipareigoti git pull

Gavę susijungimo konfliktą, iššaukite tuos konfliktų sprendimo įrankius ir patikrinkite eilutę po eilutės.

3 metodas: išlaikyti abu pakeitimus, bet neįvykdyti

Ši situacija kartkartėmis pasitaiko, kai kūrėjai nėra pasirengę įsipareigoti, nes yra iš dalies sugadintas kodas, kurį jūs derinate. Čia galime saugiai paslėpti pakeitimus, ištraukti versiją iš saugyklos ir tada ištrinti kodą.

git stash save --keep-index

arba

git stash
git pull git stash pop

Jei iškilus kokiems nors konfliktams po to, kai iššokate, jūs turėtumėte juos išspręsti įprastu būdu. Taip pat galite naudoti komandą:

taikoma git atlicināt

vietoj popso, jei nesate pasirengęs prarasti paslėptą kodą dėl konfliktų.

Jei sujungimas jums neatrodo tinkamas pasirinkimas, apsvarstykite galimybę atlikti pakartotinę bazę. Perkėlimas iš naujo yra procesas, perkeliantis arba sujungiantis įsipareigojimų seką naujam pagrindiniam įsipareigojimui. Pakartotinio pakeitimo atveju pakeiskite kodą į:

git stash git pull - „rebase origin master git stash pop “

4 metodas: keiskite „konkrečias“ savo kodo dalis

Jei norite pakeisti tam tikras kodo dalis ir nenorite visko pakeisti, galite atlikti viską, ko nenorite perrašyti, ir tada laikytis 3 metodo. Pakeitimams, kuriuos norite atlikti, galite naudoti šią komandą. norite perrašyti iš saugykloje esančios versijos:

„git“ kasos kelias / į / failą / į / grąžinti

arba

git checkout HEAD ^ kelias / į / failą / į / grąžinti

Be to, turite įsitikinti, kad failas nėra surežisuotas per:

git reset HEAD kelias / į / failą / į / grąžinti

Tada atlikite traukimo komandą:

git traukti

Tada bandysite gauti versiją iš saugyklos.