Download - 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
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
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
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
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
Se pueden fusionar ramas para hacer una convergencia de código
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
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
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/
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 [email protected]
http://cursosdedesarrollo.com/
LicenciaDavid Vaquero Santiago
Esta obra está bajo una Licencia Creative Commons
Atribución-NoComercial-CompartirIgual 4.0 Internacional