Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Taller de Git & GitHub

Taller de Git & GitHub

Taller de Git & Github para principiantes

Juan Luis García Borrego

October 25, 2018
Tweet

More Decks by Juan Luis García Borrego

Other Decks in Programming

Transcript

  1. Taller práctico de Git & GitHub PHP Sevilla 25 Octubre

    2018 Jose Antonio Dorado @jadoradoce Juan Luis García @juanlugarciab
  2. 2

  3. Presentación Juan Luis García Borrego Desarrollador de software, principalmente basado

    en el framework PHP Symfony. @JuanluGarciaB Jose Antonio Dorado Muchos años enredando con código, principalmente con PHP y Symfony. @jadoradoce 3
  4. ¿Qué es un sistema de control de versiones? ▪ Sistema

    para gestionar las ediciones o revisiones que se realizan sobre un producto. ▪ No aplica sólo al Software (documentos, fotografías…) ▪ Existen muchas herramientas: CVS, Subversion, SourceSafe, ClearCase, Darcs, Bazaar, Plastic SCM, Git, SCCS, Mercurial, Perforce, Fossil SCM, Team Foundation Server. ▪ Modelo centralizado vs Modelo distribuido 5
  5. ¿Por qué debemos usarlo? Ventajas ▪ Seguridad (Pérdida de código

    y de cambios) ▪ Trabajo colaborativo ▪ Volver a una versión previa ▪ Trabajo paralelo en diferentes ramas (Ocultar features específicas…) ▪ Facilidad para compartir código (Sirve de CV) ▪ Despliegue automático ▪ Integración de otras herramientas que potencian el desarrollo 6
  6. Un poco de historia Creado en 2005 Creado por Linus

    Torvalds Colaboran +280 programad ores 9
  7. ¿Cómo funciona Git? (II) Funciona en local Para realizar operaciones

    con Git no hay que salir al servidor Sólo añade información No borra contenidos anteriores, podemos trabajar sin miedo Tiene integridad No se pueden cambiar archivos sin que Git lo sepa Tiene tres estados Working directory, staging directory y Git directory (repository) 11
  8. Comandos básicos ▪ mkdir Crea una directorio Ej: mkdir taller-git

    ▪ cd Te lleva a un directorio. Ej: cd taller-git ▪ cd .. Desde el directorio actual, va al directorio padre ▪ ls Lista el contenido del directorio. Ej: ls ▪ touch Crea archivos. Ej: touch readme.md ▪ cat Muestra el contenido de un archivo 13
  9. Configuración del usuario ▪ git config --global user.name “Name” ▪

    git config --global user.email “[email protected]” ▪ git config --global color.ui auto 14
  10. Staging area Área de preparación. Los archivos están listos para

    ser guardados en el repositorio. 17 Working directory Staging area Repository
  11. Repository Almacena permanentemente los archivos tal y como están en

    el Staging Area en el directorio .git 18 Working directory Staging area Repository
  12. Archivos Directorio del proyecto donde están todos los archivos. Ejemplo:

    ▪ touch index.html ▪ git status 22 Working directory Staging area Repository
  13. git add Añadimos archivos al Staging Area usando Ejemplo: ▪

    git add index.html ▪ git add . (añade todos los archivos del working directory) ▪ git status - Nuestro estado 23 Working directory Staging area Repository
  14. git commit Guardamos nuestros cambios en Repository Ejemplo: ▪ git

    commit -m ”mensaje acerca de los cambios” ▪ git status - Nuestro estado ▪ git log - Historial de commits 24 Working directory Staging area Repository
  15. Práctica 1º Creamos un proyecto nuevo - mkdir taller-git-php-sevilla -

    cd taller-git-php-sevilla - touch index.html - Añadimos texto en index.html 2º Inicializar git en el proyecto - git init 3 º Añadir a staging area - git add index.html o git add . 4º Guardar archivos en el repositorio - git commit -m “proyecto inicializado” Añade varios ficheros más y repite el ciclo. Ejemplo: - about.html - contact.html NOTA Usa git status después de cada operación para ver su estado. 25
  16. git log Muestra tu historial de commits git log --oneline

    Muestra un resumen del historial de commits 26
  17. tag Utilizamos las etiquetas para identificar los avances concretos de

    nuestro proyecto. Ej: El commit d2746d1e66e0202a1902d74fc75f puede ser identificado por “v.1” 27
  18. git branch Las ramas nos permiten aplicar diferentes versiones/estados al

    proyecto. Por defecto la rama principal es master 32
  19. git checkout branch Cambiar de rama. Ej: git checkout develop

    git checkout además tambien nos permite movernos por commits y tags. Ej: git checkout v1 / git checkout 5d546ac 36
  20. git merge branch Fusionar ramas Ej: Tenemos la rama master

    y develop. Vamos a fusionar la rama develop a master. - git checkout master - git merge develop 37
  21. Práctica 1º Creamos la rama develop - git branch develop

    2º Nos posicionamos en ella - git checkout develop 3 º Creamos un archivo - touch readme.md - Editamos el archivo > Taller de Git & Github - git add . - git commit -m “readme añadido” 4º Nos posicionamos en la rama master - git checkout master Vemos que el archivo creado en el paso anterior no está en esta rama. 5º Fusion develop a master Ejemplo: - git merge develop NOTA Usa git status, git log para ir viendo el progreso 39
  22. git README.md Archivo de texto escrito en markdown. Es usado

    para añadir documentación repositorio. 40
  23. Práctica 1º Ir a la rama develop - git checkout

    develop 2º Creamos un directorio cache - mkdir cache - ls - cd cache - touch file1.txt - cd .. - git status 3 º Creamos .gitignore - touch .gitignore - Editamos el archivo /cache - git status - git add . - git commit -m “git ignore añadido” 4º Nos posicionamos en la rama master - git checkout master Vemos el directorio /cache pero al subir el repositorio al repositorio remoto no subirá los documentos o archivos de .gitignore 5º Fusion develop a master Ejemplo: - git merge develop NOTA Usa git status, git log para ir viendo el progreso 42
  24. ¿Qué es GitHub? ▪ Git != Github ▪ Plataforma para

    alojar proyectos ▪ Repositorios públicos y privados ▪ Alternativas: GForge, GNU Savannah, Google Code, Launchpad, SourceForge, Bitbucket, Gitorious, Assembla, GitLab ▪ Nació en 2008 y fue adquirida por Microsoft en 2018 por 7.500 millones de $ 44
  25. git remote add nombre url Añadir repositorio remoto Ej: git

    remote add origin [email protected]:JuanLuisGarciaBorrego/taller-git-phpsevilla.git 46
  26. git pull Descarga los cambios del repositorio remoto al local

    Ej: Si estamos en la rama master - git pull baja los cambios del repositorio remoto al tu rama master. También podemos usar git pull origin master 47
  27. git push 48 Sube los cambios del repositorio local al

    remoto Ej: Si estamos en la rama master - git pull baja los cambios del repositorio remoto al tu rama master. También podemos usar git pull origin master, origin es el nombre por defecto del repo remoto
  28. SSH A través de nuestra clave pública podemos realizar operaciones

    con nuestra cuenta de github sin necesidad de usar nuestro usuario/contraseña. Para configurar: https://github.com/settings/keys 49
  29. 52

  30. 53

  31. Clonar un repositorio Descarga un repositorio a tu equipo -

    git clone [email protected]:JuanLuisGarciaBorrego/taller-git-phpsevilla.git 54
  32. 55

  33. 57

  34. Github pages Permite usar github como servidor de tu web.

    Solo permite archivos estáticos (html, css, javascript, ...). 59
  35. Eliminar commit ▪ git reset --soft commit Elimina el commit

    y deja los datos en stage area ▪ git reset --mixed commit Elimina el commit y deja los datos en el working directory ▪ git reset --hard commit Borra todo excepto los archivos nuevos creados (git solo borra los datos añadidos pero no puede borrar archivos del directorio) 62
  36. Git flow Git flow es una metodología para trabajar en

    equipo URL: https://danielkummer.github.io/git-flow-cheatsheet/ 64
  37. Gracias! ¿Alguna pregunta? Puedes encontrarnos en twitter: ▪ Juan Luis

    García @JuanluGarciaB ▪ Jose Antonio @jadoradoce 65