SlideShare a Scribd company logo
1 of 42
Download to read offline
Eines Preparatius Hola Mapa! Gestió avançada Practica
Introducció a Git
Producció i disseny cartogràfic. Eines web.
Dr. Benito Zaragozí
Segon quadrimestre
2020 – 2021
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Què és Git?
Git és un sistema de control de versions distribuïdes de codi obert i
gratuït dissenyat per gestionar des de petits fins a grans projectes
amb rapidesa i eficiència. Git és relativament fàcil d’aprendre i té
una petita petjada amb un rendiment ràpid. Supera les eines SCM
com Subversion, CVS, Perforce i ClearCase amb funcions com
ramificació local barata, àrees d’intervenció convenients i múltiples
fluxos de treball.
Figura 1. Logo del projecte Git creat per Linus Torvalds.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Tipus de fitxers
El sistema de versionat i de cheap copy de Git està sobretot pensat
per a fitxers de text. Encara que es poden enmagatzemar tot tipus
de fitxers, Git és ideal per a:
• Codi font de tots els llenguatges de programació (Java, C,
C++, C#, Python, etc).
• Fitxers web (HTML, JS i CSS).
• Llibres i documents estructurats ({latex}, Markdown,
Asciidoc, etc).
• Formats de dades estructurades (CSV, JSON, XML)
• I també per a un gran nombre de fitxers GIS en format text
(GeoJSON, GML, KML, KMZ, GPX, OSM XML, ESRI Grid,
etc).
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Què és GitHub?
GitHub és un servei de hosting de repositoris Git – similar a
Bitbucket o Gitlab – el qual ofereix tota la funcionalitat de Git però
també afegeix les seves característiques pròpies com, per exemple:
• Una interfície gràfica web, una aplicació d’escriptori així i
integració del mòbil.
• Control d’accés i seguretat.
• Diverses característiques de colůlaboració com bug tracking,
administració de tasques, i wikis per cada projecte.
• Capacitat de publicar pàgines web estàtiques.
Figura 2. En 2018, Microsoft va adquirir GitHub per 7.500 milions de
dòlars.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Software geoespacial en GitHub
En GitHub es desenvolupen una gran quantitat de importants
projectes per a la gestió de la informació geogràfica:
• Estàndards i especificacions de l’Open Geospatial Consortium
• QGIS
• GRASS GIS
• Cesium
• Geoserver
• GEOS
• PostGIS
• Leaflet
• GDAL/OGR
• Instamaps
• i molts més. . .
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Què és Git-Cola?
Git està dissenyat com una eina per commandaments i es fa servir
en un terminal POSIX. Els usuaris que no estan familiritzats amb
aquest tipus de programes o no volen dedicar temps a aprendre
poden utilitzar interficies gràfiques per a facilitar el treball amb
Git. Hem triat Git Cola per ser software lliure i
multi-plataforma però, hi ha moltes alternatives possibles com:
• GitKraken
• SmartGit
• QGit (Linux)
• GitUp (Mac)
• I fins i tot una eina propia de GitHub (Windows).
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Instalůlar Git i Git-Cola
Git és un software multiplataforma que funciona en Windows, Mac
o Linux. Per instalůlar Git en Linux només cal executar el següent
comandament:
1 sudo apt i n s t a l l git −a l l git −cola
Per instalůlar Git en Windows o Mac només cal descarregar els
executables i seguir els passos. El mateix per a Git Cola.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Crear un compte a GitHub
Figura 3. Fiqueu un nickname pensant a llarg termini però una
contrassenya curta (de moment).
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Pagina web d’exemple
Figura 4. Web d’exemple per a fer la primera pràctica (hola-mapa.html)
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Crear un repositori en GitHub
Figura 5. Una vegada enregistrats (sign in) anem a crear un nou
repositori de codi. Hi han moltes més opcions que no podrem veure
durant el curs però ho podeu investigar.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Crear un repositori en GitHub
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Clonar un repositori de GitHub
Figura 7. Localitzeu i copieu l’enllaç HTTP/SSH? del repositori.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Clonar un repositori amb Git Cola (git clone)
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Estructura d’un repositori Git
Figura 9. Aneu a la carpeta del repositori i busqueu la carpeta . git
Mireu però NO TOQUEU!!!!
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Obrir un repositori amb Git Cola
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Afegir un fitxer al directory de treball
Figura 11. La finestra de Git Cola està molt trista fins que feu algun
canvi o afegiu un fitxer. Afegiu el fitxer hola−mapa.html a la carpeta
/git/ftg-mapa. L’estat de l’archiu apareix en Git Cola.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Afegir un fitxer per a fer el commit (stage)
Figura 12. Fixeu-vos que el fitxer encara no està en seguiment.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Afegir un fitxer per a fer el commit (stage)
Figura 13. Fent Commit/stage o botó dred/stage l’estat del fitxer
canvía.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Preparar el commit (git commit)
Figura 14. Escrivim un missatge per a fer el commit i l’afegim fent clic.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Resultat del commit (git commit)
Figura 15. Després de fer el commit veurem que la branca local/main
está un commit ahead.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Publicar els canvis a GitHub (git push)
Figura 16. Fem clic amb el botó dret sobre la branca local/main i després
podrem publicar el commit que teniem preparat al repositori de GitHub.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Veure el resultat del git push en GitHub
Figura 17. Comprovem a GitHub que el commit s’ha afegit al repositori
remot.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Veure el resultat del git push en GitHub
Figura 18. La anatomia d’un commit ens permet veure el que hem
canviat al repositori.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Configurar les gh-pages del repositori
Figura 19. Anem a la configuració del repository i baixem on diu GitHub
Pages.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Configurar les gh-pages del repositori
Figura 20. En dos passos, primer triem la branca main (on està la
pàgina web) i després tornem per triar HTTPS. Veurem a dalt que la
nostra pàgina ja està publicada.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Fer un canvi remot des de GitHub
Figura 21. La web no funciona!!! Tranquils, per a que funcione, hem de
reanomenar el fitxer hola-mapa.html a index.html
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Què és Jekyll i per què no l’útilitzarem
Figura 22. Un altre canvi que farem serà afegir un fitxer anomenat
.nojekyll al repositori. GitHub incorpora un servidor de pàgines web
estàtiques annomenat Jekyll que permet fer pàgines web directament en
format Markdown. En aquest curs no serà necessari. . .
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Veure la teva web publicada
Figura 23. Aneu de nou a la vostra web i ara sí que deuria estar
publicada.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Descarregar els canvis del repositori remot (git pull)
Figura 24. En el repositori local encara no estan els canvis. Feu git pull
per a importar-los.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Descarregar els canvis del repositori remot (git pull)
Figura 25. A la carpeta de treball deuria veures el fitxer renombrat i el
fitxer .nojekyll
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Explorar Git Cola DAG
Figura 26. És una aplicació molt útil que ens mostra el versionat del
repository d’una manera gràfica, el llistat de commits i les diferències
introduïdes en cada commit.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Fiqueu un canvi (innecesari) al repositori
Figura 27. Per exemple, fiqueu la paraula password al README i feu el
commit. El missatge del commit pot ser Bad commit o similar.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Desfer el canvi (git reset)
Figura 28. Feu click sobre l’anterior commit i amb el botó dret del ratolí:
reset/reset-branch-head. Açò elimina el commit i deixa el fitxer modificat
com si mai no hagués entrat en Git. Descarteu els canvis.
Hi han moltes maneres de desfer canvis en Git. Els comandaments
checkout, reset o revert son altres possibilitats.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Fer canvis de manera segura (git branch)
Figura 29. Crearem una nova branca local per a fer una sèrie de millores
en el README. Feu Rama/crear i doneu-li el nom metadata. La estrella
indica que actualment estem en eixa branca de treball.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Fer canvis de manera segura (git branch)
Figura 30. Per fer algún canvi fàcil de veure. Rebatejeu el fitxer
README a NEW-README.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Treballar entre branques (git checkout)
Amb la finestra del projecte a la vista, proveu a fer checkout sobre
les dos branques i vegeu clar com funciona Git.
Figura 31. Branca metadata. Figura 32. Branca main, després
de fer el checkout.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Publicar una branca local (nova) en GitHub
Figura 33. La branca no existeix en GitHub de manera que, o la creem
desde GitHub o haurem de fer git push –upstream amb Git Cola, com
indica la imatge.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Veure la branca en remot
Figura 34. Com a resultat, ara tenim la branca metadata també en
GitHub. De manera que es pot treballar amb més gent o des de diferents
llocs de treball.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Importar els canvis de la branca styles a la principal
(git merge)
Figura 35. Feu un parell més de commits en la branca metadata, quan
hageu acabat feu git merge per a portar eixos canvis a la branca principal.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Publica al repositori remot
Figura 36. Decidiu si heu de fer pull d’una branca, de l’altra o si podeu
eliminar la branca metadata
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Practicar fent. . .
Fins aquí la introducció a Git.
Dominar totes aquestes eines serà fruit de la pràctica i de la
vostra pròpia recerca. Comenceu per repetir el que hem fet aquí
fins que ho entengueu tot.
A continuació vos faig algunes propostes per a treballar:
• Creeu una branca per modificar els estils de la web, feu una
serie de canvis i publiqueu a main.
• Creeu una altra branca per editar els continguts. Quan ho
tingueu clar, publiqueu a main.
• El mateix però per a substituir el mapa per un mapa
d’instamaps vostre.
Introducció a Git Dr. Benito Zaragozí
Eines Preparatius Hola Mapa! Gestió avançada Practica
Un últim comentari
Git i totes les demés eines són d’ús professional. Aques-
tes eines s’útilitzen per a gestionar fluxos de treball on
participen decenes o centenars de desenvolupadors. Evi-
dentment, en el vostre projecte de moment només estareu
vosaltres de manera que no ho heu de dominar tot. No
obstant, sí que heu de coneixer algunes de les eines que
s’utilitzen avui en dia en el desenvolupament de pàgines
web.
Introducció a Git Dr. Benito Zaragozí

More Related Content

More from Benito Zaragozí

Grafos para la exploración y análisis de la información topológica contenida ...
Grafos para la exploración y análisis de la información topológica contenida ...Grafos para la exploración y análisis de la información topológica contenida ...
Grafos para la exploración y análisis de la información topológica contenida ...Benito Zaragozí
 
Improving the Usability of the Land Cover and Use Information System of Spain...
Improving the Usability of the Land Cover and Use Information System of Spain...Improving the Usability of the Land Cover and Use Information System of Spain...
Improving the Usability of the Land Cover and Use Information System of Spain...Benito Zaragozí
 
Towards an Affordable GIS for Analysing Public Transport Mobility Data
Towards an Affordable GIS for Analysing Public Transport Mobility DataTowards an Affordable GIS for Analysing Public Transport Mobility Data
Towards an Affordable GIS for Analysing Public Transport Mobility DataBenito Zaragozí
 
Primera reunión del proyecto SIOSE-INNOVA
Primera reunión del proyecto SIOSE-INNOVAPrimera reunión del proyecto SIOSE-INNOVA
Primera reunión del proyecto SIOSE-INNOVABenito Zaragozí
 
Introducción a la geodatabase del SIOSE (II)
Introducción a la geodatabase del SIOSE (II)Introducción a la geodatabase del SIOSE (II)
Introducción a la geodatabase del SIOSE (II)Benito Zaragozí
 
Introducción a la geodatabase del SIOSE (I)
Introducción a la geodatabase del SIOSE (I)Introducción a la geodatabase del SIOSE (I)
Introducción a la geodatabase del SIOSE (I)Benito Zaragozí
 
Improving the usability of the Information system of land cover in Spain (SIOSE)
Improving the usability of the Information system of land cover in Spain (SIOSE)Improving the usability of the Information system of land cover in Spain (SIOSE)
Improving the usability of the Information system of land cover in Spain (SIOSE)Benito Zaragozí
 
Small Data para Educación: Más de un millón de pirámides de población de España
Small Data para Educación: Más de un millón de pirámides de población de EspañaSmall Data para Educación: Más de un millón de pirámides de población de España
Small Data para Educación: Más de un millón de pirámides de población de EspañaBenito Zaragozí
 
De SIOSE a PostGIS en cuatro sesiones
De SIOSE a PostGIS en cuatro sesionesDe SIOSE a PostGIS en cuatro sesiones
De SIOSE a PostGIS en cuatro sesionesBenito Zaragozí
 
Recursos actuales para crear simbolización cartográfica: SIG, estándares y ca...
Recursos actuales para crear simbolización cartográfica: SIG, estándares y ca...Recursos actuales para crear simbolización cartográfica: SIG, estándares y ca...
Recursos actuales para crear simbolización cartográfica: SIG, estándares y ca...Benito Zaragozí
 
Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio
Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudioLas geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio
Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudioBenito Zaragozí
 
Modelizacion de variables climaticas con SIG
Modelizacion de variables climaticas con SIGModelizacion de variables climaticas con SIG
Modelizacion de variables climaticas con SIGBenito Zaragozí
 
Estudio del abandono agrícola mediante el uso de Minería de Datos y Tecnologí...
Estudio del abandono agrícola mediante el uso de Minería de Datos y Tecnologí...Estudio del abandono agrícola mediante el uso de Minería de Datos y Tecnologí...
Estudio del abandono agrícola mediante el uso de Minería de Datos y Tecnologí...Benito Zaragozí
 
Diseño de una Geodatabase orientada al estudio de los suelos
Diseño de una Geodatabase orientada al estudio de los suelosDiseño de una Geodatabase orientada al estudio de los suelos
Diseño de una Geodatabase orientada al estudio de los suelosBenito Zaragozí
 
Una nueva metodología para rentabilizar el trabajo de campo en Geografía
Una nueva metodología para rentabilizar el trabajo de campo en GeografíaUna nueva metodología para rentabilizar el trabajo de campo en Geografía
Una nueva metodología para rentabilizar el trabajo de campo en GeografíaBenito Zaragozí
 
GeoFOV: Incorporando el campo de visión en una multimedia geodatabase
GeoFOV: Incorporando el campo de visión en una multimedia geodatabaseGeoFOV: Incorporando el campo de visión en una multimedia geodatabase
GeoFOV: Incorporando el campo de visión en una multimedia geodatabaseBenito Zaragozí
 
RAPID: Rough Agricultural Plot IDentifier. Un contador de árboles con softwar...
RAPID: Rough Agricultural Plot IDentifier. Un contador de árboles con softwar...RAPID: Rough Agricultural Plot IDentifier. Un contador de árboles con softwar...
RAPID: Rough Agricultural Plot IDentifier. Un contador de árboles con softwar...Benito Zaragozí
 

More from Benito Zaragozí (18)

Grafos para la exploración y análisis de la información topológica contenida ...
Grafos para la exploración y análisis de la información topológica contenida ...Grafos para la exploración y análisis de la información topológica contenida ...
Grafos para la exploración y análisis de la información topológica contenida ...
 
Improving the Usability of the Land Cover and Use Information System of Spain...
Improving the Usability of the Land Cover and Use Information System of Spain...Improving the Usability of the Land Cover and Use Information System of Spain...
Improving the Usability of the Land Cover and Use Information System of Spain...
 
Towards an Affordable GIS for Analysing Public Transport Mobility Data
Towards an Affordable GIS for Analysing Public Transport Mobility DataTowards an Affordable GIS for Analysing Public Transport Mobility Data
Towards an Affordable GIS for Analysing Public Transport Mobility Data
 
Primera reunión del proyecto SIOSE-INNOVA
Primera reunión del proyecto SIOSE-INNOVAPrimera reunión del proyecto SIOSE-INNOVA
Primera reunión del proyecto SIOSE-INNOVA
 
Introducción a la geodatabase del SIOSE (II)
Introducción a la geodatabase del SIOSE (II)Introducción a la geodatabase del SIOSE (II)
Introducción a la geodatabase del SIOSE (II)
 
Introducción a la geodatabase del SIOSE (I)
Introducción a la geodatabase del SIOSE (I)Introducción a la geodatabase del SIOSE (I)
Introducción a la geodatabase del SIOSE (I)
 
Improving the usability of the Information system of land cover in Spain (SIOSE)
Improving the usability of the Information system of land cover in Spain (SIOSE)Improving the usability of the Information system of land cover in Spain (SIOSE)
Improving the usability of the Information system of land cover in Spain (SIOSE)
 
Small Data para Educación: Más de un millón de pirámides de población de España
Small Data para Educación: Más de un millón de pirámides de población de EspañaSmall Data para Educación: Más de un millón de pirámides de población de España
Small Data para Educación: Más de un millón de pirámides de población de España
 
De SIOSE a PostGIS en cuatro sesiones
De SIOSE a PostGIS en cuatro sesionesDe SIOSE a PostGIS en cuatro sesiones
De SIOSE a PostGIS en cuatro sesiones
 
Recursos actuales para crear simbolización cartográfica: SIG, estándares y ca...
Recursos actuales para crear simbolización cartográfica: SIG, estándares y ca...Recursos actuales para crear simbolización cartográfica: SIG, estándares y ca...
Recursos actuales para crear simbolización cartográfica: SIG, estándares y ca...
 
Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio
Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudioLas geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio
Las geodatabases en el panorama del FOSS GIS. Introduccion y casos de estudio
 
Modelizacion de variables climaticas con SIG
Modelizacion de variables climaticas con SIGModelizacion de variables climaticas con SIG
Modelizacion de variables climaticas con SIG
 
Estudio del abandono agrícola mediante el uso de Minería de Datos y Tecnologí...
Estudio del abandono agrícola mediante el uso de Minería de Datos y Tecnologí...Estudio del abandono agrícola mediante el uso de Minería de Datos y Tecnologí...
Estudio del abandono agrícola mediante el uso de Minería de Datos y Tecnologí...
 
Taller de GPS
Taller de GPSTaller de GPS
Taller de GPS
 
Diseño de una Geodatabase orientada al estudio de los suelos
Diseño de una Geodatabase orientada al estudio de los suelosDiseño de una Geodatabase orientada al estudio de los suelos
Diseño de una Geodatabase orientada al estudio de los suelos
 
Una nueva metodología para rentabilizar el trabajo de campo en Geografía
Una nueva metodología para rentabilizar el trabajo de campo en GeografíaUna nueva metodología para rentabilizar el trabajo de campo en Geografía
Una nueva metodología para rentabilizar el trabajo de campo en Geografía
 
GeoFOV: Incorporando el campo de visión en una multimedia geodatabase
GeoFOV: Incorporando el campo de visión en una multimedia geodatabaseGeoFOV: Incorporando el campo de visión en una multimedia geodatabase
GeoFOV: Incorporando el campo de visión en una multimedia geodatabase
 
RAPID: Rough Agricultural Plot IDentifier. Un contador de árboles con softwar...
RAPID: Rough Agricultural Plot IDentifier. Un contador de árboles con softwar...RAPID: Rough Agricultural Plot IDentifier. Un contador de árboles con softwar...
RAPID: Rough Agricultural Plot IDentifier. Un contador de árboles con softwar...
 

Introducció a Git

  • 1. Eines Preparatius Hola Mapa! Gestió avançada Practica Introducció a Git Producció i disseny cartogràfic. Eines web. Dr. Benito Zaragozí Segon quadrimestre 2020 – 2021 Introducció a Git Dr. Benito Zaragozí
  • 2. Eines Preparatius Hola Mapa! Gestió avançada Practica Què és Git? Git és un sistema de control de versions distribuïdes de codi obert i gratuït dissenyat per gestionar des de petits fins a grans projectes amb rapidesa i eficiència. Git és relativament fàcil d’aprendre i té una petita petjada amb un rendiment ràpid. Supera les eines SCM com Subversion, CVS, Perforce i ClearCase amb funcions com ramificació local barata, àrees d’intervenció convenients i múltiples fluxos de treball. Figura 1. Logo del projecte Git creat per Linus Torvalds. Introducció a Git Dr. Benito Zaragozí
  • 3. Eines Preparatius Hola Mapa! Gestió avançada Practica Tipus de fitxers El sistema de versionat i de cheap copy de Git està sobretot pensat per a fitxers de text. Encara que es poden enmagatzemar tot tipus de fitxers, Git és ideal per a: • Codi font de tots els llenguatges de programació (Java, C, C++, C#, Python, etc). • Fitxers web (HTML, JS i CSS). • Llibres i documents estructurats ({latex}, Markdown, Asciidoc, etc). • Formats de dades estructurades (CSV, JSON, XML) • I també per a un gran nombre de fitxers GIS en format text (GeoJSON, GML, KML, KMZ, GPX, OSM XML, ESRI Grid, etc). Introducció a Git Dr. Benito Zaragozí
  • 4. Eines Preparatius Hola Mapa! Gestió avançada Practica Què és GitHub? GitHub és un servei de hosting de repositoris Git – similar a Bitbucket o Gitlab – el qual ofereix tota la funcionalitat de Git però també afegeix les seves característiques pròpies com, per exemple: • Una interfície gràfica web, una aplicació d’escriptori així i integració del mòbil. • Control d’accés i seguretat. • Diverses característiques de colůlaboració com bug tracking, administració de tasques, i wikis per cada projecte. • Capacitat de publicar pàgines web estàtiques. Figura 2. En 2018, Microsoft va adquirir GitHub per 7.500 milions de dòlars. Introducció a Git Dr. Benito Zaragozí
  • 5. Eines Preparatius Hola Mapa! Gestió avançada Practica Software geoespacial en GitHub En GitHub es desenvolupen una gran quantitat de importants projectes per a la gestió de la informació geogràfica: • Estàndards i especificacions de l’Open Geospatial Consortium • QGIS • GRASS GIS • Cesium • Geoserver • GEOS • PostGIS • Leaflet • GDAL/OGR • Instamaps • i molts més. . . Introducció a Git Dr. Benito Zaragozí
  • 6. Eines Preparatius Hola Mapa! Gestió avançada Practica Què és Git-Cola? Git està dissenyat com una eina per commandaments i es fa servir en un terminal POSIX. Els usuaris que no estan familiritzats amb aquest tipus de programes o no volen dedicar temps a aprendre poden utilitzar interficies gràfiques per a facilitar el treball amb Git. Hem triat Git Cola per ser software lliure i multi-plataforma però, hi ha moltes alternatives possibles com: • GitKraken • SmartGit • QGit (Linux) • GitUp (Mac) • I fins i tot una eina propia de GitHub (Windows). Introducció a Git Dr. Benito Zaragozí
  • 7. Eines Preparatius Hola Mapa! Gestió avançada Practica Instalůlar Git i Git-Cola Git és un software multiplataforma que funciona en Windows, Mac o Linux. Per instalůlar Git en Linux només cal executar el següent comandament: 1 sudo apt i n s t a l l git −a l l git −cola Per instalůlar Git en Windows o Mac només cal descarregar els executables i seguir els passos. El mateix per a Git Cola. Introducció a Git Dr. Benito Zaragozí
  • 8. Eines Preparatius Hola Mapa! Gestió avançada Practica Crear un compte a GitHub Figura 3. Fiqueu un nickname pensant a llarg termini però una contrassenya curta (de moment). Introducció a Git Dr. Benito Zaragozí
  • 9. Eines Preparatius Hola Mapa! Gestió avançada Practica Pagina web d’exemple Figura 4. Web d’exemple per a fer la primera pràctica (hola-mapa.html) Introducció a Git Dr. Benito Zaragozí
  • 10. Eines Preparatius Hola Mapa! Gestió avançada Practica Crear un repositori en GitHub Figura 5. Una vegada enregistrats (sign in) anem a crear un nou repositori de codi. Hi han moltes més opcions que no podrem veure durant el curs però ho podeu investigar. Introducció a Git Dr. Benito Zaragozí
  • 11. Eines Preparatius Hola Mapa! Gestió avançada Practica Crear un repositori en GitHub Introducció a Git Dr. Benito Zaragozí
  • 12. Eines Preparatius Hola Mapa! Gestió avançada Practica Clonar un repositori de GitHub Figura 7. Localitzeu i copieu l’enllaç HTTP/SSH? del repositori. Introducció a Git Dr. Benito Zaragozí
  • 13. Eines Preparatius Hola Mapa! Gestió avançada Practica Clonar un repositori amb Git Cola (git clone) Introducció a Git Dr. Benito Zaragozí
  • 14. Eines Preparatius Hola Mapa! Gestió avançada Practica Estructura d’un repositori Git Figura 9. Aneu a la carpeta del repositori i busqueu la carpeta . git Mireu però NO TOQUEU!!!! Introducció a Git Dr. Benito Zaragozí
  • 15. Eines Preparatius Hola Mapa! Gestió avançada Practica Obrir un repositori amb Git Cola Introducció a Git Dr. Benito Zaragozí
  • 16. Eines Preparatius Hola Mapa! Gestió avançada Practica Afegir un fitxer al directory de treball Figura 11. La finestra de Git Cola està molt trista fins que feu algun canvi o afegiu un fitxer. Afegiu el fitxer hola−mapa.html a la carpeta /git/ftg-mapa. L’estat de l’archiu apareix en Git Cola. Introducció a Git Dr. Benito Zaragozí
  • 17. Eines Preparatius Hola Mapa! Gestió avançada Practica Afegir un fitxer per a fer el commit (stage) Figura 12. Fixeu-vos que el fitxer encara no està en seguiment. Introducció a Git Dr. Benito Zaragozí
  • 18. Eines Preparatius Hola Mapa! Gestió avançada Practica Afegir un fitxer per a fer el commit (stage) Figura 13. Fent Commit/stage o botó dred/stage l’estat del fitxer canvía. Introducció a Git Dr. Benito Zaragozí
  • 19. Eines Preparatius Hola Mapa! Gestió avançada Practica Preparar el commit (git commit) Figura 14. Escrivim un missatge per a fer el commit i l’afegim fent clic. Introducció a Git Dr. Benito Zaragozí
  • 20. Eines Preparatius Hola Mapa! Gestió avançada Practica Resultat del commit (git commit) Figura 15. Després de fer el commit veurem que la branca local/main está un commit ahead. Introducció a Git Dr. Benito Zaragozí
  • 21. Eines Preparatius Hola Mapa! Gestió avançada Practica Publicar els canvis a GitHub (git push) Figura 16. Fem clic amb el botó dret sobre la branca local/main i després podrem publicar el commit que teniem preparat al repositori de GitHub. Introducció a Git Dr. Benito Zaragozí
  • 22. Eines Preparatius Hola Mapa! Gestió avançada Practica Veure el resultat del git push en GitHub Figura 17. Comprovem a GitHub que el commit s’ha afegit al repositori remot. Introducció a Git Dr. Benito Zaragozí
  • 23. Eines Preparatius Hola Mapa! Gestió avançada Practica Veure el resultat del git push en GitHub Figura 18. La anatomia d’un commit ens permet veure el que hem canviat al repositori. Introducció a Git Dr. Benito Zaragozí
  • 24. Eines Preparatius Hola Mapa! Gestió avançada Practica Configurar les gh-pages del repositori Figura 19. Anem a la configuració del repository i baixem on diu GitHub Pages. Introducció a Git Dr. Benito Zaragozí
  • 25. Eines Preparatius Hola Mapa! Gestió avançada Practica Configurar les gh-pages del repositori Figura 20. En dos passos, primer triem la branca main (on està la pàgina web) i després tornem per triar HTTPS. Veurem a dalt que la nostra pàgina ja està publicada. Introducció a Git Dr. Benito Zaragozí
  • 26. Eines Preparatius Hola Mapa! Gestió avançada Practica Fer un canvi remot des de GitHub Figura 21. La web no funciona!!! Tranquils, per a que funcione, hem de reanomenar el fitxer hola-mapa.html a index.html Introducció a Git Dr. Benito Zaragozí
  • 27. Eines Preparatius Hola Mapa! Gestió avançada Practica Què és Jekyll i per què no l’útilitzarem Figura 22. Un altre canvi que farem serà afegir un fitxer anomenat .nojekyll al repositori. GitHub incorpora un servidor de pàgines web estàtiques annomenat Jekyll que permet fer pàgines web directament en format Markdown. En aquest curs no serà necessari. . . Introducció a Git Dr. Benito Zaragozí
  • 28. Eines Preparatius Hola Mapa! Gestió avançada Practica Veure la teva web publicada Figura 23. Aneu de nou a la vostra web i ara sí que deuria estar publicada. Introducció a Git Dr. Benito Zaragozí
  • 29. Eines Preparatius Hola Mapa! Gestió avançada Practica Descarregar els canvis del repositori remot (git pull) Figura 24. En el repositori local encara no estan els canvis. Feu git pull per a importar-los. Introducció a Git Dr. Benito Zaragozí
  • 30. Eines Preparatius Hola Mapa! Gestió avançada Practica Descarregar els canvis del repositori remot (git pull) Figura 25. A la carpeta de treball deuria veures el fitxer renombrat i el fitxer .nojekyll Introducció a Git Dr. Benito Zaragozí
  • 31. Eines Preparatius Hola Mapa! Gestió avançada Practica Explorar Git Cola DAG Figura 26. És una aplicació molt útil que ens mostra el versionat del repository d’una manera gràfica, el llistat de commits i les diferències introduïdes en cada commit. Introducció a Git Dr. Benito Zaragozí
  • 32. Eines Preparatius Hola Mapa! Gestió avançada Practica Fiqueu un canvi (innecesari) al repositori Figura 27. Per exemple, fiqueu la paraula password al README i feu el commit. El missatge del commit pot ser Bad commit o similar. Introducció a Git Dr. Benito Zaragozí
  • 33. Eines Preparatius Hola Mapa! Gestió avançada Practica Desfer el canvi (git reset) Figura 28. Feu click sobre l’anterior commit i amb el botó dret del ratolí: reset/reset-branch-head. Açò elimina el commit i deixa el fitxer modificat com si mai no hagués entrat en Git. Descarteu els canvis. Hi han moltes maneres de desfer canvis en Git. Els comandaments checkout, reset o revert son altres possibilitats. Introducció a Git Dr. Benito Zaragozí
  • 34. Eines Preparatius Hola Mapa! Gestió avançada Practica Fer canvis de manera segura (git branch) Figura 29. Crearem una nova branca local per a fer una sèrie de millores en el README. Feu Rama/crear i doneu-li el nom metadata. La estrella indica que actualment estem en eixa branca de treball. Introducció a Git Dr. Benito Zaragozí
  • 35. Eines Preparatius Hola Mapa! Gestió avançada Practica Fer canvis de manera segura (git branch) Figura 30. Per fer algún canvi fàcil de veure. Rebatejeu el fitxer README a NEW-README. Introducció a Git Dr. Benito Zaragozí
  • 36. Eines Preparatius Hola Mapa! Gestió avançada Practica Treballar entre branques (git checkout) Amb la finestra del projecte a la vista, proveu a fer checkout sobre les dos branques i vegeu clar com funciona Git. Figura 31. Branca metadata. Figura 32. Branca main, després de fer el checkout. Introducció a Git Dr. Benito Zaragozí
  • 37. Eines Preparatius Hola Mapa! Gestió avançada Practica Publicar una branca local (nova) en GitHub Figura 33. La branca no existeix en GitHub de manera que, o la creem desde GitHub o haurem de fer git push –upstream amb Git Cola, com indica la imatge. Introducció a Git Dr. Benito Zaragozí
  • 38. Eines Preparatius Hola Mapa! Gestió avançada Practica Veure la branca en remot Figura 34. Com a resultat, ara tenim la branca metadata també en GitHub. De manera que es pot treballar amb més gent o des de diferents llocs de treball. Introducció a Git Dr. Benito Zaragozí
  • 39. Eines Preparatius Hola Mapa! Gestió avançada Practica Importar els canvis de la branca styles a la principal (git merge) Figura 35. Feu un parell més de commits en la branca metadata, quan hageu acabat feu git merge per a portar eixos canvis a la branca principal. Introducció a Git Dr. Benito Zaragozí
  • 40. Eines Preparatius Hola Mapa! Gestió avançada Practica Publica al repositori remot Figura 36. Decidiu si heu de fer pull d’una branca, de l’altra o si podeu eliminar la branca metadata Introducció a Git Dr. Benito Zaragozí
  • 41. Eines Preparatius Hola Mapa! Gestió avançada Practica Practicar fent. . . Fins aquí la introducció a Git. Dominar totes aquestes eines serà fruit de la pràctica i de la vostra pròpia recerca. Comenceu per repetir el que hem fet aquí fins que ho entengueu tot. A continuació vos faig algunes propostes per a treballar: • Creeu una branca per modificar els estils de la web, feu una serie de canvis i publiqueu a main. • Creeu una altra branca per editar els continguts. Quan ho tingueu clar, publiqueu a main. • El mateix però per a substituir el mapa per un mapa d’instamaps vostre. Introducció a Git Dr. Benito Zaragozí
  • 42. Eines Preparatius Hola Mapa! Gestió avançada Practica Un últim comentari Git i totes les demés eines són d’ús professional. Aques- tes eines s’útilitzen per a gestionar fluxos de treball on participen decenes o centenars de desenvolupadors. Evi- dentment, en el vostre projecte de moment només estareu vosaltres de manera que no ho heu de dominar tot. No obstant, sí que heu de coneixer algunes de les eines que s’utilitzen avui en dia en el desenvolupament de pàgines web. Introducció a Git Dr. Benito Zaragozí