Hoe Git Error te repareren 'Uw lokale wijzigingen in de volgende bestanden worden overschreven door samenvoegen'

De foutmelding " Uw lokale wijzigingen in de volgende bestanden worden overschreven door samenvoegen " treedt op in Git-versiecontrolemechanisme. Deze fout treedt op als u een bestand hebt gewijzigd dat ook wijzigingen in de externe opslagplaats bevat.

Git-fout: uw lokale wijzigingen in de volgende bestanden worden overschreven door samenvoegen

Dit foutbericht wordt vermeden ALS er geen niet-gecommitteerde bestanden zijn die ook wijzigingen in de externe repository hebben. Wanneer u dit bericht ervaart, kunt u het beste uw andere teamleden raadplegen en hun mening vragen. Of u nu uw lokale wijzigingen wilt samenvoegen of de versie in de repository aanwezig wilt houden, het is het beste om iedereen aan boord te houden.

Wat zijn repositories? Wat zijn push en pull in Git?

Een repository is een soort opslag voor code die constant wordt gewijzigd en door teamleden wordt verkregen via het GitHub-versiecontrolemechanisme. Een ' Pull' betekent dat u de nieuwste versie van de repository naar uw lokale opslag / IDE (Integrated Development Environment) zoals Pycharm etc. trekt.

Na een pull breng je de code aan of voeg je meer functies toe. Als u klaar bent, ' duwt' u de code in de repository zodat wijzigingen worden opgeslagen en toevoegingen worden aangebracht. De code wordt ook toegankelijk voor andere mensen.

Als u nieuw bent met Github-versiebeheer, is het raadzaam om eerst alle basisprincipes te doorlopen. In dit artikel gaan we ervan uit dat je al over basiskennis beschikt en alle ins en outs kent.

Hoe te repareren 'Uw lokale wijzigingen in de volgende bestanden worden overschreven door samenvoegen'?

De resolutie van dit foutbericht hangt af van wat u wilt doen. Je kunt je lokale wijzigingen weggooien en die in de repository ophalen of je kunt je lokale wijzigingen in een opslagplaats opslaan en de versie uit de repository halen. Het hangt allemaal af van je voorkeur.

Daarom raden we u aan uw teamleden te raadplegen en ervoor te zorgen dat u allemaal op dezelfde pagina bent voordat u verder gaat. Als je foutief vastlegt of de verkeerde versie pusht, kan dit het hele team beïnvloeden.

Methode 1: Een pull forceren om lokale wijzigingen te overschrijven

Als u niet geïnteresseerd bent in de lokaal aangebrachte wijzigingen en de code uit de repository wilt verkrijgen, kunt u een pull forceren. Hiermee worden alle lokale wijzigingen op uw computer overschreven. Er verschijnt een duplicaat van de versie in de repository.

Voer de volgende opdrachten in uw IDE uit:

 git reset - hard git pull 

Hierdoor worden al uw lokale wijzigingen onmiddellijk vernietigd, dus zorg ervoor dat u weet wat u doet en uw lokale wijzigingen niet nodig hebt.

Methode 2: Beide wijzigingen behouden (lokaal en vanuit de repo)

Als u beide wijzigingen wilt behouden (wijzigingen lokaal aangebracht en wijzigingen aanwezig in de gegevensopslagruimte), kunt u uw wijzigingen toevoegen en vastleggen. Wanneer je trekt, zal er duidelijk een samenvoegconflict zijn. Hier kunt u de tools in uw IDE (zoals Difftool en mergetool) gebruiken om de twee stukjes code te vergelijken en te bepalen welke wijzigingen moeten worden behouden en welke moeten worden verwijderd. Dit is de middelste weg; er gaan geen wijzigingen verloren totdat u ze handmatig verwijdert.

 git add $ the_file_under_error git commit git pull 

Wanneer je een samenvoegconflict krijgt, pop je die conflictoplossende tools en vink je regel voor regel aan.

Methode 3: Beide wijzigingen behouden MAAR niet bindend

Deze situatie komt van tijd tot tijd voor waarin ontwikkelaars niet klaar zijn om te plegen, omdat er een aantal gedeeltelijk kapotte code is die u aan het debuggen bent. Hier kunnen we de wijzigingen veilig opslaan, de versie uit de repository halen en vervolgens uw code verwijderen.

 git stash save --keep-index 

of

 stash opbergen 
 git pull git stash pop 

Als er een aantal conflicten zijn nadat je de voorraad hebt opgeruimd, moet je deze op de gebruikelijke manier oplossen. U kunt ook de opdracht gebruiken:

 git stash van toepassing 

in plaats van pop als u niet klaar bent om de opgeslagen code te verliezen vanwege conflicten.

Als samenvoegen geen haalbare optie voor u lijkt, overweeg dan een rebase te doen. Rebasen is het proces van het verplaatsen of combineren van een reeks commits naar een nieuwe basis-commit. Wijzig in het geval van rebasen de code in:

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

Methode 4: Breng wijzigingen aan in 'specifieke' delen van uw code

Als u wijzigingen wilt aanbrengen in specifieke delen van de code en niet alles wilt vervangen, kunt u alles vastleggen dat u niet wilt overschrijven en vervolgens methode 3 volgen. U kunt de volgende opdracht gebruiken voor de wijzigingen die u wilt overschrijven van de versie die aanwezig is in de repository:

 git uitcheckpad / naar / bestand / naar / terugzetten 

of

 git afrekenen HEAD ^ pad / naar / bestand / naar / terugzetten 

U moet er ook voor zorgen dat het bestand niet wordt opgevoerd via:

 git reset HEAD pad / naar / bestand / naar / terugzetten 

Ga vervolgens verder met het pull-commando:

 git pull 

Dit zal dan proberen de versie uit de repository op te halen.

Interessante Artikelen