Llicència
Pots copiar i redistribuir aquest material seguint la llicència Attribution-NonCommercial-ShareAlike 4.0 International CC BY-NC-SA 4.0, indicant-ne autors originals, l'origen (aquesta web), sense fins comercials i mantenint-ne aquesta la llicència
Autors:
Exercici Git - Gitlab
En aquest exercici podem utilitzar GitKraken per realitzar les accions necesaries per gestionar un repositori GIT
Sumari
- Repositori Local
- Creació repositori GitLab
- Repositori Remot
- Baixa't el teu projecte remot
- Repositori col·laboaratiu
Repositori Local
Accions: git init, git add, git commit.
-
Utilitza l'opció Init de GitKraken per crear un repositori m05-git-intro a Baixades del teu ordinador:
- Aquesta opció ja et genera un primer commit, amb dos fitxers: .gitignore i README.md
- Aquesta opció ja et genera un primer commit, amb dos fitxers: .gitignore i README.md
Nota: Si comproves el contingut del directori, veuràs que s'ha ceat un subdirectori ocult: ".git"
-
Crea un fitxer members.txt, com volem que git el tingui en compte per versionar-lo, necessitem afegir-lo al stage:
-
Ara podem donar una primera versió d'aquest fitxer amb un commit
-
Afegeix el seguent text en el document memebers.txt
# Members
Fes un commit que guardi aquesta modificació
Creació repositori GitLab
-
Crea una compte a GitLab, mitjançant l'opció Google amb el teu correu electrònic @itb.cat.
- Estableix una contrasenya
- Crea un projecte blanc
- Project name(*): elteuusuari-dam-m05-git-intro
- (*) elteuusuari correspon al teu correu electrònic, sense punts, fins @itb.cat.
- Exemple: nom.cognom.7e5@itb -> nomcognom7e5
- Visibilitat: Privat
- Desactiva l'opció d'inicialitzar amb README
- Project name(*): elteuusuari-dam-m05-git-intro
Haurieu de tindre ja un projecte buit:
- Copiar la URL del repositori.
- Clone > Clone with HTTPS
Repositori Remot
Passar el repositori local a un repositori remot (blank project)
Accions: add remote, push
Quan tenim un repositori git en local, amb els seus commits, ens pot interessar passar-ho al gitlab per poder seguir treballan des d'altres ordinadors, o compartir amb els companys i professors sense dependre del nostre ordinador
Necessitem un projecte blanc a gitlab i obtenir la seva ruta:
-
Clone > Clone with HTTPS
-
Informa a des de gitKraken, quina és el nostre remote origin
NOTA: es molt probable que ens demani les credencials de gitlabFixa't que a local tenim una branca master i a remote (origin) no hi ha branques.
-
Ara podem traspassar tots els commits a una branca amb el mateix nom al origin
Baixa't el teu projecte remot
Accions: clone
Esborra el directori "m05-git-intro" de l'exercici anterior
Per continuar treballan en el teu projecte m05-git-intro, des d'un altre ordinador, necessites fer un clone.
- Fes el clone des de GitKraken, pots indicar que es desi a l'Escriptoi o Baixades
- Ja tens el repositori al teu ordinador i també la informació de les anteriors versions!
- Fixa't que en fer el clone, automàticament tens definit un remote origin:
Així doncs ja no et calrà definir-lo per fer push o pull.
Repositori col·laboaratiu
Accions: clone, merge, pull, push.
Ja coneixem les accions bàsiques de git, com son el add, commit i push. També sabem com configuar un remot i pujar-hi el codi amb el push
Ara treballarem en un repositori compartit entre 2 usuaris. Busca un company de classe per fer grups de 2.
Decidiu qui és el membre 1 i el membre 2. Utilitzarem el projecte que hem creat anteiorment
Membre 1: A la configuració del teu projecte de Gitlab, busca com afegir el teu company com a "Mantainer"
Tots dos
- Feu un clone apuntant al projecte del membre 1
Membre 1:
- Crea un fitxer equip.txt_ amb "En aquest document desarem el nom dels membres", commiteja aquest canvi (recorda el add) i puja al remot (push).
Membre 2:
- Per actualitzar el teu directori, necessitaràs fer un git pull
Comprova que ja t'apareix el fitxer autors.txt
Tots dos
- A sota la línea que ja existeix, anota el teu nom
- Fes el commit d'aquest canvi
-
Feu un push, pimer el membre 1 i despres el membre 2
En aquest punt, el membre 2 rebrà un error:
! [rejected] master -> master (fetch first) error: s'ha produït un error en pujar algunes referències a «https://gitlab.com/marcvives/nomcognom7e5-dam-m05-uf1» pista: S'han rebutjat les actualitzacions perquè el remot conté canvis pista: que no teniu localment. Això acostuma a ser causat per un altre dipòsit pista: que ha pujat a la mateixa referència. Pot ser que primer vulgueu pista: integrar els canvis remots (per exemple, «git pull ...») abans de pista: pujar de nou. pista: Vegeu la «Nota sobre avanços ràpids» a «git push --help» per a més informació.
El missatge és força descriptiu, fixeu-vos que us proposa una sol·lució.
Membre 2, fes el git pull i fixa't amb el missatge d'atenció:
La fusió automàtica ha fallat; arregleu els conflictes i després comenteu el resultat.
Ens toca revisar el fitxer autors.txt ja que la versió del remot tenia un contingut, i la nostra versió local, no coneixia aquest canvi quan hem fet el nostre últim commit.
Fixeu-vos en el fitxer equip.txt en el pc del membre 2, apareixen unes línies que no heu escrit.
Aquestes linies informen els blocs de "codi" que han generat conflicte.
- Edita equip.txt per deixar el contingut correcte
- Fes un commit d'aquest fitxer
- Puja el commit al remot (push)
Des de gitlab, pots observar una graph similar al seguent:
- Que ha de fer el Membre 1 per actualitzar el seu equip.txt amb els canvis que ha pujat el company?