Skip to content

Cum să salvezi temporar modificări cu git stash — Ghid complet

DodaTech Updated 2025-01-15 3 min read

In this tutorial, you'll learn about Cum să salvezi temporar modificări cu git stash. We cover key concepts, practical examples, and best practices.

În acest ghid vei învăța cum să folosești git stash pentru a salva temporar modificările și a le restaura mai târziu, fără a face commit-uri intermediare inutile.

The Problem

Trebuie să schimbi branch-ul rapid, dar ai modificări necommitate pe care nu vrei să le pierzi. Un commit temporar poluează istoricul, iar pierderea modificărilor este costisitoare. git stash este soluția.

The Wrong Way

# Faci un commit doar ca să salvezi munca
git commit -m "wip: munca in progres"
git checkout main
# Acum ai un commit inutil în istoric

Commit-urile "WIP" aglomerează istoricul și trebuie apoi eliminate cu rebase, ceea ce complică inutil fluxul de lucru.

The Right Way

# Salvează modificările
git stash push -m "wip: navbar"

# Listează stash-urile
git stash list

# Restaurează fără a șterge stash-ul
git stash apply

# Restaurează și șterge stash-ul
git stash pop

# Șterge un stash specific
git stash drop stash@{0}

Step-by-Step Fix

1. Salvează modificări (git stash push)

git stash push -m "wip: refactorizare auth"

Output:

Saved working directory and index state On main: wip: refactorizare auth

Alternativa scurtă:

git stash

2. Salvează doar fișiere specifice

git stash push -m "doar css" -- "*.css"

3. Include fișiere neurmărite

git stash push -u -m "include fisiere noi"

4. Listează stash-urile salvate

git stash list

Output:

stash@{0}: On main: wip: refactorizare auth
stash@{1}: On feature: wip: navbar

5. Restaurează modificări (apply vs pop)

# Aplică fără a șterge din listă
git stash apply stash@{1}

# Aplică și șterge din listă
git stash pop

6. Șterge un stash

git stash drop stash@{0}

7. Curăță toate stash-urile

git stash clear

Prevention Tips

  • Folosește git stash push -m "mesaj" pentru a identifica ușor stash-urile
  • Preferă git stash apply în loc de pop pentru a testa înainte de a șterge
  • Verifică git stash list înainte de a aplica un stash
  • Folosește git stash show pentru a previzualiza schimbările
  • Stash-urile nu sunt incluse în push — sunt doar locale

Common Mistakes

  1. Uitarea stash-urilor vechi — se acumulează și consumă memorie inutil
  2. Confuzia între apply și poppop șterge stash-ul, apply îl păstrează
  3. Stash pe branch greșit — aplicarea pe alt branch poate cauza conflicte
  4. Pierderea fișierelor neurmărite — fără -u, fișierele noi nu sunt stash-uite

Aceste greșeli apar frecvent în lucrul cu Git. Contribuitorii DodaTech le-au identificat prin analiza proiectelor open-source și a sistemelor de producție.

Practice Exercise

Exercițiu: Modifică două fișiere, salvează-le cu git stash push -m "test", comută pe alt branch, apoi restaurează cu apply și verifică lista de stash-uri.

FAQ

### Ce diferență este între git stash apply și git stash pop?

git stash apply restaurează modificările dar păstrează stash-ul în listă. git stash pop restaurează și șterge stash-ul. Folosește apply prima dată pentru a verifica că totul funcționează.

Cum salvez fișiere neurmărite cu git stash?

Folosește git stash push -u (sau --include-untracked) pentru a include și fișierele noi care nu sunt încă urmărite de Git.

Pot recupera un stash șters din greșeală?

Da, dacă ai hash-ul commit-ului. Git creează un commit intern pentru fiecare stash. Folosește git fsck --unreachable | grep commit pentru a găsi commit-uri orfane.

Construit de dezvoltatorii Doda Browser, DodaZIP și Durga Antivirus Pro. Uneltele DodaTech se integrează perfect cu Git pentru productivitate și securitate sporite.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro