Download pdf - Git 01-introduccion

Transcript
Page 1: Git 01-introduccion

http://cursosdedesarrollo.com/

Curso de GitUnidad Didáctica 01: ¿Qué es Git?

Page 2: Git 01-introduccion

http://cursosdedesarrollo.com/

Índice de contenidos• Introducción

• Instalación

• Gestión de un repositorio

• Colaboración

• GUI’s

• Github

• Gitlab

• Conclusiones

Page 3: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

¿Qué es Git?

Page 4: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Page 5: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Git es un sistema de control de versiones distribuido de carpetas y ficheros

Page 6: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

¿En qué consiste un sistema de versiones?

Page 7: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Maneja un histórico de los ficheros y carpetas que pertenecen a un proyecto pudiendo recuperar el

estado de un proyecto dado

Page 8: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Page 9: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

¿Cómo se crea un estado?

Page 10: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Se crea un estado nuevo cada vez que se hace un commit, es decir, se guardan los cambios en un

repositorio

Page 11: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Se establecen distintas versiones del proyecto en total

Page 12: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

En cada versión del repositorio se pueden ver los cambios provocados en cada fichero o carpeta

Page 13: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Estos cambios son las diferencias entre una versión y otra

Page 14: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Page 15: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Estos cambios suelen llevar asociado un determinado mensaje que contextualiza el cambio,

arreglo de un fallo, nueva funcionalidad, etc…

Page 16: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Hasta aquí sería parecido a otros sistemas de versiones como SVN o CVS

Page 17: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Entonces, ¿Porqué usar Git?

Page 18: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Ventajas que tiene Git sobre otros sistemas de control de versiones

Page 19: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Ramificación

Page 20: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Page 21: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Permite crear distintas ramas para el código a través del cual podemos hacer el seguimiento del desarrollo

de un proyecto

Page 22: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Convergencia

Page 23: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Page 24: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Se pueden fusionar ramas para hacer una convergencia de código

Page 25: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Distribución

Page 26: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Page 27: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Cada persona tiene la posibilidad de duplicar el repositorio y tener un repositorio local para que cada

repositorio sea independiente y los cambios no afecten a los demás necesariamente

Page 28: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Adaptabilidad

Page 29: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Page 30: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Según las necesidades de cada proyecto la estructura de versiones se puede ajustar a cada

equipo y cada proyecto

Page 31: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Pull Request

Page 32: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Page 33: Git 01-introduccion

http://cursosdedesarrollo.com/

Introducción

Permite que otras personas puedan llegar a querer hacer commits en nuestro repositorio

Page 34: Git 01-introduccion

http://cursosdedesarrollo.com/

Instalación

Sitio Oficial

https://git-scm.com/

Page 35: Git 01-introduccion

http://cursosdedesarrollo.com/

Instalación

Descarga

https://git-scm.com/downloads

Page 36: Git 01-introduccion

http://cursosdedesarrollo.com/

Instalación

Descarga

https://git-scm.com/downloads

Page 37: Git 01-introduccion

http://cursosdedesarrollo.com/

Gestión de un Repositorio

Sobre una carpeta en la que queremos gestionar un proyecto ejecutamos:

git init

Page 38: Git 01-introduccion

http://cursosdedesarrollo.com/

Gestión de un Repositorio

Con esto creamos un repositorio en esa carpeta

Page 39: Git 01-introduccion

http://cursosdedesarrollo.com/

Gestión de un Repositorio

Si queremos descargarnos un repositorio público, debemos clonarlo:

git clone (URL_REPO) (Directorio destino)

Page 40: Git 01-introduccion

http://cursosdedesarrollo.com/

Gestión de un Repositorio

En ambos casos podemos gestionar ya los ficheros que hay en ese repositorio

Page 41: Git 01-introduccion

http://cursosdedesarrollo.com/

Gestión de un Repositorio

Siempre está bien configurar los datos de nuestro usuario del repositorio, sobre todo de cara a luego

compartir dicho repositorio

git config --global user.name <name>

git config --global user.email <email>

Page 42: Git 01-introduccion

http://cursosdedesarrollo.com/

Gestión de un Repositorio

Para añadir un archivo o conjunto de archivos al repositorio ejecutamos:

git add <file>

git add <directory>

Page 43: Git 01-introduccion

http://cursosdedesarrollo.com/

Gestión de un Repositorio

Al añadir los archivos es como decirle al repositorio que queremos gestionar los archivos con dicho

repositorio, pero si queremos guardar esos cambios como una nueva versión es necesario crear un nuevo

commit

Page 44: Git 01-introduccion

http://cursosdedesarrollo.com/

Gestión de un Repositorio

Para crear un nuevo commit (versión estable):

git commit -m ‘datos del cambio’

Page 45: Git 01-introduccion

http://cursosdedesarrollo.com/

Gestión de un Repositorio

Para ver los estado en un repositorio:

git status

Page 46: Git 01-introduccion

http://cursosdedesarrollo.com/

Gestión de un Repositorio

Es posible que no queramos que algunos ficheros sean gestionados por el repositorio para ello

podemos gestionar el fichero

.gitignore

Page 47: Git 01-introduccion

