Want to create interactive content? It’s easy in Genially!
42 - Taller de Git y GitHub
Mi equipo
Created on December 22, 2022
Start designing with a free template
Discover more than 1500 professional designs like these:
View
Practical Presentation
View
Smart Presentation
View
Essential Presentation
View
Akihabara Presentation
View
Pastel Color Presentation
View
Modern Presentation
View
Relaxing Presentation
Transcript
Bienvenidos
diapositivas
Piscina de
Taller de
Git y GitHub
6ª edición
Martes
Miércoles
Jueves
Lunes
Viernes
· tipos de tableros· issues y "tareas" · milestones e "hitos"
Proyectos
HTTPS y SSH
Clones y Forks
· HEAD· modificar ramas · fusionar ramas
Ramificación
Configuración
· definir cambios· añadir cambios · confirmar cambios
· repos remotos· publicar cambios· descargar cambios
Sincronización
Flujo de uso
· menú principal· funcionalidades · tipos de perfiles
GitHub
Stash
El contenido extra de esta sesión es más tiempo de práctica
Práctica final
Submódulos
Etiquetas
README
Aliases
Práctica III
Práctica I
Práctica IV
Práctica II
Sr. Galán NPC Ciberseguridad · Programación · Productividad 8 años de experiencia con Git y GitHub
._.
Universidad de Málaga ETSII
- Graduado en Ingeniería InformáticaTecnologías de la Información
42 Málaga
- Cybermentor en el Boot. de Ciberseguridad ( 2ª ed. )Abr. 23 - Jul. 23 ( 3 meses )
- Estudiante en el Boot. de Ciberseguridad ( 1ª ed. )Jul. 22 - Sep. 22 ( 2 meses )
Cloud y Olé
- Desarrollador · Administrador de SistemasMay. 24 - actualidad
Contacto y perfiles
Hispasec Sistemas S.L
- Coor. de intervenciones · SOC L2 · Analista de ciberseguridadFeb. 24 - Abr. 24 ( 3 meses )
- Técnico de intervenciones · SOC L1Nov. 23 - Ene. 24 ( 3 meses )
Introducción
00
Antes de empezar...
¿Por qué es bueno usar Git?
Agilidad, productividad y eficiencia
Compartir proyectos y colaborar en ellos
Necesario en el mundo laboral
No más copias de lo mismo
Diferencia de conceptos
GitHub
Git
Software de control de versionesde un proyecto
Sitio web de administración de repositorios
VS
Tecnología Sistema (local)
Plataforma Internet (online)
Fundamentos de Git local
Sesión 1
- Modificar la configuración de Git alterando su funcionamiento
- Usar Git sabiendo lo que hacemos y con buenas prácticas
- Crear nuestros propios comandos de Git para crear funcionalidades
- Ignorar archivos innecesarios para un repositorio con .gitignore
Configuración local y global
01
Ya que estamos, vamos a hacer las cosas bien
Configuración de Git
Archivo de configuración que se utiliza para personalizar la forma en que Git funciona en el sistema del usuario.
- Valores de configuración global: ~/.gitconfig
- Valores de configuración local: .git/config
Cambiar la configuración
- Modificando el archivo de texto que contiene las opciones de conguración y sus valores.
- Ejecutando comandos que modifican una opción concreta de la configuración.
Lo básico de Git
02
Los primeros pasos de todo buen programador
¿Qué es un repositorio?
" Un espacio centralizado donde se almacena, organiza, mantiene y difunde información digital, habitualmente archivos informáticos, que pueden contener trabajos científicos, conjuntos de datos o software. "
Wikipedia
Por otro lado, en la práctica...
.git
Una carpeta que contendrá información sobre las versiones de un software. Una carpeta es un repositorio si contiene una carpeta oculta llamada .git.
Inicializar un repositorio
Consiste en identificar una carpeta como un repositorio. Ya está, eso es todo.
¿Cómo se usa un repositorio local?
Git se usa para llevar un control de los cambios sobre un proyecto.
Hago cambios
Añado cambios
Confirmo cambios
Flujo de uso de Git
Área de Preparación (Staging Area)
Repositorio (Working Area)
Área de Trabajo (Working Area)
Área de Trabajo
La ubicación de los archivos en el ordenador (literalmente una carpeta).
Área de Preparación
Una zona de la memoria en la que se almacenan los archivos en un estado concreto antes de ser confirmados.
Repositorio
Área de Trabajo actualizada
Se han confirmado los cambios en esos archivos, y por tanto, el Área de Trabajo ha sido actualizada con nuevas modificaciones. Esto representa un estado del Repositorio.
¿Qué es un cambio?
" Un cambio es cualquier modificación sobre el contenido de un fichero, incluido la creación y eliminación del mismo. "
Añadir cambios
Consiste en indicar qué cambios pasarán al stage, para posteriormente ser guardados en commits.
Ver el estado del repositorio
Consiste en obtener información sobre los archivos que han sido modificados o añadidos al stage, así como de los archivos que aún no tienen seguimiento. En resumen, ofrece información sobre el estado actual del repositorio, en función de los cambios que hay en sus archivos.
Extraer cambios
Consiste en devolver cambios almacenados en el stage de nuevo al área de trabajo. Cabe destacar que esta acción no deshace los cambios, solo los devuelve al área de trabajo.
El archivo .gitignore
Excluye archivos o directorios de un repositorio, evitando que sean incluidos en el seguimiento de versiones.
- Utiliza patrones de globbing para especificar qué excluir, uno por línea.
- Tiene efecto sobre su ubicación y todas las carpetas inferiores, recursivamente.
¿Qué es un commit?
" Un commit es un punto en la historia del repositorio que representa un conjunto de cambios en los archivos. " Al historial de commits se le conoce como Árbol de Trabajo.
Estructura de un commit
Confirmar cambios
Crear un commit en la historia del repositorio con todos los cambios incluidos en el stage. Una vez creado, los cambios incluidos en ese commit se fijan en el historia del repositorio, permitiendo a los usuarios controlar y documentar los cambios realizados.
Revisar el árbol de trabajo
Útil para ver la historia del repositorio y para entender qué cambios se han realizado en el repositorio a lo largo del tiempo. También es útil para buscar commits concretos en base a su información, ya que ofrece muchos campos relevantes.
Modificar un commit
Permite añadir más cambios al último commit o modificar su mensaje. Útil cuando se ha realizado un commit y luego se ha descubierto un error o se han olvidado algunos cambios importantes; o bien corregir errores en el mensaje o proporcionar más información sobre los cambios realizados.
Deshacer un commit
Útil para deshacer cambios no deseados en un repositorio y para reorganizar la historia del repositorio. También es útil para rehacer commits que contienen errores o cambios no deseados
Flujo de uso de Git - resumen -
Área de Preparación (Staging Area)
Repositorio (Working Area)
Área de Trabajo (Working Area)
add
commit
reset
reset
status
log
El RTFManual
Las sagradas escrituras.
extra
Los Alias
Básicamente, un alias permite crear comandos de git personalizados usando otros comandos de git ya existentes, así como sus opciones.
Ramificación
Sesión 2
- Programar con ramas para organizarnos y colaborar más y mejor
- Usar etiquetas para marcar determinados puntos de la historia
Ramificación
03
Liberando al Kraken
¿Qué es una rama?
" Una rama es un puntero a un commit. " Normalmente las ramas se representan como secuencias de commits para una mayor comprensión.
Crear una rama
Las ramas se usan para organizar y aislar cambios, lo que permite trabajar de forma simultánea en conceptos independientes. Esto hace que sea más fácil colaborar con otros desarrolladores y hacer cambios sin tener que preocuparse por romper el código en la rama principal.
Cambiar de rama
Será necesario moverse de una rama a otra según la situación y las necesidades lo requieran, en función de los cambios y la estructura que siga el repositorio.
- Los cambios se arrastran entre ramas.
- Los cambios incompatibles impiden cambiar de rama.
Ejemplo
Fusionar cambios
Consiste en combinar los cambios de una rama en otra rama especificada. Útil cuando se han hecho cambios en varias ramas y se quieren combinar en una sola, o para integrar cambios de forma organizada y controlada al trabajar en proyectos colaborativos.
Ejemplo
Eliminar una rama
Como las ramas son punteros, borrar una rama es eliminar su referencia.
- Los commits no se eliminan salvo que se especifique.
- Los commits fusionados no se borran nunca.
Ejemplo
El Stash
Permite guardar los cambios en una "pila" temporal y recuperarlos más tarde, lo que facilita trabajar en varias tareas a la vez sin preocuparse de perder cambios pendientes. Útil cuando se necesita cambiar de rama o hacer una tarea urgente pero se tienen cambios no confirmados en el repositorio.
Ejemplo
Ejemplo de Libft - desarrollado individualmente -
extra
Las Etiquetas
Las etiquetas son punteros como las ramas, pero hacen referencia a un solo commit, no a un historial. Se usan para marcar puntos importantes en la historia de un repositorio; normalmente, puntos de publicación (v1.0, v2.0, ...).
Fundamentos de Git remoto
Sesión 3
- Definición de "clon" y conexión repositorios vía HTTPS o SSH
- Sincronizar cambios entre repositorios remotos y locales
- Definición de "submódulo" y casos de uso
Sincronización
04
La superautopista de los cambios
Protocolo SSH
Sincronización de repositorios segura y sin necesidad de ingresar credenciales cada vez que se realiza una conexión.
1. Crear un par de claves con el comando ssh-keygen.2. Pegar la clave pública en los ajustes de GitHub.
¿Qué es un repositorio remoto?
" Una copia de un repositorio que se encuentra en un servidor externo al que se puede acceder a través de Internet. "
¿Cómo se usa un repositorio remoto?
Repositorio local
Repositorio remoto
Publico cambios
Hago cambios
Añado cambios
Confirmo cambios
Descargo cambios
Vincular un repositorio
Consiste en enlazar un repositorio local con un repositorio remoto, lo que permite sincronizar el historial de cambios a través de Internet. Útil para poder trabajar en distintos entornos, compartir el trabajo realizado y colaborar con otros usuarios, o bien mantener una copia de seguridad de un proyecto.
¿Qué es un clon?
" Una copia exacta y local de un repositorio remoto. "
Clonar un repositorio
Consiste en descargar una copia de un repositorio remoto, incluyendo sus archivos y su historial de cambios.
Sincronización de repositorios
" Subir o descargar cambios manteniendo tanto el repositorio local como el repositorio remoto en un estado actualizado. " Hay que tener cuidado con las referencias, ya que una disparidad entre una referencia local y remota puede ocasionar conflictos.
Subir cambios
Actualizar el repositorio remoto con cambios locales. Los cambios se mueven por las ramas, por lo que será importante que en repositorios que se usen varias, se gestionen adecuadamente; si no se hace, dará lugar a errores de conflicto.
Ejemplo
Cambiar referencias remotas
Todo funciona mediante referencias, por lo que cambiarlas desde el repositorio local y volver a subirlas, sobreescribirá las referencias que haya en el repositorio remoto. Esto sirve para modificar ramas, etiquetas, historial de cambios... y es peligroso en proyectos colaborativos.
Ejemplo
Actualizar referencias remotas
Revisa las referencias remotas y actualiza el repositorio local con ellas. Esto no afecta a los cambios locales, solo sirve para saber si existen cambios en el repositorio remoto y descargar las referencias necesarias (commits, ramas, etiquetas...). Los cambios pueden aplicarse haciendo una fusión (merge) con las referencias actualizadas.
Descargar cambios
Actualizar el repositorio local con cambios remotos. Se trata de la función opuesta al push. pull = fetch + merge.
Ejemplo
extra
¿Qué es un submódulo?
" Un clon de un repositorio, dentro de otro repositorio. "
extra
¿Cómo se usa un submódulo?
Repositorio local
Repositorio remoto
Hago cambios
Añado cambios
Confirmo cambios
Publico cambios
Descargo cambios
Submódulo
Submódulo remoto
Hago cambios
Añado cambios
Confirmo cambios
Publico cambios
Descargo cambios
extra
Los Submódulos
Consiste en clonar un repositorio dentro de otro y asignarle seguimiento. Útil para dividir un proyecto grande en varios repositorios más pequeños y organizarlos de manera más clara, reutilizar código entre proyectos y mantener un control más preciso sobre las dependencias.
Fundamentos de GitHub
Sesión 4
- Definición de "fork", características y diferencias con los clones
- Funcionalidades y características de GitHub
- Trucos y consejos para construir un README útil y atractivo
GitHub Fundamentos
07
¡Basta de comandos! Por fin, una interfaz
¿Qué es un fork?
" Una copia exacta de un repositorio de otro usuario que se almacena en la cuenta del usuario que realizó el fork. " Esto permite a dicho usuario modificarlo sin afectar al repositorio original; o bien, realizar cambios y solicitar que se incluyan en el repositorio original, contribuyendo a la comunidad.
Diferencias entre "clon" y "fork"
fork
clon
Copia local de un repositorio remoto.
Copia remota de un repositorio remoto, vinculada al original.
VS
Concepto propio de Git
Concepto propio de GitHub(y otras plataformas) Permite interactuar con otros repositorios que no son tuyos
Página principal
Página de un repositorio
Página de un repositorio Issues, Labels y Milestones
Página de un repositorio Pull Requests
Página de un repositorio Proyectos
Página de un repositorio Wiki
Página de un usuario
Página de una organización
El fichero README
extra
- https://shields.io
- https://simpleicons.org
- https://github.com/matiassingers/awesome-readme
¡Gracias!