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
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
.
Creació repositori remot
Crea un compte a GitHub si 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
Perill
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.
Consell
Comprova a GitHub que el repositori remot
conté el fitxer llibres.txt
.
Clonació del repositori remot
Perill
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
Important
A partir d'aquest punt treballarem amb els dos repositoris locals: bloc3_exercici
i bloc3_exercici_clone
.
Et recomane obrir cada directori a 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.
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.
Question
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.
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.
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
.
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
📌 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.