Git 01-introduccion

Post on 07-Feb-2017

97 views 2 download

Transcript of Git 01-introduccion

http://cursosdedesarrollo.com/

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

http://cursosdedesarrollo.com/

Índice de contenidos• Introducción

• Instalación

• Gestión de un repositorio

• Colaboración

• GUI’s

• Github

• Gitlab

• Conclusiones

http://cursosdedesarrollo.com/

Introducción

¿Qué es Git?

http://cursosdedesarrollo.com/

Introducción

http://cursosdedesarrollo.com/

Introducción

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

http://cursosdedesarrollo.com/

Introducción

¿En qué consiste un sistema de versiones?

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

http://cursosdedesarrollo.com/

Introducción

http://cursosdedesarrollo.com/

Introducción

¿Cómo se crea un estado?

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

http://cursosdedesarrollo.com/

Introducción

Se establecen distintas versiones del proyecto en total

http://cursosdedesarrollo.com/

Introducción

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

http://cursosdedesarrollo.com/

Introducción

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

http://cursosdedesarrollo.com/

Introducción

http://cursosdedesarrollo.com/

Introducción

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

arreglo de un fallo, nueva funcionalidad, etc…

http://cursosdedesarrollo.com/

Introducción

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

http://cursosdedesarrollo.com/

Introducción

Entonces, ¿Porqué usar Git?

http://cursosdedesarrollo.com/

Introducción

Ventajas que tiene Git sobre otros sistemas de control de versiones

http://cursosdedesarrollo.com/

Introducción

Ramificación

http://cursosdedesarrollo.com/

Introducción

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

http://cursosdedesarrollo.com/

Introducción

Convergencia

http://cursosdedesarrollo.com/

Introducción

http://cursosdedesarrollo.com/

Introducción

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

http://cursosdedesarrollo.com/

Introducción

Distribución

http://cursosdedesarrollo.com/

Introducción

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

http://cursosdedesarrollo.com/

Introducción

Adaptabilidad

http://cursosdedesarrollo.com/

Introducción

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

http://cursosdedesarrollo.com/

Introducción

Pull Request

http://cursosdedesarrollo.com/

Introducción

http://cursosdedesarrollo.com/

Introducción

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

http://cursosdedesarrollo.com/

Instalación

Sitio Oficial

https://git-scm.com/

http://cursosdedesarrollo.com/

Instalación

Descarga

https://git-scm.com/downloads

http://cursosdedesarrollo.com/

Instalación

Descarga

https://git-scm.com/downloads

http://cursosdedesarrollo.com/

Gestión de un Repositorio

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

git init

http://cursosdedesarrollo.com/

Gestión de un Repositorio

Con esto creamos un repositorio en esa carpeta

http://cursosdedesarrollo.com/

Gestión de un Repositorio

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

git clone (URL_REPO) (Directorio destino)

http://cursosdedesarrollo.com/

Gestión de un Repositorio

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

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>

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>

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

http://cursosdedesarrollo.com/

Gestión de un Repositorio

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

git commit -m ‘datos del cambio’

http://cursosdedesarrollo.com/

Gestión de un Repositorio

Para ver los estado en un repositorio:

git status

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

http://cursosdedesarrollo.com/

Gestión de un Repositorio

También podemos ver las distintas versiones del repositorio:

git log

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>

http://cursosdedesarrollo.com/

Gestión de un Repositorio

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

git revert <commit>

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

http://cursosdedesarrollo.com/

Colaboración

Los dos cambios principales pueden ser:

Recibir cambios

Mandar Cambios

http://cursosdedesarrollo.com/

Colaboración

Mandar cambios se llama push

http://cursosdedesarrollo.com/

Colaboración

Recibir cambios se llama pull

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>

http://cursosdedesarrollo.com/

Colaboración

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

git pull <remote>

para recibir cambios

http://cursosdedesarrollo.com/

Colaboración

o mandar cambios:

git push <remote>

para recibir cambios

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

http://cursosdedesarrollo.com/

Colaboración

Crear una nueva rama

git branch <rama>

http://cursosdedesarrollo.com/

Colaboración

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

git checkout <existing-branch>

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

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

http://cursosdedesarrollo.com/

GUI’s

GitHub Desktop

https://desktop.github.com/

http://cursosdedesarrollo.com/

GUI’s

Sourcetree

https://www.sourcetreeapp.com/

http://cursosdedesarrollo.com/

GUI’s

GitKraken

https://www.gitkraken.com/

http://cursosdedesarrollo.com/

GUI’s

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

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/

http://cursosdedesarrollo.com/

Github

Ejemplo de Repositorios abiertos:

https://github.com/pepesan

http://cursosdedesarrollo.com/

GitLab

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

https://about.gitlab.com/

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

http://cursosdedesarrollo.com/

Demo

Show time

http://cursosdedesarrollo.com/

¿Preguntas?

¿Alguna Pregunta?

http://cursosdedesarrollo.com/

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

versiones y sus herramientas más

conocidas

http://cursosdedesarrollo.com/

Datos de Contacto

http://www.cursosdedesarrollo.com david@cursosdedesarrollo.com

http://cursosdedesarrollo.com/

LicenciaDavid Vaquero Santiago

Esta obra está bajo una Licencia Creative Commons

Atribución-NoComercial-CompartirIgual 4.0 Internacional