Slik løser du Git Error 'Dine lokale endringer i følgende filer vil bli overskrevet ved å slå sammen'

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: Lokale endringer i følgende filer overskrives ved fletting

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

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

Et depot er en slags lagring for kode som kontinuerlig modifiseres og skaffes av teammedlemmer gjennom GitHub versjonskontrollmekanisme. En ' Pull' betyr at du drar 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, skyver du koden til depotet, så endringene blir lagret og tilleggene blir gjort. Koden blir også tilgjengelig for andre mennesker.

Hvis du er ny med Github-versjonskontroll, anbefales det at du går gjennom alle de grunnleggende prinsippene. I denne artikkelen antar vi at du allerede har grunnleggende kunnskaper og kjenner til alle inn- og utspill.

Hvordan fikser jeg 'Dine lokale endringer i følgende filer vil bli overskrevet ved sammenslåing'?

Oppløsningen av denne feilmeldingen avhenger av hva du vil gjøre. Du kan forkaste lokale endringer og trekke dem i depotet, eller du kan lagre lokale endringer i en stash og trekke versjonen fra depotet. Alt avhenger av din preferanse.

Derfor anbefaler vi at du rådfører deg med teammedlemmene dine og sørger for at dere alle er på samme side før dere 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 ikke bryr deg om endringene som er gjort lokalt og vil hente koden fra depotet, kan du tvinge et trekk. Dette vil overskrive alle lokale endringer som er gjort på datamaskinen din, og det vises en duplikatkopi av versjonen i depotet.

Utfør følgende kommandoer på IDE:

 git reset - hard git pull 

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

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

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

 git legge til $ the_file_under_error git begå git pull 

Når du får en sammenslåingskonflikt, pop disse konfliktløsningsverktøyene og sjekk linje for linje.

Metode 3: Holde begge endringene MEN ikke forplikte

Denne situasjonen skjer fra tid til annen hvor utviklere ikke er klare til å forplikte seg fordi det er noen delvis ødelagte koder som du feilsøker. Her kan vi lagre endringene trygt, trekke versjonen fra depotet og deretter fjerne koden.

 git stash save - keep-index 

eller

 git stash 
 git pull git stash pop 

Hvis det er noen konflikter etter at du har stashet, 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 stash-koden på grunn av konflikter.

Hvis sammenslåing ikke virker som et levedyktig alternativ for deg, kan du vurdere å gjøre en omgang. Rebasing er prosessen med å flytte eller kombinere en sekvens med forpliktelser til en ny base-forpliktelse. I tilfelle avfasing, endre koden til:

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

Metode 4: Gjør endringer i 'spesifikke' deler av koden

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

 git checkout path / to / file / to / revert 

eller

 git checkout HEAD ^ bane / til / fil / til / tilbakestilling 

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

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

Fortsett deretter med trekke-kommandoen:

 git pull 

Dette vil da prøve å hente versjonen fra depotet.

Interessante Artikler