Salta el contingut
 

Exercici: Branques

Joan Puigcerver Ibáñez

j.puigcerveribanez@edu.gva.es

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:

Documenteu els passos realitzats en un document de text.

  • Cal incloure captures de pantalla amb els passos realitzats i els resultats obtinguts.

    És recomanable mostrar l'estat del repositori amb git status o git lga

    Retalla les captures de pantalla per mostrar sols la informació rellevant.

  • S'ha de lliurar en format PDF.

Una vegada acabat l'exercici, graveu un vídeo de la pantalla mostrant i explicant els passos realitzats i el resultat final.

No cal que es graveu a vosaltres mateixos, només la pantalla.

  • La durada màxima del vídeo ha de ser 10 minuts.

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.

  1. 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.

  1. Crea un directori anomenat bloc2_exercici en la teua carpeta de treball.
  2. Inicialitza un repositori de Git en aquest directori.
  3. Crea un fitxer anomenat llibres.txt i afegeix tres llibres que t'agraden.
  4. Fes un primer commit. Tria un missatge significatiu.
  5. Reanomena la branca principal a main.

Fusió directa

  1. Crea una branca anomenada musica i situa't en aquesta branca.
  2. Crea un fitxer anomenat musica.txt i afegeix tres cançons que t'agraden.
  3. Fes un commit en aquesta branca.
  4. Fusiona la branca musica amb la branca main.

Fusió de branques divergents

  1. Des de la branca main, crea les branques mes-llibres i mes-musica.
  2. Des de la branca mes-llibres:
    1. Afegeix un llibre a llibres.txt.
    2. Fes un commit.
  3. Des de la branca mes-musica:

    1. Afegeix una cançó a musica.txt.
    2. Fes un commit.
  4. Fusiona la branca mes-llibres amb la branca main.

  5. Fusiona la branca mes-musica amb la branca main.

Resolució de conflictes en la fusió

  1. Des de la branca main, crea les branques llibres-ciencia-ficcio i llibres-fantasia.
  2. Des de la branca llibres-ciencia-ficcio:
    1. Afegeix un llibre de ciència-ficció a llibres.txt.
    2. Fes un commit.
  3. Des de la branca llibres-fantasia:
    1. Afegeix un llibre de fantasia a llibres.txt.
    2. Fes un commit.
  4. Fusiona la branca llibres-ciencia-ficcio amb la branca main.
  5. 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

  1. Des de la branca main, crea una branca anomenada series.
  2. Des de la branca main, crea una branca anomenada pelicules.
  3. Des de la branca series:
    1. Afegeix una sèrie a series.txt.
    2. Fes un commit.
  4. Elimina la branca pelicules.
  5. Elimina la branca series.

Pregunta

Què ha passat amb el commit de la branca series?

Canvi de base d'una branca

  1. Des de la branca main, crea una branca anomenada series.
  2. Des de la branca main, crea una branca anomenada pelicules.
  3. Des de la branca series:
    1. Afegeix una sèrie a series.txt.
    2. Fes un commit.
  4. Des de la branca pelicules:
    1. Afegeix una pel·lícula a pelicules.txt.
    2. Fes un commit.
  5. Fusiona la branca pelicules amb la branca main.
  6. Canvia la base de la branca series a la branca main.
  7. 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

  1. Des de la branca main, crea una branca anomenada series-accio i series-drama.
  2. Des de la branca series-accio:
    1. Afegeix una sèrie d'acció a series.txt.
    2. Fes un commit.
  3. Des de la branca series-drama:
    1. Afegeix una sèrie de drama a series.txt.
    2. Fes un commit.
  4. Fusiona la branca series-accio amb la branca main.
  5. 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.

  6. 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

  1. 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
    
  2. 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.