Acasă Studiu Cum să derulați înapoi fișierele și folderele individuale în Git

Cum să derulați înapoi fișierele și folderele individuale în Git

de Frank
Cum să derulați înapoi fișierele și folderele individuale în Git

Introducere

Git este un instrument excelent pentru menținerea fiecărei versiuni a bazei de cod și uneori este necesar să reveniți în timp și să restaurați versiunile mai vechi ale fișierelor. Git poate anula modificările aduse unui singur fișier sau folder, precum și poate retrage comiterile complete sau reseta întregul depozit.

Alegerea între revenire și resetare

Când „reveniți” un comit, Git aplică de obicei un nou commit cu modificările opuse, anulând-o în esență. Acest lucru este la îndemână dacă faceți o greșeală și trebuie să „eliminați” un comit, chiar dacă acesta rămâne în istoric.

Procedura de resetare a depozitului este oarecum diferită. Puteți retrage doar o comitere la un moment dat, dar dacă executați o resetare git, Git va reseta în întregime depozitul la momentul în care a fost creat acel comit. Acest lucru se face dintr-o varietate de motive, dintre care cele mai frecvente sunt ștergerea comenzilor sau corectarea istoricului ramurilor.

Ambele proceduri afectează întregul depozit, dar pot fi folosite comenzi identice pentru a realiza aceleași efecte asupra fișierelor sau folderelor individuale. De exemplu, executarea git reset pe un singur fișierul l-ar restabili la starea în care se afla când a fost creat commit-ul. Acest lucru este benefic dacă doriți doar să alegeți o versiune mai veche a fișierului din istoricul Git.

Examinând versiunile vechi Git

The low-tech approach to restoring a file to its original state is rather simple—Github and most other Git servers maintain track of your file history, and you can simply click on a commit and choose “Browse Files” to see a snapshot of your repository from the past. You may then either descărcați fișierul sau copiați textul.

Acest lucru este deosebit de util dacă lucrați cu un număr mare de fișiere de cod și doriți să comparați versiunile anterioare ale rutinelor pe care le-ați scris. În acest scenariu, probabil că nu doriți să inversați totul, doar o singură funcție. Fără a atinge CLI-ul Git, puteți copia codul din acea funcție.

Revenirea unui fișier Git la o versiune veche

Am făcut un commit în acest depozit de testare care a schimbat README și a adăugat un fișier nou. Dorim să anulăm modificările README, dar nu vrem să restabilim întregul repo la prima comitere.

Răspunsul este să resetați doar README prin descărcarea unei versiuni mai vechi a acelui fișier. Comanda de checkout a lui Git poate realiza o varietate de lucruri, cum ar fi schimbarea ramurilor, deși este adesea folosită pentru a descărca date bazate pe un ID de commit sau de ramură.

Pentru a restaura un fișier la o versiune anterioară, localizați ID-ul de comitere din momentul în care doriți să-l restaurați. Puteți utiliza git log cu un singur fișier pentru a vedea doar modificările făcute la acel fișier:

git log README.md

Copiați ID-ul de comitere, apoi rulați git checkout cu ID-ul și calea fișierului:

git checkout 22710694b25d7ce5297559851beb7d3e4de811bb README.md

Acest lucru va modifica fișierul înapoi, dar încă nu va efectua modificările. Ești liber să faci modificări și să te angajezi când ești gata.

În acest caz, git checkout a marcat modificările ca fiind gata pentru următoarea comitere. Dacă nu doriți să efectuați modificările, puteți face acest lucru. Acest lucru ar putea fi util pentru descărcarea temporară a versiunilor mai vechi de fișiere fără a utiliza Github.

Revenirea modificărilor la fișierele individuale

În mod similar, puteți folosi git revert pentru a anula modificările făcute într-un singur commit. Nu există nicio modalitate de a-l aplica unui singur fișier, totuși, dacă commit-ul afectează alte fișiere, respingeți modificările.

Use the —no-commit switch to enable modification of the “revert commit” that Git generates automatically.

git rever de8564b131ca6a15a7e7c73f5ef156b119cc0b93

Acest lucru vă permite să faceți modificări fișierelor înainte de a finaliza inversarea. Dacă au fost introduse modificări nedorite, le puteți șterge folosind clientul dvs. sau un git checkout gol.

git checkout -- fișier

Ați putea dori, de asemenea

Navhow este dedicată învățării oamenilor din întreaga lume cum să facă orice.

 

Abonati-va

Cel mai bun buletin informativ de oriunde

©2022 Navhow, Toate drepturile rezervate