====== GIT ====== GIT és l'eina de control de versions per excel·lència actualment. En la documentació oficial hi ha tota la informació necessària i molt més per entendre'l i saber-lo fer anar https://git-scm.com/book/en/v2 A continuació hi ha un recull dels principals **petits** problemes que acostumen a aparèixer els primers cops que s'utilitza. ===== Línia d'ordres i github ===== Des de ja fa uns anys, la gent de github (el principal repositori de projectes juntament amb gitlab) no permeten les connexions autenticades només amb el nom d'usuari / password. Han dissenyat un nou sistema basat en nom d'usuari / token. Aquests tokens s'han de crear des del panell web de github: Perfil > Settings > Developer Settings > Personal access tokens > Tokens (classic) Aquesta ruta porta a https://github.com/settings/tokens des d'on s'ha de **generar** un nou token. S'ha d'indicar un nom, una durada i donar-li permisos per a **repo**, un cop generat el sistema el mostrarà a pantalla **UN SOL COP** i serà el password que s'haurà de fer servir a partir d'aquell moment per fer servir git amb github des de la línia d'ordres. {{ :eines:capturatokens.png?nolink&400 |}} Les altres opcions de tokens, //fine grained tokens//, permeten definir l'ús del token de forma més granular i precisa. Tècnicament, són més segures i s'haurien de fer servir sempre, però al principi són una mica més enutjoses de fer, però és com s'hauria de treballar. ===== Primer ús ===== Tal com s'indica en [[https://git-scm.com/book/es/v2/Inicio---Sobre-el-Control-de-Versiones-Configurando-Git-por-primera-vez|totes les guies]], el primer cop que s'utilitza git en un terminal s'han de definir com a mínim **dues** configuracions per indicar al git la **teva identitat**. Des del terminal s'han d'executar les següents ordres: git config --global user.name "ElTeuNom_i_SiUsPlauQueSiguiSempreElMateix" git config --global user.email elTeu@correu ===== Esborrant carpetes del repositori ===== A vegades quan es comença un projecte amb git ningú se'n recorda de crear el fitxer ''.gitignore'' i posar-hi les rutes de tots aquells elements que **no han d'estar al repositori**. Típicament, les carpetes ./bin, ./node_modules, alguns dels volums del docker (el típic /var/lib/mysql) Això fa que de sobte al repositori hi hagi desenes o centenars de fitxers que **han de ser diferents** en cada ordinador. La solució és afegir aquestes rutes al ''.gitignore'', treure aquests fitxers del seguiment de git i finalment pujar els canvis per què tothom els tingui. 1. Crear o editar el fitxer ''.gitignore'' a l'arrel del projecte i afegir-hi la ruta (relativa) de la carpeta. carpeta/ 2. Eliminar la carpeta del **repostori**. No l'esborrarà del sistema de fitxers, només del seguiment per part de git. git rm -r --cached carpeta/ 3. Fer un git commit -m "Esborrada carpeta i afegida al .gitignore" git push origin main