<div class="page">
<div class="cover text-center">
<img class="mx-auto" src=/itb/images/logo_mislata.png alt="logo">
# Stash
<div class="text-end fit-content ms-auto my-3 mt-auto pt-3">
<p><strong>Autor:</strong> Joan Puigcerver Ibáñez</p>
<p><strong>Correu electrònic:</strong> j.puigcerveribanez@edu.gva.es</p>
<p><strong>Curs:</strong> 2024/2025</p>
</div>
<div>
<p class="fw-bold mb-0">Llicència: BY-NC-SA</p>
<p class="d-none d-md-block">(Reconeixement - No Comercial - Compartir Igual)</p>
<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.ca" target="_blank">
<img class="mx-auto" src="/itb/images/license.png" alt="Licence"/>
</a>
</div><!--license-->
</div><!--cover-->
</div><!--page-->
{:toc}
## Introducció
El `stash` en Git es un magatzem que permet guardar temporalment els canvis
dels quals encara no es vol realizar un _commit_.
Aquesta funció és útil si heu realitzat canvis en el directori de treball
i necessiteu canviar a alguna altra branca per treballar en una altra cosa
o incorporar canvis que entren en conflicte amb el que esteu treballant.
Posteriorment es poden tornar a aplicar els canvis guardats en el `stash`
o descartar-los.
### Mostrar els stash
Git permet guardar multiples `stash`, identificats per un índex numéric `[0..N]`,
on l'índex `0` és el `stash` més recent.
Per mostrar els `stash` que heu creat cal executar la comanda:
```bash
git stash list
```
### Guardar els canvis
Per guardar els canvis del directori de treball al `stash` cal executar la següent comanda:
```bash
git stash
```
Aquesta comanda inclourà els canvis a la primera posició: `stash@{0}` i incrementarà l'índex
dels `stash` existents en 1.
### Mostrar els canvis
Si volem consultar els canvis guardats al `stash`, ho podem fer mitjançant
l'opció `show`. Aquesta acció mostrarà els fitxers que s'han canviat.
Addicionalment, si volem mostrar els canvis podem indicar l'opció `-p`.
També es pot indicar l'índex del `stash` que es vol consultar. Si no s'indica,
mostrarà per defecte el `stash@{0}`.
```bash
git stash show [-p] [index]
```
### Recuperar els canvis
Per recuperar els canvis del `stash` cal executar
l'acció `apply`. Aquesta acció tornarà a aplicar
els canvis guardats en el __directori de treball__.
També es pot indicar l'índex del `stash` que es vol aplicar. Si no s'indica,
s'aplicarà per defecte el `stash@{0}`.
```bash
git stash apply [index]
```
Els canvis es poden aplicar i i esborrar del stash amb la comanda `git stash pop`:
```bash
git stash pop [index]
```
### Descartar els canvis
Els canvis desats al `stash` es poden descartar mitjançant la comanda:
```bash
git stash drop [index]
```
També es pot indicar l'índex del `stash` que es vol descartar. Si no s'indica,
es descartarà per defecte el `stash@{0}`.
Aquest lloc web utilitza galetes per millorar l'experiència de l'usuari