git restore în Git

Restaurează fișierele din directorul de lucru sau scoate modificările din zona de staging.

Sintaxă comandă
git restore [opțiuni] fișiere...

Ce face git restore

Comanda git restore a fost introdusă în Git 2.23 pentru a separa sarcinile confuze care erau realizate anterior de vechea comandă git checkout.

Are un rol clar: dacă ai modificat un fișier și vrei să anulezi schimbările aduse de la ultimul commit, rulezi git restore fișier. Dacă ai adăugat un fișier în staging și vrei să îl scoți (unstaged), folosești git restore --staged fișier.

Opțiuni și argumente

Opțiune / Parametru Descriere
--staged, -S Scoate modificările din zona de pregătire (staging/index), lăsând fișierele din directorul de lucru neatinse.
--source=ARBORE, -s Restaurează conținutul fișierului dintr-un anumit commit sau ramură (implicit HEAD).
--worktree, -W Restaurează conținutul din directorul de lucru (comportament implicit).

Exemple

Exemplul 1: Scoaterea unui fișier din staging (unstaging)

Retragem un fișier adăugat din greșeală în staging fără a-i pierde modificările.

git init -b main demo_rst >/dev/null
cd demo_rst
git config user.name "Test" && git config user.email "test@exemplu.ro"
echo "baza" > fisier.txt
git add fisier.txt && git commit -m "init" >/dev/null
echo "modificare" >> fisier.txt
git add fisier.txt
git restore --staged fisier.txt
git status -s

Rezultat

 M fisier.txt

Greșeli frecvente

  • Rularea comenzii git restore fisier.txt pe modificări nesalvate: conținutul modificat din fișier va fi șters definitiv și înlocuit cu cel din ultimul commit, fără posibilitate de recuperare!

Comenzi înrudite

  • git checkout: Comandă multifuncțională clasică pentru comutarea ramurilor sau restaurarea fișierelor din istoric.
  • git reset: Mută indicatorul ramurii curente (HEAD) la un commit anterior și ajustează staging-ul sau fișierele locale.
  • git stash: Salvează temporar modificările neterminate pe o stivă privată și lasă directorul de lucru curat.