Exercici: Branques
Llicència: CC BY-NC-SA 4.0
(Reconeixement - NoComercial - CompartirIgual) 🅭
Objectius
Els objectius d'aquest exercici són:
- Conéixer com crear i eliminar branques.
- Conéixer com realitzar canvis en una branca.
- Conéixer com canviar de branca.
- Conéixer com fusionar branques.
- Conéixer com canviar la base d'una branca.
- Conéixer com resoldre conflictes en la fusió de branques.
- Conéixer com resoldre conflictes en el canvi de base d'una branca.
Lliurament
Per a lliurar aquest exercici podeu triar entre una de les següents opcions:
En qualsevol cas, també cal lliurar la carpeta amb el repositori de Git
que has creat durant l'exercici de forma comprimida en format .zip
o .tgz
.
Exercici
Inicialització
Important
Comprova l'estat del repositori amb git status
i git lga
(1) després de cada ordre
per entendre els diferents estats dels fitxers.
- Revisa Històric de canvis (git log) per veure
la configuració de l'àlies
git lga
.
Perill
Crea el nou repositori en una carpeta independent per evitar
problemes amb els exemples i exercicis anteriors.
- Crea un directori anomenat
bloc2_exercici
en la teua carpeta de treball.
- Inicialitza un repositori de Git en aquest directori.
- Crea un fitxer anomenat
llibres.txt
i afegeix tres llibres que t'agraden.
- Fes un primer commit. Tria un missatge significatiu.
- Reanomena la branca principal a
main
.
Fusió directa
- Crea una branca anomenada
musica
i situa't en aquesta branca.
- Crea un fitxer anomenat
musica.txt
i afegeix tres cançons que t'agraden.
- Fes un commit en aquesta branca.
- Fusiona la branca
musica
amb la branca main
.
Fusió de branques divergents
- Des de la branca
main
, crea les branques mes-llibres
i mes-musica
.
- Des de la branca
mes-llibres
:
- Afegeix un llibre a
llibres.txt
.
- Fes un commit.
-
Des de la branca mes-musica
:
- Afegeix una cançó a
musica.txt
.
- Fes un commit.
-
Fusiona la branca mes-llibres
amb la branca main
.
- Fusiona la branca
mes-musica
amb la branca main
.
Resolució de conflictes en la fusió
- Des de la branca
main
, crea les branques llibres-ciencia-ficcio
i llibres-fantasia
.
- Des de la branca
llibres-ciencia-ficcio
:
- Afegeix un llibre de ciència-ficció a
llibres.txt
.
- Fes un commit.
- Des de la branca
llibres-fantasia
:
- Afegeix un llibre de fantasia a
llibres.txt
.
- Fes un commit.
- Fusiona la branca
llibres-ciencia-ficcio
amb la branca main
.
-
Fusiona la branca llibres-fantasia
amb la branca main
.
Important
Documenta correctament els conflictes que s'han generat i com els has resolt.
Eliminació d'una branca
- Des de la branca
main
, crea una branca anomenada series
.
- Des de la branca
main
, crea una branca anomenada pelicules
.
- Des de la branca
series
:
- Afegeix una sèrie a
series.txt
.
- Fes un commit.
- Elimina la branca
pelicules
.
- Elimina la branca
series
.
Pregunta
Què ha passat amb el commit de la branca series
?
Canvi de base d'una branca
- Des de la branca
main
, crea una branca anomenada series
.
- Des de la branca
main
, crea una branca anomenada pelicules
.
- Des de la branca
series
:
- Afegeix una sèrie a
series.txt
.
- Fes un commit.
- Des de la branca
pelicules
:
- Afegeix una pel·lícula a
pelicules.txt
.
- Fes un commit.
- Fusiona la branca
pelicules
amb la branca main
.
- Canvia la base de la branca
series
a la branca main
.
- Fusiona la branca
series
amb la branca main
.
Informació
Aquest procés és el que cal seguir per fusionar branques divergents
d'una manera que la història siga lineal.
Resolució de conflictes en el canvi de base
- Des de la branca
main
, crea una branca anomenada series-accio
i series-drama
.
- Des de la branca
series-accio
:
- Afegeix una sèrie d'acció a
series.txt
.
- Fes un commit.
- Des de la branca
series-drama
:
- Afegeix una sèrie de drama a
series.txt
.
- Fes un commit.
- Fusiona la branca
series-accio
amb la branca main
.
-
Canvia la base de la branca series-drama
a la branca main
.
Important
Documenta correctament els conflictes que s'han generat i com els has resolt.
-
Fusiona la branca series-drama
amb la branca main
.
Estat final
Important
Trieu un missatge significatiu i descriptiu per a cada commit.
jpuigcerver@FP:~/bloc2_exercici (main) $ git lga
* bdbd567 - (7 hours ago) Sèries drama - Joan Puigcerver (HEAD -> main, series-drama) # Canvi de base amb conflictes
* f8eda6f - (7 hours ago) Sèries acció - Joan Puigcerver (series-accio)
* 1f3b706 - (7 hours ago) Sèries - Joan Puigcerver (series) # Canvi de base
* 560f17e - (7 hours ago) Pel·lícules - Joan Puigcerver (pelicules)
* 64746f4 - (8 hours ago) Fusió de branques divergents amb conflictes - Joan Puigcerver # Resolució de conflictes
|\
| * 94da3f8 - (8 hours ago) Llibres fantasia - Joan Puigcerver (llibres-fantasia)
* | 766f3af - (8 hours ago) Llibres ciència ficció - Joan Puigcerver (llibres-ciencia-ficcio)
|/
* c9ffd43 - (9 hours ago) Fusió de branques divergents - Joan Puigcerver # Fusió de branques divergents
|\
| * 7193d82 - (9 hours ago) Més música - Joan Puigcerver (mes-musica)
* | 01e1b0b - (9 hours ago) Més llibres - Joan Puigcerver (mes-llibres)
|/
* 7d7907b - (9 hours ago) Música - Joan Puigcerver (musica) # Fusió directa
* 54d8e87 - (9 hours ago) Llibres - Joan Puigcerver
Errors més comuns
-
Realitzar la fusió (merge
) en sentit contrari.
Si volem incorporar els canvis de la branca A
a la branca main
,
hem de situar-nos en la branca main
i fer la fusió amb git merge A
.
jpuigcerver@FP:~/bloc2_exercici (A) $ git commit -m "Canvis a la branca A"
jpuigcerver@FP:~/bloc2_exercici (A) $ git checkout main
jpuigcerver@FP:~/bloc2_exercici (A) $ git lga
* 7d7907b - (9 hours ago) Canvis a la branca A - Joan Puigcerver (A)
* 54d8e87 - (9 hours ago) Commit anterior - Joan Puigcerver (HEAD -> main)
jpuigcerver@FP:~/bloc2_exercici (main) $ git merge A
jpuigcerver@FP:~/bloc2_exercici (A) $ git lga
* 7d7907b - (9 hours ago) Canvis a la branca A - Joan Puigcerver (HEAD -> main, A)
* 54d8e87 - (9 hours ago) Commit anterior - Joan Puigcerver
-
Realitzar el canvi de base (rebase
) en sentit contrari.
Si volem canviar la base de la branca B
a la branca main
i
incorporar els seus canvis, hem de situar-nos en la branca B
i fer el canvi de base
sobre la branca main
.
jpuigcerver@FP:~/bloc2_exercici (B) $ git commit -m "Canvis a la branca B"
jpuigcerver@FP:~/bloc2_exercici (B) $ git lga
* 7d7907b - (9 hours ago) Canvis a la branca A - Joan Puigcerver (main, A)
| * 54d8e87 - (9 hours ago) Canvis a la branca B - Joan Puigcerver (HEAD -> B)
|/
* 54d8e87 - (9 hours ago) Commit anterior - Joan Puigcerver
jpuigcerver@FP:~/bloc2_exercici (B) $ git rebase main
Successfully rebased and updated refs/heads/B.
jpuigcerver@FP:~/bloc2_exercici (main) $ git lga
* 734fc2a - (9 hours ago) Canvis a la branca B - Joan Puigcerver (HEAD -> B)
* 7d7907b - (9 hours ago) Canvis a la branca A - Joan Puigcerver (main, A)
* 54d8e87 - (9 hours ago) Commit anterior - Joan Puigcerver
📌 Aquest document pot quedar desactualitzat després d’imprimir-lo. Pots consultar la versió més recent
a la pàgina web.
🌿 Abans d’imprimir aquest document, considera si és realment necessari. Redueix el consum de paper i ajuda a protegir el nostre entorn.