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
# MembersFes 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?