Exercici: Remots
Llicència: CC BY-NC-SA 4.0
(Reconeixement - NoComercial - CompartirIgual) 🅭
Objectius
Els objectius d'aquest exercici són:
Conéixer com crear un repositori remot a GitHub .
Conéixer com configurar un repositori remot.
Conéixer com associar una branca local a una branca remota.
Conéixer com publicar els canvis d'una branca al repositori remot.
Conéixer com sincronitzar l'estat dels repositoris local i remot.
Conéixer com incorporar canvis d'una branca remota a una branca local.
Conéixer com clonar un repositori remot.
Conéixer com eliminar una branca remota.
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
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.
Creació repositori remot
Crea un compte a GitHub si encara no en tens un.
Crea un repositori remot anomenat bloc3_exercici completament buit :
No afegisques cap fitxer (README.md, LICENSE, .gitignore, etc.).
Creació repositori local
Crea el nou repositori en una carpeta independent per evitar problemes amb els exemples i exercicis anteriors.
Crea un directori anomenat bloc3_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 .
Reanomena la branca principal a main.
Enllaç amb repositori remot
Configura el repositori local per afegir el repositori remot
creat anteriorment com a origin.
Publica la branca main al repositori remot, associant-la a la branca origin/main
del repositori remot.
Comprova a GitHub que el repositori remot conté el fitxer llibres.txt.
Clonació del repositori remot
Clona el repositori en una carpeta independent per evitar problemes amb els exemples i exercicis anteriors.
Clona el repositori remot a un directori anomenat
bloc3_exercici_clone en la teua carpeta de treball.
Comprova que el directori bloc3_exercici_clone conté el fitxer
llibres.txt.
Configura el repositori clonat per realitzar commits amb el següent usuari:
git config user.name "Brian"
git config user.email "brian.cohen@edu.gva.es"
Publicació de canvis
A partir d'aquest punt treballarem amb els dos repositoris locals: bloc3_exercici i bloc3_exercici_clone.
Et recomane obrir cada directori a una finestra de Visual Studio Code
diferent o utilitzar dues terminals per a treballar amb els dos repositoris alhora.
Des del repositori bloc3_exercici_clone:
Afegeix la pel·lícula La vida de Brian al fitxer pelicules.txt.
Realitza un commit .
Publica la branca main al repositori remot.
Documenta l'estat del repositori amb git lga al final d'aquest apartat.
Incorporació de canvis amb fusió directa
Des del repositori bloc3_exercici:
Sincronitza el repositori local amb el repositori remot amb git fetch.
Observa el log de canvis.
Incorpora els canvis de la branca origin/main a la branca main local.
Incorporació de canvis amb fusió de branques divergents
Des del repositori bloc3_exercici:
Afegeix una pel·lícula a pelicules.txt.
Realitza un commit .
Publica la branca main al repositori remot.
Des del repositori bloc3_exercici_clone:
Afegeix la pel·lícula Monty Python and the Holy Grail al fitxer pelicules.txt.
Realitza un commit .
Tracta de publicar la branca main al repositori remot.
Per què no pots publicar la branca main al repositori remot?
Incorpora els canvis de la branca origin/main a la branca main local.
Resol els conflictes que puguen aparéixer.
Publica la branca main al repositori remot.
Documenta l'estat del repositori amb git lga al final d'aquest apartat.
Incorporació de canvis amb canvi de base
Des del repositori bloc3_exercici:
Incorpora els canvis de la branca origin/main a la branca main local.
Afegeix una altra pel·lícula a pelicules.txt.
Realitza un commit .
Publica la branca main al repositori remot.
Des del repositori bloc3_exercici_clone:
Sincronitza el repositori local amb el repositori remot (git fetch).
Afegeix la pel·lícula El sentit de la vida al fitxer pelicules.txt.
Realitza un commit .
Incorpora els canvis de la branca origin/main a la branca main local
amb un canvi de base .
Resol els conflictes que puguen aparéixer.
Publica la branca main al repositori remot.
Documenta l'estat del repositori amb git lga al final d'aquest apartat.
Branques i remots
Des del repositori bloc3_exercici:
Incorpora els canvis de la branca origin/main a la branca main local.
Crea una branca anomenada musica.
Afegeix una cançó a musica.txt.
Realitza un commit .
Publica la branca musica al repositori remot.
Comprova que la branca musica està publicada al repositori remot.
Fusiona la branca musica amb la branca main.
Publica la branca main al repositori remot.
Elimina la branca local musica.
Elimina la branca remota musica.
Documenta l'estat del repositori amb git lga al final d'aquest apartat.
Estat final
joapuiib@FP : ~/bloc3_exercici (main) $ git lga
* 3a2009a - (53 seconds ago) Afegida música - Joan Puigcerver (HEAD -> main, origin/main) # Branca musica fusionada i eliminada
* 5959e77 - (2 minutes ago) Pel·lícula: El sentit de la vida - Brian # Incorporació de canvis amb canvi de base
* 93cc993 - (2 minutes ago) Afegida altra pel·lícula - Joan Puigcerver
* aabc7af - (3 minutes ago) Merge branch 'origin/main' into main - Brian # Incorporació de canvis amb branques divergents
|\
| * 378c837 - (4 minutes ago) Afegida pel·lícula - Joan Puigcerver
* | 6c947d7 - (3 minutes ago) Pel·lícula: Holy Grail - Brian
|/
* a014035 - (6 minutes ago) Pel·lícula: La vida de Brian - Brian # Incorporació de canvis
* f4fdd0f - (8 minutes ago) Afegits llibres - Joan Puigcerver
Errors més comuns
No realitzar la incorporació dels canvis remots amb un canvi de base .
Realitzar un git pull directament crearà un commit de fusió ,
i la història del repositori no serà lineal.
Vegeu: Remots - Incorporació de canvis
Concloure el rebase amb un commit .
Després de resoldre els conflictes en un rebase, cal concloure el procés
amb git add i git rebase --continue.
Vegeu: Branques - Resolució de conflictes en canvi de base
Error: Alguns de vosaltres heu fet un git add i un git commit, cosa que ha creat un nou commit sense cap branca associada.
jpuigcerver@FP : ~/bloc3_exercici (main) $ git lga
* 1abc468 - (2 minutes ago) Pel·lícula: El sentit de la vida - Brian (HEAD) # Commit sense branca associada
* 93cc993 - (2 minutes ago) Afegida altra pel·lícula - Joan Puigcerver (origin/main) # Canvis en el remot 'origin/main'
| * 5959e77 - (2 minutes ago) Pel·lícula: El sentit de la vida - Brian (main) # Canvis locals 'main'
|/
* aabc7af - (3 minutes ago) Merge branch 'origin/main' into main - Brian
Ampliació
Configura el comportament de git pull perquè solament permeta fusionar els canvis mitjançant una Fusió directa .
Comprova el seu funcionament intentant realitzar un git pull amb una situació que requerisca una fusió de branques divergents.
📌 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.