SlideShare una empresa de Scribd logo
1 de 64
Descargar para leer sin conexión
Taller de introducción a Git
Mario Pérez Esteso
Taller de Introducción a Git by Geeky Theory is licensed under a
Creative Commons Reconocimiento-NoComercial-CompartirIgual
4.0 Internacional License.
¿Qué es el control de versiones?
El sistema de
control de versiones
(SCV) lleva un registro
de cambios sobre uno
o más archivos a lo
largo del tiempo y nos
permite volver atrás
para recuperar
versiones anteriores.
Tipos de SCV
- Locales
- Centralizados
- Distribuidos
SCV Locales
El sistema más simple
de control de versiones
es hacer un backup de
archivos y renombrarlos.
En lugar de tener diferentes versiones en archivos
independientes, se desarrolló el SCV local. Las distintas
versiones se almacenan en una base de datos.
SCV Centralizados
Ya no se almacena en
local, sino en un servidor
remoto.
De este modo, varios
desarrolladores podrán
trabajar al mismo tiempo
en un proyecto.
SCV Centralizados
Problema:
A pesar de que
pueden trabajar en el
mismo proyecto, no
pueden trabajar con el
mismo archivo.
SCV Distribuido
Hay una copia en un
servidor y varias copias
en local.
Cada programador
puede desarrollar su
propia versión, creando
diferentes ramas.
¿Qué es Git?
Git fue diseñado por Linus Torvalds y es uno de los
sistemas de control de versiones más populares.
¿Qué es Git?
Muchos grandes proyectos utilizan repositorios Git
gracias a su potencia y versatilidad.
Cada vez es más importante saber utilizar Git, pues es
extremadamente útil para todo desarrollador. Es muy
usado en proyectos colaborativos.
¿Qué es Git?
Principales características:
- Velocidad.
- Sencillo diseño.
- Desarrollo no lineal.
- SCV distribuido.
- Capaz de manejar grandes proyectos.
¿Cómo funciona Git?
A diferencia de otros SCV, Git funciona con snapshots.
Esto quiere decir que no almacena datos de las
diferencias de los archivos, sino que cada vez que se
confirma un cambio o se guarda el estado de nuestro
proyecto, Git “hace una foto” de él.
Snapshots
Proceso de uso de Git
1. Crear un repositorio.
2. Trabajar con el proyecto (modificar, crear, borrar…).
3. Añadir los archivos.
4. Tomar la instantánea (commit).
Instalación de Git en Windows
1. http://msysgit.github.io/
2. Descargamos el ejecutable.
3. Lo instalamos con la configuración
por defecto.
Varios servicios de hosting
Los dos más importantes son:
Varios servicios de hosting
vs.
Github
Creamos una cuenta
https://github.com/
Configurando Git
Lo primero que deberíamos hacer es
establecer nuestro nombre de usuario y
correo electrónico:
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
Configurando Git
Comprobamos si la configuración es
correcta:
$ git config --list
$ git config user.name
$ git config user.email
Trabajando con Git
Existen dos maneras de obtener un
repositorio:
$ git init
1. Inicializarlo en un proyecto existente:
2. Clonarlo de un repositorio existente:
$ git clone [url]
Trabajando con Git
¿Qué vamos a hacer?
1. Crear una carpeta nueva.
2. Hola Mundo en HTML.
3. Inicializar repositorio en local.
4. Add y commit.
5. Push a GitHub.
Trabajando con Git
1. Crear una carpeta nueva.
2. Hola Mundo en HTML.
<html>
<head>
<title>HOLA MUNDO</title>
</head>
<body>
HOLA, MUNDO!
</body>
</html>
Trabajando con Git
3. Inicializar repositorio en local.
4. Add y commit.
$ git init
$ git add .
$ git commit -m “Initial commit”
Trabajando con Git
5. Push a GitHub.
$ git remote add origin [url]
$ git push -u origin master
Primero tenemos que crear un repositorio con
nuestra cuenta y, cuando ya lo tengamos:
Trabajando con Git
¿Os gusta la terminal?
Gestores gráficos
Existen varios clientes gráficos
http://git-scm.com/downloads/guis
Gestores gráficos
Ventajas de usar un cliente gráfico:
1. Es más amigable que la terminal.
2. Es más rápido.
3. Es más cómodo.
4. A veces la consola es peligrosa.
Gestores gráficos
Principal ventaja de SmartGit: multiplataforma.
Gestores gráficos
Utilizaré SmartGit
http://www.syntevo.com/smartgithg/download
Trabajando con Git
Vamos a hacer el mismo
ejemplo de antes, pero
con un gestor gráfico de
Git (SmartGit).
Trabajando con Git
Mismos pasos que antes:
1. Crear una carpeta nueva.
2. Hola Mundo en HTML.
3. Inicializar repositorio en local.
4. Add y commit.
5. Push a GitHub.
Trabajando con Git
1. Crear una carpeta nueva.
2. Hola Mundo en HTML.
<html>
<head>
<title>HOLA MUNDO</title>
</head>
<body>
HOLA, MUNDO!
</body>
</html>
Trabajando con Git
3. Inicializar repositorio en local.
Trabajando con Git
4. Add y commit.
Trabajando con Git
4. Add y commit.
Todavía no podemos
hacer push porque no
tenemos un repositorio
remoto.
Trabajando con Git
5. Push a Github.
Creamos un nuevo
repostiorio en
Github para alojar
este nuevo
proyecto.
Trabajando con Git
5. Push a Github.
Añadimos la URL
remota.
Trabajando con Git
5. Push a Github.
¡Ahora toca pushear!
Trabajando con Git
Vamos a crear dos archivo: name.html y surname.html
<html>
<head>
<title>NOMBRE</title>
</head>
<body>
MI NOMBRE ES MARIO
</body>
</html>
<html>
<head>
<title>APELLIDO</title>
</head>
<body>
MI APELLIDO ES PÉREZ
</body>
</html>
Trabajando con Git
Commit de: name.html
Trabajando con Git
Amend: surname.html
Trabajando con Git
Push
Trabajando con Git
Historial:
Gracias a él
conocemos
los cambios
que ha
habido en el
repositorio.
Trabajando con Git
¿Y si queremos deshacer cambios?
Podemos deshacer
los cambios y volver
a un determinado
punto del historial
del repositorio.
Trabajando con Git
¿Y si queremos deshacer cambios?
Podemos deshacer
los cambios y volver
a un determinado
punto del historial
del repositorio.
Trabajando con Git
¿Y si queremos deshacer cambios?
Una vez hechos los
cambios en local,
toca borrar el push.
Esto hace que el
repositorio remoto
se reinicie al estado
que le hemos dicho.
Trabajando con Git
¿Y si queremos deshacer cambios?
Resultado:
Trabajando con Git
RAMAS
Uno de los puntos
fuertes de Git es su
sistema de
ramificaciones.
Trabajando con Git
RAMAS
¿Por qué son tan importantes?
1. Una rama principal y otras de desarrollo.
2. Desarrollo colaborativo.
3. Cambian por completo la forma de desarrollar.
Trabajando con Git
RAMAS
Caso real
Trabajamos en un servicio que
ya está disponible al público y
de repente tiene un error.
¿Qué hacemos?
Trabajando con Git
RAMAS
Caso real
Creamos una rama aparte para
arreglar el problema y hacer
pruebas.
Una vez esté arreglado, unimos
esta rama con la principal.
Trabajando con Git
RAMAS
Añadimos una
nueva rama para
desarrollar.
Trabajando con Git
RAMAS
Modificamos el archivo name.html.
<html>
<head>
<title>NOMBRE</title>
</head>
<body>
MI NOMBRE ES MARIO <br>Y ESTOY EN EL TALLER DE GIT DE GEEKY THEORY
</body>
</html>
Trabajando con Git
RAMAS
Hacemos commit en la
rama de desarrollo.
Trabajando con Git
RAMAS
Trabajando con Git
RAMAS
Trabajando con Git
RAMAS
Trabajando con Git
Ramas
Pull request desde Github.
Trabajando con Git
Ramas
Sincronizar el
repositorio en
SmartGit.
README
¿Qué es?
Documento de texto que describe el proyecto. En él
existe información relevante sobre nuestro programa:
1. Descripción y, a ser posible, captura de pantalla.
2. Autores y colaboradores.
3. Instrucciones de uso e instalación.
4. Licencia.
README
¿Markdown?
Markdown es un
lenguaje de marcado que
tiene como objetivo el
hacer más fácil la tarea de
dar formato a un texto
mediante el uso de algunos
caracteres.
README
Ejemplo de README
github.com/GeekyTheory/Raspberry-Pi-Status
.gitignore
¿Qué hace el archivo .gitignore?
Con el archivo .gitignore creamos una configuración
para que ciertos archivos no formen parte del
repositorio.
Gracias
Mario Pérez Esteso
/MarioPerezEsteso
http://geekytheory.com
@_mario_perez
@geekytheory

