Când trebuie să suprascrieți fișierele locale?

Dacă simțiți nevoia să renunțați la toate modificările dvs. locale și să resetați / suprascrieți totul cu o copie din ramura la distanță, atunci ar trebui să urmați acest ghid.

Important: dacă aveți modificări locale, acestea se vor pierde. Cu sau fără --hard opțiune, orice comitere locală care nu a fost împinsă se va pierde.

Dacă aveți fișiere care nu sunt urmărite de Git (de exemplu, conținut încărcat de utilizator), aceste fișiere nu vor fi afectate.

Fluxul de lucru Suprascrie:

Pentru a suprascrie fișierele locale, faceți următoarele:

git fetch --all
git reset --hard <remote>/<branch_name>

De exemplu:

git fetch --all
git reset --hard origin/master

Cum functioneaza:

git fetch descarcă cele mai recente de la distanță fără a încerca să îmbine sau să refaceți nimic.

Apoi resetarea git resetează ramura principală la ceea ce tocmai ați preluat. --hard opțiunea modifică toate fișierele din arborele dvs. de lucru pentru a se potrivi cu fișierele din origin/master.

Informatii suplimentare:

Este demn de remarcat faptul că este posibil să se mențină actualizările locale prin crearea unei sucursale din master sau pe orice ramură pe care doriți să lucrați înainte de resetare:

De exemplu:

git checkout master
git branch new-branch-to-save-current-commits
git fetch --all
git reset --hard origin/master

După aceasta, toate angajamentele vechi vor fi păstrate în new-branch-to-save-current-commits. Cu toate acestea, modificările neangajate (chiar organizate) vor fi pierdute. Asigurați-vă că ascundeți și comiteți tot ce aveți nevoie.

Atribuire:

Acest articol se bazează pe o întrebare Stack Overflow