Cum se remediază eroarea Git & lsquo; Modificările dvs. locale la următoarele fișiere vor fi suprascrise de merge & rsquo;

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

Eroare Git: Modificările dvs. locale la următoarele fișiere vor fi suprascrise prin îmbinare în timpul codării

Acest mesaj de eroare este evitat DACĂ nu există fișiere neacceptate care au modificări și în depozitul de la distanță. Atunci când experimentați acest mesaj, cel mai bine este să vă consultați ceilalți membri ai echipei și să le cereți părerea. Indiferent dacă doriți să îmbinați modificările locale sau să păstrați versiunea prezentă în depozit, cel mai bine este să țineți pe toți la bord.

Ce sunt depozitele? Ce sunt push and pull în Git?

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

După un Pull, aduceți modificări codului sau adăugați mai multe caracteristici. Odată ce ați terminat, „ Împingeți” codul în depozit, astfel încât modificările să fie salvate și să se adauge. Codul devine accesibil și altor persoane.

Dacă nu sunteți nou în controlul versiunii Github, este recomandat să parcurgeți mai întâi toate elementele de bază. În acest articol, presupunem că aveți deja cunoștințe de bază și că cunoașteți toate aspectele.

Cum se remediază „Modificările dvs. locale la următoarele fișiere vor fi suprascrise prin îmbinare”?

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

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

Metoda 1: forțarea unui pull pentru a suprascrie modificările locale

Dacă nu vă pasă de modificările efectuate local și doriți să obțineți codul din depozit, puteți forța un pull. 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:

git reset - hard git pull

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

Metoda 2: păstrarea ambelor modificări (locale și din repo)

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 comite modificările. Când trageți, va exista evident un conflict de fuziune. Aici puteți utiliza instrumentele din IDE (cum ar fi Difftool și mergetool) pentru a compara cele două bucăți de cod și pentru a determina ce modificări să păstrați și pe care să le eliminați. Aceasta este calea de mijloc; nu se vor pierde modificări până când nu le eliminați manual.

git add $ the_file_under_error git commit git pull

Când obțineți un conflict de fuziune, deschideți instrumentele de rezolvare a conflictelor și verificați rând cu rând.

Metoda 3: Păstrarea ambelor modificări DAR fără angajare

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

git stash save --keep-index

sau

git stash
git pull git stash pop

Dacă există unele conflicte după ce ați scos stocul, ar trebui să le rezolvați în mod obișnuit. De asemenea, puteți utiliza comanda:

git stash se aplică

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

Dacă îmbinarea nu pare o opțiune viabilă pentru dvs., luați în considerare efectuarea unei reinițializări. Rebasing este procesul de mutare sau combinare a unei secvențe de commit-uri către o nouă commit de bază. În cazul reexaminării, modificați codul în:

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

Metoda 4: faceți modificări părților „specifice” ale codului

Dacă doriți să faceți modificări la 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 ^ cale / către / fișier / către / reveniți

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

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

Apoi continuați cu comanda pull:

git pull

Aceasta va încerca apoi să preia versiunea din depozit.