Más contenido relacionado

La actualidad más candente

Versionando proyectos con Git, desarrollo de software colaborativo
Versionando proyectos con Git, desarrollo de software colaborativoVersionando proyectos con Git, desarrollo de software colaborativo
Versionando proyectos con Git, desarrollo de software colaborativoHernán Aguilera
 
Herramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMPHerramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMPKeopx
 
Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantesnscoder_mad
 
Control de versiones con GIT
Control de versiones con GITControl de versiones con GIT
Control de versiones con GITJulio Silva
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a GitSergio Rus
 
Curso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en GithubCurso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en GithubCarlos Huamaní
 
Git + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XIIGit + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XIIquaip
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque prácticoPatxi Gortázar
 
Git with Scrum en español
Git with Scrum en españolGit with Scrum en español
Git with Scrum en españolRamón Glez
 
Control de versiones con Git y Github
Control de versiones con Git y GithubControl de versiones con Git y Github
Control de versiones con Git y Githubguest638090
 
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora BlancoPresentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora BlancoAntonio Luque Bravo
 
El git nuestro de cada dia
El git nuestro de cada diaEl git nuestro de cada dia
El git nuestro de cada diaAlan Descoins
 
PPT Git GitHub
PPT Git GitHubPPT Git GitHub
PPT Git GitHubdrsevilla
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con gitJuan Vladimir
 
