En aquest tema, aprendrem com utilitzar la funcionalitat d'emmagatzematge de canvis (stashing) de Git. Aquesta característica és molt útil quan necessitem canviar de branca o fer altres operacions sense perdre els canvis no confirmats (uncommitted changes) en els quals estem treballant.
Què és l'Emmagatzematge de Canvis?
L'emmagatzematge de canvis (stashing) permet guardar temporalment els canvis no confirmats en una pila (stack) d'emmagatzematges (stashes) per poder treballar en una altra cosa i després recuperar aquests canvis més tard.
Casos d'Ús Comuns
- Canviar de branca sense perdre els canvis actuals.
- Treballar en una correcció urgent mentre es tenen canvis pendents.
- Guardar l'estat actual del treball per continuar més tard.
Com Emmagatzemar Canvis
Comandament Bàsic
Per emmagatzemar els canvis, utilitzem el comandament git stash
:
Aquest comandament guarda els canvis no confirmats i restaura l'estat del directori de treball a l'últim commit.
Emmagatzemar amb un Missatge
Podem afegir un missatge descriptiu per identificar fàcilment l'emmagatzematge:
Emmagatzemar Fitxers No Seguits
Per defecte, git stash
només emmagatzema els fitxers seguits (tracked files). Si volem incloure fitxers no seguits (untracked files), utilitzem l'opció -u
:
Recuperar Canvis Emmagatzemats
Aplicar l'Últim Emmagatzematge
Per aplicar l'últim emmagatzematge i restaurar els canvis, utilitzem:
Aplicar un Emmagatzematge Específic
Per veure la llista d'emmagatzematges disponibles, utilitzem:
Això mostrarà una llista d'emmagatzematges amb identificadors com stash@{0}
, stash@{1}
, etc. Per aplicar un emmagatzematge específic, utilitzem:
Aplicar i Eliminar un Emmagatzematge
Per aplicar un emmagatzematge i eliminar-lo de la pila, utilitzem:
Eliminar Emmagatzematges
Eliminar un Emmagatzematge Específic
Per eliminar un emmagatzematge específic, utilitzem:
Eliminar Tots els Emmagatzematges
Per eliminar tots els emmagatzematges, utilitzem:
Exercicis Pràctics
Exercici 1: Emmagatzemar i Recuperar Canvis
- Crea un nou fitxer i afegeix-hi contingut.
- Emmagatzema els canvis utilitzant
git stash
. - Canvia a una altra branca.
- Torna a la branca original i recupera els canvis utilitzant
git stash apply
.
Exercici 2: Emmagatzemar amb Fitxers No Seguits
- Crea un nou fitxer no seguit (untracked file).
- Emmagatzema els canvis incloent els fitxers no seguits utilitzant
git stash -u
. - Recupera els canvis i verifica que el fitxer no seguit també ha estat restaurat.
Errors Comuns i Consells
- Oblidar-se d'afegir un missatge descriptiu: Utilitzar missatges descriptius ajuda a identificar fàcilment els emmagatzematges.
- No incloure fitxers no seguits quan és necessari: Utilitza l'opció
-u
per assegurar-te que tots els canvis, inclosos els fitxers no seguits, són emmagatzemats. - Confondre
apply
ambpop
: Recorda queapply
només aplica els canvis, mentre quepop
aplica i elimina l'emmagatzematge.
Resum
L'emmagatzematge de canvis és una eina poderosa en Git que permet guardar temporalment els canvis no confirmats per poder treballar en altres tasques sense perdre el progrés. Hem après com emmagatzemar, recuperar i eliminar emmagatzematges, així com alguns consells per evitar errors comuns. Ara estem preparats per gestionar millor els nostres canvis no confirmats i mantenir un flux de treball més eficient.
Dominar Git: De Principiant a Avançat
Mòdul 1: Introducció a Git
Mòdul 2: Operacions Bàsiques de Git
- Creant un Repositori
- Clonant un Repositori
- Flux de Treball Bàsic de Git
- Preparant i Cometent Canvis
- Veient l'Historial de Commits
Mòdul 3: Branques i Fusió
- Entenent les Branques
- Creant i Canviant de Branques
- Fusionant Branques
- Resolent Conflictes de Fusió
- Gestió de Branques
Mòdul 4: Treballant amb Repositoris Remots
- Entenent els Repositoris Remots
- Afegint un Repositori Remot
- Recuperant i Traient Canvis
- Empenyent Canvis
- Seguint Branques
Mòdul 5: Operacions Avançades de Git
Mòdul 6: Eines i Tècniques de Git
Mòdul 7: Estratègies de Col·laboració i Flux de Treball
- Forking i Pull Requests
- Revisions de Codi amb Git
- Flux de Treball Git Flow
- GitHub Flow
- Integració Contínua amb Git
Mòdul 8: Millors Pràctiques i Consells de Git
- Escrivint Bons Missatges de Commit
- Mantenint un Historial Netejat
- Ignorant Fitxers amb .gitignore
- Millors Pràctiques de Seguretat
- Consells de Rendiment
Mòdul 9: Resolució de Problemes i Depuració
- Problemes Comuns de Git
- Desfent Canvis
- Recuperant Commits Perduts
- Tractant amb Repositoris Corruptes
- Tècniques Avançades de Depuració