Kako ispraviti Git pogrešku & lsquo; Vaše lokalne promjene sljedećih datoteka bit će prebrisane spajanjem & rsquo;
Poruka pogreške " Vaše lokalne promjene sljedećih datoteka bit će prepisane spajanjem " pojavljuje se u mehanizmu za kontrolu verzije Git. Do ove pogreške dolazi ako ste izmijenili datoteku koja također ima izmjene u udaljenom spremištu.
Ova se poruka pogreške izbjegava AKO u udaljenom spremištu ne postoje nepokrenute datoteke koje također imaju izmjene. Kada doživljavate ovu poruku, najbolje je konzultirati se s ostalim članovima tima i zatražiti njihovo mišljenje. Bez obzira želite li spojiti svoje lokalne promjene ili zadržati verziju prisutnu u spremištu, najbolje je da svi budu na brodu.
Što su spremišta? Što su push i pull u Gitu?
Spremište je vrsta pohrane koda koju članovi tima neprestano modificiraju i dobivaju putem GitHub mehanizma kontrole verzije. ' Povuci' znači da povlačite najnoviju verziju spremišta na lokalnu pohranu / IDE (Integrirano razvojno okruženje) kao što je Pycharm itd.
Nakon povlačenja izvršite promjene u kodu ili dodajte više značajki. Kada završite, ' gurnete' kôd u spremište tako da se promjene spremaju i dodaju. Kôd postaje dostupan i drugim ljudima.
Ako ste novi u kontroli verzije Github-a, preporučuje se da prvo prođete kroz sve osnove. U ovom članku pretpostavljamo da već imate osnovno znanje i da znate sve detalje.
Kako popraviti "Vaše lokalne promjene sljedećih datoteka bit će prebrisane spajanjem"?
Razlučivost ove poruke o pogrešci ovisi o tome što želite učiniti. Možete odbaciti svoje lokalne promjene i povući one u spremištu ili možete svoje lokalne promjene spremiti u spremnik i povući verziju iz spremišta. Sve ovisi o vašoj želji.
Stoga vam preporučujemo da se posavjetujete sa članovima svog tima i provjerite jeste li svi na istoj stranici prije nego što krenete naprijed. Ako počinite pogrešno ili potisnete pogrešnu verziju, to bi moglo utjecati na cijeli tim.
Metoda 1: Prisiljavanje povlačenja da prepiše lokalne promjene
Ako vam nije stalo do lokalnih promjena i želite dobiti kôd iz spremišta, možete prisiliti povlačenje. Ovo će prebrisati sve lokalne promjene izvršene na vašem računalu. Pojavit će se duplikat verzije u spremištu.
Izvršite sljedeće naredbe u svom IDE-u:
git reset - hard git pull
Ovo će odmah uništiti sve vaše lokalne promjene, zato budite sigurni da znate što radite i da vam lokalne promjene nisu potrebne.
2. metoda: zadržavanje obje promjene (lokalno i iz repo-a)
Ako želite zadržati obje promjene (promjene izvršene lokalno i promjene prisutne u spremištu), možete dodati i urediti promjene. Kad povučete, očito će doći do sukoba stapanja. Ovdje možete koristiti alate u svom IDE-u (poput Difftool i mergetool) za usporedbu dva dijela koda i određivanje koje promjene treba zadržati, a koje ukloniti. Ovo je srednji put; nikakve promjene neće biti izgubljene dok ih ručno ne uklonite.
git dodaj $ the_file_under_error git commit git pull
Kada dobijete sukob spajanja, iskočite te alate za rješavanje sukoba i provjerite redak po redak.
Metoda 3: Zadržavanje obje promjene, ALI ne počinjenje
Ta se situacija događa s vremena na vrijeme kada programeri nisu spremni za urezivanje jer postoji neki djelomično slomljeni kôd koji otklanjate pogreške. Ovdje možemo sigurno sakriti promjene, izvući verziju iz spremišta, a zatim otpakirati kôd.
git skrivanje spremi --keep-index
ili
git skrivanje
git pull git stash pop
Ako postoje neki sukobi nakon što otvorite skrivanje, trebali biste ih riješiti na uobičajeni način. Također možete upotrijebiti naredbu:
primijeniti git stash
umjesto pop ako niste spremni izgubiti skriveni kôd zbog sukoba.
Ako vam se spajanje ne čini održivom opcijom, razmislite o ponovnoj bazi podataka. Predefiniranje je postupak premještanja ili kombiniranja niza predavanja u novi osnovni zapis. U slučaju prebaziranja, promijenite kod u:
git stash git pull --rebase master master git stash pop
4. metoda: Izmijenite "određene" dijelove koda
Ako želite izvršiti promjene na određenim dijelovima koda i ne želite sve zamijeniti, možete predati sve što ne želite prebrisati, a zatim slijedite metodu 3. Za promjene koje koristite možete upotrijebiti sljedeću naredbu želite prepisati s verzije prisutne u spremištu:
git checkout put / do / datoteke / do / vraćanja
ili
git checkout HEAD ^ put / do / datoteke / do / vraćanja
Također, morate osigurati da datoteka nije uprizorena putem:
git reset HEAD put / do / datoteke / do / vraćanja
Zatim nastavite s naredbom povuci:
git pull
Tada će se pokušati dohvatiti verzija iz spremišta.