Git: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoGit: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoAprende Git
 

La actualidad más candente (20)

Versionando proyectos con Git, desarrollo de software colaborativo
Versionando proyectos con Git, desarrollo de software colaborativoVersionando proyectos con Git, desarrollo de software colaborativo
Versionando proyectos con Git, desarrollo de software colaborativo
 
Herramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMPHerramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMP
 
Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantes
 
Control de versiones con GIT
Control de versiones con GITControl de versiones con GIT
Control de versiones con GIT
 
Fundamentos de GIt y Github
Fundamentos de GIt y GithubFundamentos de GIt y Github
Fundamentos de GIt y Github
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Curso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en GithubCurso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en Github
 
Git + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XIIGit + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XII
 
Git / Guía Básica
Git / Guía BásicaGit / Guía Básica
Git / Guía Básica
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque práctico
 
Git with Scrum en español
Git with Scrum en españolGit with Scrum en español
Git with Scrum en español
 
Introducción a git y git hub
Introducción a git y git hubIntroducción a git y git hub
Introducción a git y git hub
 
Control de versiones con Git y Github
Control de versiones con Git y GithubControl de versiones con Git y Github
Control de versiones con Git y Github
 
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora BlancoPresentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
 
El git nuestro de cada dia
El git nuestro de cada diaEl git nuestro de cada dia
El git nuestro de cada dia
 
PPT Git GitHub
PPT Git GitHubPPT Git GitHub
PPT Git GitHub
 
Git - Gitlab
Git - GitlabGit - Gitlab
Git - Gitlab
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con git
 
Introducción a GIT
Introducción a GITIntroducción a GIT
Introducción a GIT
 
Git: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoGit: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativo
 

Similar a Tallerintroducciongit

Introducción a Git
Introducción a GitIntroducción a Git
Introducción a GitManuel Ceron
 
Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando GitHugo Gilmar Erazo
 
GIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdfGIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdfMartinBonuccelli
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasJosé Moreno
 
Induccion0_GitLab.pptx
Induccion0_GitLab.pptxInduccion0_GitLab.pptx
Induccion0_GitLab.pptxssuser3ff40a
 
Introducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y gitIntroducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y gitDrPantera
 
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicacionesGit y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicacionesParadigma Digital
 
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptxGuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptxfuenzalidarodrigo
 

Similar a Tallerintroducciongit (20)

Git y github básico
Git y github básicoGit y github básico
Git y github básico
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando Git
 
GIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdfGIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdf
 
Git (i) fork - commit - pull - push
Git (i)   fork - commit - pull - pushGit (i)   fork - commit - pull - push
Git (i) fork - commit - pull - push
 
Git.manual.usuario
Git.manual.usuarioGit.manual.usuario
Git.manual.usuario
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones Seguras
 
Aprendiendo GIT
Aprendiendo GITAprendiendo GIT
Aprendiendo GIT
 
Intro a GIT
Intro a GITIntro a GIT
Intro a GIT
 
Git res baz ec - final
Git   res baz ec - finalGit   res baz ec - final
Git res baz ec - final
 
Induccion0_GitLab.pptx
Induccion0_GitLab.pptxInduccion0_GitLab.pptx
Induccion0_GitLab.pptx
 
Un modelo exitoso para git
Un modelo exitoso para gitUn modelo exitoso para git
Un modelo exitoso para git
 
Git 01-introduccion
Git 01-introduccionGit 01-introduccion
Git 01-introduccion
 
Control de versiones
Control de versionesControl de versiones
Control de versiones
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Manual express de git
Manual express de gitManual express de git
Manual express de git
 
Introducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y gitIntroducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y git
 
Flujos de trabajo y mejores prácticas en git
Flujos de trabajo y mejores prácticas en gitFlujos de trabajo y mejores prácticas en git
Flujos de trabajo y mejores prácticas en git
 
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicacionesGit y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
 
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptxGuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
 

Tallerintroducciongit