Git-fout oplossen ‘Uw lokale wijzigingen in de volgende bestanden worden overschreven door samenvoegen’



Probeer Ons Instrument Voor Het Oplossen Van Problemen

De foutmelding ' Uw lokale wijzigingen in de volgende bestanden worden overschreven door ze samen te voegen ”Treedt op in het versiebeheermechanisme van Git. Deze fout treedt op als u een bestand heeft gewijzigd dat ook wijzigingen heeft in de externe repository.



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

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 hebben in de externe repository. Wanneer u dit bericht ervaart, kunt u het beste uw andere teamleden raadplegen en om hun mening vragen. Of je nu je lokale wijzigingen wilt samenvoegen of de versie aanwezig wilt houden in de repository, 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 verkregen door teamleden via het GitHub-versiebeheersmechanisme. EEN ' Trekken' 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 wijzigingen aan in de code of voeg je meer features toe. Als je eenmaal klaar bent, ‘ Duwen' de code in de repository zodat wijzigingen worden opgeslagen en toevoegingen worden gedaan. De code wordt ook toegankelijk voor andere mensen.

Als Github-versiebeheer nieuw voor je is, is het raadzaam om eerst alle basisbeginselen door te nemen. In dit artikel gaan we er vanuit dat je al over basiskennis beschikt en alle ins en outs kent.



Hoe repareer ik ‘Uw lokale wijzigingen in de volgende bestanden worden overschreven door samenvoegen’?

De oplossing van deze foutmelding hangt af van wat u wilt doen. U kunt uw lokale wijzigingen negeren en de wijzigingen in de repository ophalen, of u kunt uw lokale wijzigingen in een stash opslaan en de versie uit de repository halen. Het hangt allemaal af van uw voorkeur.

Daarom raden we u aan om uw teamleden te raadplegen en ervoor te zorgen dat u allemaal op de dezelfde pagina voordat je verder gaat. Als je een fout maakt of de verkeerde versie pusht, kan dit gevolgen hebben voor het hele team.

Methode 1: een pull forceren om lokale wijzigingen te overschrijven

als jij geef niet om de lokaal aangebrachte wijzigingen en wil je de code uit de repository halen, dan kun je een pull forceren. Hiermee worden alle lokale wijzigingen die op uw computer zijn aangebracht, overschreven. Er verschijnt een kopie van de versie in de repository.

Voer de volgende opdrachten uit in uw IDE:

git reset - harde git pull

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

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

Als u beide wijzigingen wilt behouden (wijzigingen die lokaal zijn gedaan en wijzigingen die aanwezig zijn in de repository), kunt u uw wijzigingen toevoegen en vastleggen. Als je trekt, zal er duidelijk een samenvoegingsconflict 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 u wilt behouden en welke u wilt verwijderen. Dit is de middenweg; er gaan geen wijzigingen verloren totdat u ze handmatig verwijdert.

git add $ the_file_under_error git commit git pull

Wanneer u een samenvoegconflict krijgt, plaatst u die hulpprogramma's voor het oplossen van conflicten en controleert u ze regel voor regel.

Methode 3: beide wijzigingen behouden MAAR niet bindend

Deze situatie doet zich van tijd tot tijd voor waarbij ontwikkelaars niet klaar zijn om zich vast te leggen omdat er een 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

git stash
git pull git stash pop

Als er een aantal conflicten zijn nadat je de stash hebt gepopt, moet je deze op de gebruikelijke manier oplossen. U kunt ook het commando gebruiken:

git stash toepassen

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

Als samenvoegen geen haalbare optie lijkt, overweeg dan om een ​​rebase uit te voeren. Rebasen is het proces van het verplaatsen of combineren van een reeks commits naar een nieuwe basiscommit. Wijzig in het geval van rebasen de code in:

git stash git pull --rebase oorsprong 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, kan dat plegen alles wat u niet wilt overschrijven en volg dan methode 3. U kunt het volgende commando gebruiken voor de wijzigingen die u wilt overschrijven van de versie die aanwezig is in de repository:

git checkout pad / naar / bestand / naar / revert

of

git checkout HEAD ^ pad / naar / bestand / naar / revert

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

git reset HEAD pad / naar / bestand / naar / revert

Ga vervolgens verder met het pull-commando:

git pull

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

3 minuten gelezen