<div class="page">
<div class="cover text-center">
<img class="mx-auto" src=/itb/images/logo_mislata.png alt="logo">
# Reset i Amend
<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}
## Objectius
L'objectiu d'aquest exercici és entendre el funcionament de l'eina `git reset`
i posar-la en pràctica.
## Estat inicial
Realitza el exercici a partir del següent repositori:
::: tip
Podeu copiar i pegar les ordres següents a __Git Bash__.
:::
```bash
mkdir ~/git_reset_exercise
cd ~/git_reset_exercise
git init
touch README.md
git add README.md
git commit -m "Initial commit"
git branch -m main
echo "# Exercici Git Reset" >> README.md
git add README.md
git commit -m "README: Added titol"
git branch primer
git branch segon
git branch tercer
git checkout primer
echo "- Primer canvi" >> README.md
git commit -a -m "Primer canvi"
git checkout segon
echo "- Segon canvi" >> README.md
git commit -a -m "Segon canvi"
git checkout tercer
echo "- Tercer canvi" >> README.md
git commit -a -m "Tercer canvi"
git checkout segon
git merge primer
# Elimine les línies que indiquen els conflictes en Git
sed -i '/^<<<<<<<.*$/d; /^=======/d; /^>>>>>>>.*$/d' README.md
git commit -a -m "Merge primer i segon"
git checkout tercer
git merge segon
sed -i '/^<<<<<<<.*$/d; /^=======/d; /^>>>>>>>.*$/d' README.md
git commit -a -m "Merge segon i tercer"
git checkout main
git merge tercer
```
L'estat inicial del repositori és:
```shell
jpuigcerver@fp:~/git_reset_exercise (main) $ git lga
* bcbdfa6 - (1 second ago) Merge segon i tercer - Joan Puigcerver (HEAD -> main, tercer)
|\
| * c26223a - (1 second ago) Merge primer i segon - Joan Puigcerver (segon)
| |\
| | * cbf7c67 - (1 second ago) Primer canvi - Joan Puigcerver (primer)
| * | 58ce8da - (1 second ago) Segon canvi - Joan Puigcerver
| |/
* / 9695ea7 - (1 second ago) Tercer canvi - Joan Puigcerver
|/
* fc82863 - (1 second ago) README: Added titol - Joan Puigcerver
* cfaf3d4 - (1 second ago) Initial commit - Joan Puigcerver
```
## Reset
Realitza les operacions `reset` necessàries per modificar la història del repositori
a l'estat anterior a realitzar els `merge`.
```shell
jpuigcerver@fp:~/git_reset_exercise (main) $ git lga
* cbf7c67 - (3 minutes ago) Primer canvi - Joan Puigcerver (primer)
| * 58ce8da - (3 minutes ago) Segon canvi - Joan Puigcerver (segon)
|/
| * 9695ea7 - (3 minutes ago) Tercer canvi - Joan Puigcerver (tercer)
|/
* fc82863 - (3 minutes ago) README: Added titol - Joan Puigcerver (HEAD -> main)
* cfaf3d4 - (3 minutes ago) Initial commit - Joan Puigcerver
```
## Amend
A partir de l'estat del repositori de l'exercici anterior:
```shell
jpuigcerver@fp:~/git_reset_exercise (main) $ git lga
* cbf7c67 - (3 minutes ago) Primer canvi - Joan Puigcerver (primer)
| * 58ce8da - (3 minutes ago) Segon canvi - Joan Puigcerver (segon)
|/
| * 9695ea7 - (3 minutes ago) Tercer canvi - Joan Puigcerver (tercer)
|/
* fc82863 - (3 minutes ago) README: Added titol - Joan Puigcerver (HEAD -> main)
* cfaf3d4 - (3 minutes ago) Initial commit - Joan Puigcerver
```
1. Modifica el _commit_ __Primer canvi__ perquè els canvis següents:
```diff
diff --git a/README.md b/README.md
index c1c4b86..f22a3c6 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,2 @@
# Exercici Git Reset
+- pRIMER cANVI
```
1. Modifica el _commit_ __Primer canvi__ per canviar-li el missatge del _commit_ a __pRIMER cANVI__.
1. Modifica el _commit_ __pRIMER cANVI__ per afegir un nou fitxer buit (amb qualsevol nom).
1. Modifica el _commit_ __pRIMER cANVI__ per eliminar el fitxer afegit anteriorment.
Aquest lloc web utilitza galetes per millorar l'experiència de l'usuari