.. _guiagitlab: Guia d'ús de GitLab =================== Aquesta pàgina descriu com utilitzar Git_ i Gitlab_, amb exemples realitzats en `gitlab-gie`_. Podeu complementar els vostres coneixements accedint a https://docs.gitlab.com/ee/gitlab-basics/. Instal·lació i configuració de git en el vostre ordinador --------------------------------------------------------- - En linux: .. code:: sh sudo apt-get install git .. code:: sh git config --global user.name "John Smith" git config --global user.email john.Smith77@example.com - En Windows o Mac: seguiu la guia https://docs.gitlab.com/ee/gitlab-basics/start-using-git.html Esquema de com treballar amb git -------------------------------- Com que Git_ és un sistema de control de versions distribuït, sempre treballareu localment al vostre ordinador, tenint tot el projecte sencer. Cal pensar que existeixen diferents còpies del projecte: una en cada ordinador i una altra en el servidor (per exemple, a gitlab-gie_). La compartició de dades es realitza sempre a través de la còpia del servidor web Gitlab_: .. image:: flux.png :align: center Clonar un projecte ------------------ El primer cop que vulgueu treballar amb un projecte de gitlab cal que en feu una còpia idèntica (clon) en el vostre ordinador. Per exemple, #. Visiteu la pàgina del projecte. En el nostre exemple, `El-joc-del-profe `_. #. Cliqueu al botó :guilabel:`+ Clone` i copieu la URL en format HTTPS ( https://gitlab-gie.cs.upc.edu/jocs/el-joc-del-profe.git, en aquest exemple). #. En el vostre ordinador, obriu una terminal d'ordres, aneu al directori de treball i executeu l'ordre :command:`git clone`. Seguint l'exemple: .. code:: sh cd directori_de_treball git clone https://gitlab-gie.cs.upc.edu/jocs/el-joc-del-profe.git #. A partir d'aquest moment disposareu d'una còpia idèntica del dipòsit. En l'exemple anterior la còpia estarà al subdirectori :file:`el-joc-del-profe`. Flux de treball més habitual ---------------------------- - Doneu-vos d'alta al servidor web de gitlab-gie_. - Creeu un projecte nou al servidor web i doneu els permísos adients als memebres del grup de treball. - Cloneu el projecte en el vostre ordinador. - Detecteu un error, ampliació o qualsevol altre canvi que cal fer al projecte --> cal crear una *issue* al servidor web. Especifiqueu **bé** el problema, és una informació molt important! .. image:: newissue.png :align: center - Quan un dels desenvolupadors del projecte vol resoldre la *issue*, crea un *Merge request*. Es crearà automàticament una branca del projecte, en estat *draft*: .. image:: mergerequest.png :align: center - En el vostre ordinador, actualitzeu la còpia local, busqueu la branca de la *issue* i prepareu-vos per a treballar-hi: .. code:: sh git fetch git status git checkout *id_de_la_branca* - Treballeu localment, modificant fitxers, afegint-ne o esborrant-ne. Podeu fer versions locals (*checkpoints*): .. code:: sh git add . git rm *fitxer* git commit -m "explicació del què ha canviat" - Un cop heu resolt la *issue*, creeu una versió local i tot seguit actualitzeu la branca servidor web (pugeu-hi la informació): .. code:: sh git status git push Després, al servidor web resoleu la *issue*. Cal esborrar l'estat *draft* i realitzar la fusió amb *merge*. La branca quedarà fusionada amb la branca principal (*master*): .. image:: merge.png :align: center Podeu observar l'arbre de versions, amb les branques al servidor web. - En qualsevol moment, un desenvolupador pot actualitzar la seva còpia local amb la del servidor: .. code:: sh git pull .. _Git: https://ca.wikipedia.org/wiki/Git .. _GitLab: https://ca.wikipedia.org/wiki/GitLab .. _gitlab-gie: https://gitlab-gie.cs.upc.edu/