Cum să remediați eroarea Git „Modificările dvs. locale la următoarele fișiere vor fi suprascrise prin merge”

Mesajul de eroare „ Modificările dvs. locale la următoarele fișiere vor fi suprascrise prin fuziune ” apare în mecanismul de control al versiunii Git. Această eroare apare dacă ați modificat un fișier care are și modificări în depozitul de la distanță.

Git Error: Modificările dvs. locale la următoarele fișiere vor fi suprascrise prin merge

Acest mesaj de eroare este evitat dacă nu există fișiere necomise care să aibă modificări și în depozitul de la distanță. Când întâmpinați acest mesaj, este mai bine să vă consultați ceilalți membri ai echipei și să le cereți părerea. Indiferent dacă doriți să vă îmbinați modificările locale sau să păstrați versiunea prezentă în depozit, este mai bine să păstrați toată lumea la bord.

Ce sunt depozitele? Ce sunt push and pull in Git?

Un depozit este un fel de stocare pentru cod care este modificat și obținut constant de către membrii echipei prin mecanismul de control al versiunii GitHub. Un „ Tull” înseamnă că trageți cea mai recentă versiune a depozitului pe spațiul de stocare / IDE local (Integrated Development Environment), cum ar fi Pycharm etc.

După o tragere, efectuați modificări ale codului sau adăugați mai multe funcții. După ce ați terminat, „ împingeți” codul în depozit, astfel încât modificările sunt salvate și se fac completări. Codul devine accesibil și altor persoane.

Dacă sunteți nou la controlul versiunii Github, vă recomandăm să treceți mai întâi pe toate elementele de bază. În acest articol, presupunem că aveți deja cunoștințe de bază și cunoașteți toate elementele de intrare.

Cum să remediați „Modificările dvs. locale la următoarele fișiere vor fi suprascrise prin merge”?

Rezolvarea acestui mesaj de eroare depinde de ceea ce doriți să faceți. Puteți renunța la modificările locale și le puteți trage pe cele din depozit sau puteți salva modificările locale într-un pachet și puteți trage versiunea din depozit. Totul depinde de preferințele tale.

Prin urmare, vă recomandăm să vă consultați cu membrii echipei dvs. și să vă asigurați că toți sunteți pe aceeași pagină înainte de a merge mai departe. Dacă comiți greșit sau împingi versiunea greșită, aceasta ar putea afecta întreaga echipă.

Metoda 1: Forțarea unei trageri pentru a suprascrie modificările locale

Dacă nu vă interesează modificările efectuate local și doriți să obțineți codul din depozit, puteți forța o tragere. Aceasta va suprascrie toate modificările locale efectuate pe computerul dvs. va apărea o copie duplicată a versiunii din depozit.

Executați următoarele comenzi în IDE:

 resetare git - hard git pull 

Acest lucru va distruge instantaneu toate modificările locale, așa că asigurați-vă că știți ce faceți și nu aveți nevoie de modificările dvs. locale.

Metoda 2: Păstrarea ambelor modificări (locale și din repetare)

Dacă doriți să păstrați ambele modificări (modificările efectuate local și modificările prezente în depozit), puteți adăuga și comuta modificările. Când trageți, va exista, evident, un conflict de fuziune. Aici puteți utiliza instrumentele din IDE-ul dvs. (cum ar fi Difftool și mergetool) pentru a compara cele două bucăți de cod și pentru a determina ce modificări trebuie păstrate și pe care să le eliminați. Acesta este calea de mijloc; nu se vor pierde modificări până când le eliminați manual.

 git add $ the_file_under_error git commit git pull 

Când primiți un conflict de contopire, deschideți instrumentele de rezolvare a conflictelor și verificați linie după linie.

Metoda 3: Păstrarea ambelor modificări DAR nu a comis

Această situație se întâmplă din când în când în care dezvoltatorii nu sunt gata să se angajeze, deoarece există un cod parțial rupt pe care îl depanați. Aici putem stoca modificările în siguranță, tragem versiunea din depozit și apoi dezlipim codul.

 git stash save --keep-index 

sau

 git stash 
 git pull git stash pop 

Dacă există câteva conflicte după ce deschideți stash, ar trebui să le rezolvați în mod obișnuit. Puteți utiliza, de asemenea, comanda:

 git stash se aplică 

în loc de pop dacă nu sunteți gata să pierdeți codul stashed din cauza conflictelor.

Dacă fuziunea nu pare o opțiune viabilă pentru dvs., luați în considerare să efectuați o rambursare. Revenirea este procesul de a muta sau combina o secvență de comiteri către o nouă bază de bază. În cazul rambursării, schimbați codul în:

 git stash git pull --rebase origine master git stash pop 

Metoda 4: Faceți modificări în anumite părți ale codului dvs.

Dacă doriți să efectuați modificări în anumite părți ale codului și nu doriți să înlocuiți totul, puteți comite tot ceea ce nu doriți să suprascrieți și apoi urmați metoda 3. Puteți utiliza următoarea comandă pentru modificările pe care le doriți să suprascrieți din versiunea prezentă în depozit:

 git checkout path / to / file / to / revert 

sau

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

De asemenea, trebuie să vă asigurați că fișierul nu este pus în scenă prin:

 git resetează calea HEAD / to / file / to / revert 

Apoi continuați cu comanda pull:

 git trage 

Acest lucru va încerca apoi să preluăm versiunea din depozit.

Articole Interesante