Slik løser du Git-feil ‘Dine lokale endringer i følgende filer blir overskrevet av fusjon’



Prøv Instrumentet Vårt For Å Eliminere Problemer

Feilmeldingen “ Dine lokale endringer i følgende filer vil bli overskrevet ved sammenslåing ”Forekommer i Git versjonskontrollmekanisme. Denne feilen oppstår hvis du har endret en fil som også har endringer i det eksterne depotet.



Git-feil: Dine lokale endringer i følgende filer vil bli overskrevet ved sammenslåing under koding

Git-feil: Dine lokale endringer i følgende filer vil bli overskrevet ved sammenslåing



Denne feilmeldingen unngås HVIS det ikke er noen uforpliktende filer som også har endringer i det eksterne lagringsområdet. Når du opplever denne meldingen, er det best å konsultere dine andre teammedlemmer og be om deres mening. Enten du vil slå sammen dine lokale endringer eller holde versjonen til stede i depotet, er det best å holde alle ombord.



Hva er arkiver? Hva er push and pull i Git?

Et depot er en slags lagring for kode som kontinuerlig modifiseres og oppnås av teammedlemmer gjennom GitHub-versjonskontrollmekanismen. A ‘ Dra' betyr at du trekker den siste versjonen av depotet til din lokale lagring / IDE (Integrated Development Environment) som Pycharm etc.

Etter et trekk gjør du endringer i koden eller legger til flere funksjoner. Når du er ferdig, Trykk' koden på depotet slik at endringer lagres og tillegg blir gjort. Koden blir også tilgjengelig for andre mennesker.

Hvis du ikke har Github versjonskontroll, er det anbefalt at du går gjennom alt det grunnleggende først. I denne artikkelen antar vi at du allerede har grunnleggende kunnskaper og kjenner til alle detaljene.



Hvordan fikser jeg 'Dine lokale endringer i følgende filer vil bli overskrevet av flette'?

Løsningen på denne feilmeldingen avhenger av hva du vil gjøre. Du kan forkaste lokale endringer og trekke de i arkivet, eller du kan lagre de lokale endringene i en stash og hente versjonen fra depotet. Alt avhenger av dine preferanser.

Derfor anbefaler vi at du rådfører deg med teammedlemmene dine og sørger for at alle er med på samme side før du går videre. Hvis du begår feil eller skyver feil versjon, kan det påvirke hele teamet.

Metode 1: Tvinge et trekk for å overskrive lokale endringer

Hvis du bryr deg ikke om endringene som er gjort lokalt og ønsker å få tak i koden fra depotet, kan du tvinge et trekk. Dette vil overskrive alle lokale endringer som er gjort på datamaskinen din, og en kopi av versjonen i depotet vises.

Utfør følgende kommandoer i IDE:

git reset - hard git pull

Dette vil umiddelbart ødelegge alle dine lokale endringer, så sørg for at du vet hva du gjør og ikke trenger dine lokale endringer.

Metode 2: Holde begge endringene (lokale og fra repo)

Hvis du vil beholde begge endringene (endringene er gjort lokalt og endringene som finnes i depotet), kan du legge til og foreta endringene. Når du trekker, vil det åpenbart være en sammenslåingskonflikt. Her kan du bruke verktøyene i IDE (for eksempel Difftool og mergetool) for å sammenligne de to kodestykkene og bestemme hvilke endringer du skal beholde og hvilke du skal fjerne. Dette er midtveien; ingen endringer vil gå tapt før du fjerner dem manuelt.

git legg til $ the_file_under_error git commit git pull

Når du får en sammenslåingskonflikt, kan du trykke på verktøyene for å løse konflikter og sjekke linje for linje.

Metode 3: Å beholde begge endringene MEN ikke forplikte seg

Denne situasjonen skjer fra tid til annen der utviklere ikke er klare til å forplikte seg fordi det er noe delvis ødelagt kode som du feilsøker. Her kan vi skjule endringene trygt, hente versjonen fra depotet og deretter fjerne koden din.

git stash save --keep-index

eller

git stash
git pull git stash pop

Hvis det er noen konflikter etter at du har lagt inn stashen, bør du løse dem på vanlig måte. Du kan også bruke kommandoen:

git stash gjelder

i stedet for pop hvis du ikke er klar til å miste den stashede koden på grunn av konflikter.

Hvis sammenslåing ikke virker som et levedyktig alternativ for deg, bør du vurdere å gjøre en rebase. Rebasing er prosessen med å flytte eller kombinere en sekvens av forpliktelser til en ny basisforpliktelse. Ved rebasing, endre koden til:

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

Metode 4: Gjør endringer i ‘spesifikke’ deler av koden din

Hvis du vil gjøre endringer i bestemte deler av koden og ikke vil erstatte alt, kan du begå alt du ikke vil overskrive, og følg deretter metode 3. Du kan bruke følgende kommando for endringene du vil overskrive fra versjonen som finnes i depotet:

git checkout path / to / file / to / revert

eller

git checkout HEAD ^ path / to / file / to / revert

Du må også sørge for at filen ikke blir iscenesatt via:

git reset HEAD path / to / file / to / revert

Fortsett deretter med pull-kommandoen:

git pull

Dette vil da forsøke å hente versjonen fra depotet.

3 minutter lest