http://cursosdedesarrollo.com/

Gestión de un Repositorio

También podemos ver las distintas versiones del repositorio:

git log

Page 48: Git 01-introduccion

http://cursosdedesarrollo.com/

Gestión de un Repositorio

Con checkout podemos volver el proyecto a una determinada versión de commit:

git checkout <commit>

git checkout <commit> <file>

Page 49: Git 01-introduccion

http://cursosdedesarrollo.com/

Gestión de un Repositorio

Con revert podemos volver atrás una serie de cambios en el proyecto:

git revert <commit>

Page 50: Git 01-introduccion

http://cursosdedesarrollo.com/

Colaboración

De cara a poder colaborar en proyectos lo más normal es que alguien tenga un repositorio local y quiera compartir cambios con otros repositorios

Page 51: Git 01-introduccion

http://cursosdedesarrollo.com/

Colaboración

Los dos cambios principales pueden ser:

Recibir cambios

Mandar Cambios

Page 52: Git 01-introduccion

http://cursosdedesarrollo.com/

Colaboración

Mandar cambios se llama push

Page 53: Git 01-introduccion

http://cursosdedesarrollo.com/

Colaboración

Recibir cambios se llama pull

Page 54: Git 01-introduccion

http://cursosdedesarrollo.com/

Colaboración

Para que estos cambios puedan producirse en cualquier dirección es necesario que se disponga de

un enlace a un repositorio remoto:

git remote add <name> <url>

Page 55: Git 01-introduccion

http://cursosdedesarrollo.com/

Colaboración

Después de haber hecha esta conexión ya podemos hacer un:

git pull <remote>

para recibir cambios

Page 56: Git 01-introduccion

http://cursosdedesarrollo.com/

Colaboración

o mandar cambios:

git push <remote>

para recibir cambios

Page 57: Git 01-introduccion

http://cursosdedesarrollo.com/

Colaboración

Cuando empezamos a trabajar con otras personas es cuando normalmente empezamos a tener la necesidad clara de manejas distintas ramas del

proyecto

Page 58: Git 01-introduccion

http://cursosdedesarrollo.com/

Colaboración

Crear una nueva rama

git branch <rama>

Page 59: Git 01-introduccion

http://cursosdedesarrollo.com/

Colaboración

Para elegir la rama con la que queremos trabajar es necesario usar checkout:

git checkout <existing-branch>

Page 60: Git 01-introduccion

http://cursosdedesarrollo.com/

Colaboración

La rama principal siempre se llama Master

El punto actual de desarrollo se llama Head

Por lo que los cambios que hagamos normalmente serán en Master/Head

Page 61: Git 01-introduccion

http://cursosdedesarrollo.com/

GUI’s

Como esta gestión por consola suele ser algo tediosa es preferible disponer de alguna herramienta

gráfica que ayude a esta gestión

https://git-scm.com/downloads/guis

Page 62: Git 01-introduccion

http://cursosdedesarrollo.com/

GUI’s

GitHub Desktop

https://desktop.github.com/

Page 63: Git 01-introduccion

http://cursosdedesarrollo.com/

GUI’s

Sourcetree

https://www.sourcetreeapp.com/

Page 64: Git 01-introduccion

http://cursosdedesarrollo.com/

GUI’s

GitKraken

https://www.gitkraken.com/

Page 65: Git 01-introduccion

http://cursosdedesarrollo.com/

GUI’s

La mayor parte de los IDE’s actuales disponen tanto de integración con Git como de Github

Page 66: Git 01-introduccion

http://cursosdedesarrollo.com/

Github

Github es un servicio disponible a través de la web en el que se pueden compartir repositorios Git con otras personas sin la necesidad de disponer de un

ordenador encendido 24/7

https://github.com/

Page 67: Git 01-introduccion

http://cursosdedesarrollo.com/

Github

Ejemplo de Repositorios abiertos:

https://github.com/pepesan

Page 68: Git 01-introduccion

http://cursosdedesarrollo.com/

GitLab

Gitlab es la manera de disponer de tu propio Github instalado en tus propios servidores:

https://about.gitlab.com/

Page 69: Git 01-introduccion

http://cursosdedesarrollo.com/

GitLab

La ventaja principal sobre GitHub es que tienes el control de los servidores y todo el contenido puede

estar alojado dentro de tu empresa y no en los servidores de Github

Page 70: Git 01-introduccion

http://cursosdedesarrollo.com/

Demo

Show time

Page 71: Git 01-introduccion

http://cursosdedesarrollo.com/

¿Preguntas?

¿Alguna Pregunta?

Page 72: Git 01-introduccion

http://cursosdedesarrollo.com/

ConclusionesHemos visto cuales son las funciones principales de Git como sistema de control de

versiones y sus herramientas más

conocidas

Page 73: Git 01-introduccion

http://cursosdedesarrollo.com/

Datos de Contacto

http://www.cursosdedesarrollo.com [email protected]

Page 74: Git 01-introduccion

http://cursosdedesarrollo.com/

LicenciaDavid Vaquero Santiago

Esta obra está bajo una Licencia Creative Commons

Atribución-NoComercial-CompartirIgual 4.0 Internacional