Tallerintroducciongit

1,455 views

Published on

Tallerintroducciongit

  1. 1. 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.
  2. 2. ¿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.
  3. 3. Tipos de SCV - Locales - Centralizados - Distribuidos
  4. 4. 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.
  5. 5. 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.
  6. 6. SCV Centralizados Problema: A pesar de que pueden trabajar en el mismo proyecto, no pueden trabajar con el mismo archivo.
  7. 7. SCV Distribuido Hay una copia en un servidor y varias copias en local. Cada programador puede desarrollar su propia versión, creando diferentes ramas.
  8. 8. ¿Qué es Git? Git fue diseñado por Linus Torvalds y es uno de los sistemas de control de versiones más populares.
  9. 9. ¿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.
  10. 10. ¿Qué es Git? Principales características: - Velocidad. - Sencillo diseño. - Desarrollo no lineal. - SCV distribuido. - Capaz de manejar grandes proyectos.
  11. 11. ¿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
  12. 12. 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).
  13. 13. Instalación de Git en Windows 1. http://msysgit.github.io/ 2. Descargamos el ejecutable. 3. Lo instalamos con la configuración por defecto.
  14. 14. Varios servicios de hosting Los dos más importantes son:
  15. 15. Varios servicios de hosting vs.
  16. 16. Github Creamos una cuenta https://github.com/
  17. 17. 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
  18. 18. Configurando Git Comprobamos si la configuración es correcta: $ git config --list $ git config user.name $ git config user.email
  19. 19. 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]
  20. 20. 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.
  21. 21. 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>
  22. 22. Trabajando con Git 3. Inicializar repositorio en local. 4. Add y commit. $ git init $ git add . $ git commit -m “Initial commit”
  23. 23. 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:
  24. 24. Trabajando con Git ¿Os gusta la terminal?
  25. 25. Gestores gráficos Existen varios clientes gráficos http://git-scm.com/downloads/guis
  26. 26. 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.
  27. 27. Gestores gráficos Principal ventaja de SmartGit: multiplataforma.
  28. 28. Gestores gráficos Utilizaré SmartGit http://www.syntevo.com/smartgithg/download
  29. 29. Trabajando con Git Vamos a hacer el mismo ejemplo de antes, pero con un gestor gráfico de Git (SmartGit).
  30. 30. 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.
  31. 31. 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>
  32. 32. Trabajando con Git 3. Inicializar repositorio en local.
  33. 33. Trabajando con Git 4. Add y commit.
  34. 34. Trabajando con Git 4. Add y commit. Todavía no podemos hacer push porque no tenemos un repositorio remoto.
  35. 35. Trabajando con Git 5. Push a Github. Creamos un nuevo repostiorio en Github para alojar este nuevo proyecto.
  36. 36. Trabajando con Git 5. Push a Github. Añadimos la URL remota.
  37. 37. Trabajando con Git 5. Push a Github. ¡Ahora toca pushear!
  38. 38. 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>
  39. 39. Trabajando con Git Commit de: name.html
  40. 40. Trabajando con Git Amend: surname.html
  41. 41. Trabajando con Git Push
  42. 42. Trabajando con Git Historial: Gracias a él conocemos los cambios que ha habido en el repositorio.
  43. 43. Trabajando con Git ¿Y si queremos deshacer cambios? Podemos deshacer los cambios y volver a un determinado punto del historial del repositorio.
  44. 44. Trabajando con Git ¿Y si queremos deshacer cambios? Podemos deshacer los cambios y volver a un determinado punto del historial del repositorio.
  45. 45. 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.
  46. 46. Trabajando con Git ¿Y si queremos deshacer cambios? Resultado:
  47. 47. Trabajando con Git RAMAS Uno de los puntos fuertes de Git es su sistema de ramificaciones.
  48. 48. 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.
  49. 49. 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?
  50. 50. 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.
  51. 51. Trabajando con Git RAMAS Añadimos una nueva rama para desarrollar.
  52. 52. 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>
  53. 53. Trabajando con Git RAMAS Hacemos commit en la rama de desarrollo.
  54. 54. Trabajando con Git RAMAS
  55. 55. Trabajando con Git RAMAS
  56. 56. Trabajando con Git RAMAS
  57. 57. Trabajando con Git Ramas Pull request desde Github.
  58. 58. Trabajando con Git Ramas Sincronizar el repositorio en SmartGit.
  59. 59. 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.
  60. 60. 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.
  61. 61. README Ejemplo de README github.com/GeekyTheory/Raspberry-Pi-Status
  62. 62. .gitignore ¿Qué hace el archivo .gitignore? Con el archivo .gitignore creamos una configuración para que ciertos archivos no formen parte del repositorio.
  63. 63. Gracias Mario Pérez Esteso
  64. 64. /MarioPerezEsteso http://geekytheory.com @_mario_perez @geekytheory

×