Diferența dintre Git Reset, Git Checkout și Git Revert ⋆ ALexHost SRL

Testați-vă abilitățile cu toate serviciile noastre de găzduire și beneficiați de 15% reducere!

Utilizați codul la finalizarea comenzii:

Skills
17.01.2025

Diferența dintre Git Reset, Git Checkout și Git Revert

Controlul eficient al versiunilor este vital pentru orice proiect de dezvoltare, iar infrastructura potrivită vă poate îmbunătăți semnificativ fluxul de lucru. AlexHost oferă soluții de găzduire VPS puternice și scalabile, ideale pentru a vă găzdui depozitele Git și pentru a asigura gestionarea fără probleme a proiectului. Cu adrese IPv4 dedicate, stocare NVMe rapidă și un panou de control ușor de utilizat, AlexHost oferă mediul perfect pentru rularea Git și a altor instrumente de dezvoltare, oferindu-vă performanța și fiabilitatea necesare pentru o colaborare fără probleme.

Atunci când lucrați cu Git, există mai multe comenzi care vă permit să anulați modificările sau să navigați între diferite stări ale depozitului dumneavoastră. Trei dintre cele mai frecvent utilizate comenzi în acest scop sunt git reset, git checkout și git revert. Deși pot părea similare, fiecare servește unui scop distinct și funcționează într-un mod diferit.

Iată o analiză detaliată a diferențelor dintre git reset, git checkout și git revert:


1. git reset

git reset este utilizat pentru a anula validările sau pentru a anula modificările prin mutarea indicatorului HEAD al ramurii curente la o validare specificată. Aceasta modifică istoricul commit-urilor și poate afecta directorul de lucru, zona de staging sau ambele, în funcție de modul în care este utilizată.

Cazuri de utilizare:

  • Anularea livrărilor recente.
  • Mutarea indicatorului HEAD înapoi la un commit anterior.
  • Dezarhivarea fișierelor din zona de așteptare (păstrând modificările în directorul de lucru).

Sintaxa comenzii:

git reset [–soft | –mixed | –hard]

Moduri de resetare:

  • –soft: Mută indicatorul HEAD la commit-ul specificat, dar păstrează modificările atât în zona de staging, cât și în directorul de lucru.
  • –mixed (implicit): Mută indicatorul HEAD la comanda specificată și resetează zona de staging, dar păstrează modificările în directorul de lucru.
  • –hard: Mută indicatorul HEAD, resetează zona de staging și elimină toate modificările din directorul de lucru.

Exemplu:

git reset –hard HEAD~1 # Mutați HEAD înapoi cu un commit și eliminați toate modificările

Atenție: git reset –hard este o operațiune distructivă, deoarece elimină permanent modificările din directorul de lucru și din istoricul comenzilor.


2. git checkout

git checkout este utilizat pentru a comuta între ramuri sau pentru a verifica un anumit commit sau fișier. Aceasta modifică directorul de lucru pentru a se potrivi cu starea ramurii, commit-ului sau fișierului pe care îl verificați, dar nu modifică istoricul commit-urilor decât dacă creați un nou commit după schimbarea ramurii.

Cazuri de utilizare:

  • Comutarea între ramuri.
  • Verificarea unui commit anterior sau a anumitor fișiere fără a modifica istoricul commit.
  • Crearea unei noi ramuri.

Sintaxa comenzii:

git checkout # Trece la o ramură diferită git checkout # Verifică un commit specific într-o stare HEAD detașată git checkout — # Restaurează un fișier specific la ultima sa stare de commit

Exemplu:

git checkout feature-branch # Treceți la ‘feature-branch’ git checkout 123abc # Verificați commit-ul cu hash 123abc (stare HEAD detașată) git checkout — file.txt # Restaurați file.txt la starea sa din ultimul commit

Atenție: Dacă verificați un anumit commit (nu o ramură), intrați într-o stare HEAD detașată, ceea ce înseamnă că modificările nu vor fi asociate cu nicio ramură, cu excepția cazului în care creați o ramură nouă din acel punct.


3. git revert

git revert este utilizat pentru a anula un commit prin crearea unui nou commit care inversează modificările introduse de commit-ul original. Păstrează istoricul commit-urilor, fiind o modalitate sigură de a anula modificările fără a rescrie istoricul.

Cazuri de utilizare:

  • Anularea în siguranță a comenzilor, în special în ramuri partajate sau la distanță.
  • Revenirea la anumite validări, păstrând intact istoricul validărilor.
  • Anularea modificărilor într-un mediu colaborativ.

Sintaxa comenzii:

git revert

Exemplu:

git revert HEAD # Anulează cel mai recent commit și creează un nou commit cu modificările inverse git revert # Anulează un commit specific prin crearea unui nou commit care inversează modificările sale

Notă importantă: git revert nu șterge niciun istoric sau commit. În schimb, creează un nou commit care anulează modificările din commit-ul specificat. Aceasta face din git revert o comandă nedistructivă care menține un istoric complet al modificărilor.

Când să utilizați fiecare comandă

  • Utilizați git reset atunci când:
    • Trebuie să anulați un commit recent (sau mai multe commits) în depozitul dvs. local.
    • Doriți să dezarhivați fișiere sau să anulați modificări în directorul dvs. de lucru.
    • Lucrați pe o ramură locală și nu trebuie să păstrați istoricul commit-urilor.
  • Utilizați git checkout atunci când:
    • Trebuie să comutați între ramuri.
    • Doriți să verificați un commit anterior fără să modificați istoricul (într-o stare HEAD detașată).
    • Trebuie să restaurați un fișier sau un folder la starea sa anterioară fără a afecta restul modificărilor.
  • Utilizați git revert atunci când:
    • Trebuie să anulați modificările care au fost deja transferate către o ramură partajată sau la distanță.
    • Doriți să anulați o modificare, dar să păstrați istoricul intact.
    • Colaborați cu alte persoane și doriți să mențineți un istoric clar și precis al livrărilor.

Concluzie

Fiecare dintre aceste comenzi Git – git reset, git checkout și git revert – are scopul și efectul său unic. Este esențial să înțelegeți când și cum să le utilizați corect pentru a gestiona în mod eficient istoricul și modificările proiectului dumneavoastră. Atunci când lucrați într-un mediu colaborativ, este adesea mai sigur să folosiți git revert pentru a anula modificările, în timp ce git reset poate fi util pentru a vă curăța istoricul local. git checkout, pe de altă parte, este comanda de bază pentru a schimba ramurile sau pentru a naviga prin diferite comenzi fără a modifica istoricul depozitului.

Testați-vă abilitățile cu toate serviciile noastre de găzduire și beneficiați de 15% reducere!

Utilizați codul la finalizarea comenzii:

Skills