Sådan rettes Git-fejl 'Dine lokale ændringer til følgende filer overskrives ved fletning'

Fejlmeddelelsen " Dine lokale ændringer til følgende filer overskrives ved fletning " forekommer i Git-versionskontrolmekanisme. Denne fejl opstår, hvis du har ændret en fil, der også har ændringer i fjernlageret.

Git-fejl: Dine lokale ændringer af følgende filer overskrives ved fletning

Denne fejlmeddelelse undgås, hvis der ikke er nogen ikke-tilladte filer, der også har ændringer i fjernlageret. Når du oplever denne meddelelse, er det bedst at konsultere dine andre teammedlemmer og bede om deres mening. Uanset om du vil flette dine lokale ændringer eller holde versionen til stede i depotet, er det bedst at holde alle ombord.

Hvad er opbevaringssteder? Hvad er push og pull i Git?

Et depot er en slags opbevaring til kode, der konstant ændres og opnås af teammedlemmer gennem GitHub-versionskontrolmekanismen. En ' Pull' betyder, at du trækker den nyeste version af depotet på dit lokale lager / IDE (Integrated Development Environment) såsom Pycharm osv.

Efter et træk foretager du ændringer i koden eller tilføjer flere funktioner. Når du er færdig, ' skubber' du koden ind på depotet, så ændringer gemmes og tilføjelser foretages. Koden bliver også tilgængelig for andre mennesker.

Hvis du er ny med Github-versionskontrol, anbefales det, at du først gennemgår alle de grundlæggende. I denne artikel antager vi, at du allerede har grundlæggende viden og kender alle ind og outs.

Sådan rettes 'Dine lokale ændringer til følgende filer overskrives ved fletning'?

Opløsningen af ​​denne fejlmeddelelse afhænger af, hvad du vil gøre. Du kan kassere dine lokale ændringer og trække dem i depotet, eller du kan gemme dine lokale ændringer i en stash og trække versionen fra depotet. Det hele afhænger af din præference.

Derfor anbefaler vi, at du konsulterer dine teammedlemmer og sørger for, at du alle er på samme side, før du går videre. Hvis du begår forkert eller skubber på den forkerte version, kan det påvirke hele holdet.

Metode 1: Tvinge et træk til at overskrive lokale ændringer

Hvis du ikke er interesseret i de ændringer, der er foretaget lokalt, og vil hente koden fra depotet, kan du tvinge et træk. Dette vil overskrive alle de lokale ændringer, der er foretaget på din computer, en duplikatkopi af versionen i depotet vises.

Udfør følgende kommandoer i din IDE:

 git reset - hårdt git pull 

Dette vil øjeblikkeligt ødelægge alle dine lokale ændringer, så sørg for at vide, hvad du laver, og ikke har brug for dine lokale ændringer.

Metode 2: Opbevaring af begge ændringer (lokal og fra repo)

Hvis du vil beholde begge ændringer (ændringer udført lokalt og ændringer, der findes i depotet), kan du tilføje og udføre dine ændringer. Når du trækker, vil der åbenlyst være en fusionskonflikt. Her kan du bruge værktøjerne i din IDE (som Difftool og mergetool) til at sammenligne de to kodestykker og bestemme, hvilke ændringer der skal holdes, og hvilke der skal fjernes. Dette er den midterste vej; ingen tabninger vil gå tabt, før du manuelt fjerner dem.

 git tilføj $ the_file_under_error git begå git pull 

Når du får en fletningskonflikt, pop disse værktøjer til konfliktløsning og kontroller linje for linje.

Metode 3: Hold begge ændringer, MEN ikke forpligter sig

Denne situation sker fra tid til anden, hvor udviklere ikke er klar til at forpligte sig, fordi der er en delvist brudt kode, som du fejlsøger. Her kan vi stash ændringerne sikkert, trække versionen fra depotet og derefter fjerne stak din kode.

 git stash gemme - holde-indeks 

eller

 git stash 
 git pull git stash pop 

Hvis der er nogle konflikter, efter at du har stashet stash, skal du løse dem på den sædvanlige måde. Du kan også bruge kommandoen:

 git stash gælder 

i stedet for pop, hvis du ikke er klar til at miste den stasede kode på grund af konflikter.

Hvis fusion ikke virker som en bæredygtig mulighed for dig, kan du overveje at foretage en rebase. Genfasning er processen med at flytte eller kombinere en sekvens af forpligtelser til en ny basisforpligtelse. I tilfælde af omplacering skal du ændre koden til:

 git stash git pull --rebase oprindelse master git stash pop 

Metode 4: Foretag ændringer til 'specifikke' dele af din kode

Hvis du vil foretage ændringer i bestemte dele af koden og ikke ønsker at erstatte alt, kan du forpligte alt det, du ikke vil overskrive, og derefter følge metode 3. Du kan bruge følgende kommando til de ændringer, som du vil overskrive fra den version, der findes i depotet:

 git checkout-sti / til / fil / til / vende tilbage 

eller

 git checkout HEAD ^ sti / til / fil / til / vende tilbage 

Du skal også sikre dig, at filen ikke er iscenesat via:

 git nulstille HEAD sti / til / fil / til / vende tilbage 

Fortsæt derefter med pull-kommandoen:

 git pull 

Dette forsøger derefter at hente versionen fra depotet.

Interessante Artikler