Want to make creations as awesome as this one?

Transcript

Acceder a las diapositivas

Bienvenidos

venidos

Bienbenidos

Bien

benidos

5ª edición

Git y GitHub(

Remoto

Local

Similitudes y diferencias características

Perfiles de usuario y de organización

Gestión de proyectos y reparto de tareas

Projects y Wikis

Entender y colaborar en repositorios

Issues, Milestones y Pull Requests

El poder del Octocat y cómo usarlo

07 - Fundamentos de GitHub

Conexión entre local y remoto

06 - Fundamentos de Git remoto

Cosas interesantes a tener en cuenta

05 - Funcionalidades extra

El poder del Kraken y cómo usarlo

04 - Ramificación

Primeros pasos de todo programador

03 - Fundamentos de Git local

Preparando el entorno de trabajo

02 - Configuración inicial

Qué saber antes de empezar

01 - Introducción

Índice

Parte 1Git y los repositorios locales

Git y GitHub(

Una guía no tan intergaláctica para los estudiantes de 42 Málagasobre cómo utilizar Git y GitHub, buenas prácticas y recomendaciones

01

Introducción

Antes de empezar...

¿Por qué es bueno usar Git?

Necesario en el mundo laboral

No más copias de lo mismo

Compartir proyectos y colaborar en ellos

Agilidad, productividad y eficiencia

Diferencia de conceptos

PlataformaOnlinePúblico / privado

Sitio web de administración de repositorios

TecnologíaLocalPrivado

Software de control de versionesde un proyecto

VS

GitHub

Git

02

Configuracióninicial

Ya que estamos, vamos a hacer las cosas bien

  • Valores de configuración global: ~/.gitconfig
  • Valores de configuración local: .git/config

Configuración de Git

Archivo de configuración que se utiliza para personalizar la forma en que Git funciona en el sistema del usuario.

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.

1. Crear un par de claves con el comando ssh-keygen.2. Pegar la clave pública en los ajustes de GitHub.

Protocolo SSH

Sincronización de repositorios segura y sin necesidad de ingresar credenciales cada vez que se realiza una conexión.

03

Git localFundamentos

Los primeros pasos de todo buen programador

¿Qué es un repositorio?

Wikipedia

" 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. "

.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.

Por otro lado,en la práctica...

Inicializar un repositorio

Consiste en identificar una carpeta como un repositorio.Ya está, eso es todo.

Confirmocambios

Añadocambios

Hagocambios

¿Cómo se usa un repositorio local?

Git se usa para llevar un control de los cambios sobre un proyecto.Este control se hace de la siguiente forma:

Flujo de uso de Git

Repositorio(Working Area)

Área de Preparación(Staging 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.

Área de Trabajo actualizada

Repositorio

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.

¿Qué es un commit?

" Un commit es un punto en la historia del repositorio querepresenta un conjunto de cambios en los archivos. "Además, 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

reset
reset
commit
add
log
status

Flujo de uso de Git- resumen -

Repositorio(Working Area)

Área de Preparación(Staging Area)

Área de Trabajo(Working Area)

04

Ramificación

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

Como una rama es una copia independiente del repositorio en la que se pueden realizar cambios sin afectar a otra 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.

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 -

Comandos útiles para mejorar la experiencia

05

Funcionalidades extra

Cosas que no sabía dónde colar en otras secciones

Los Alias

Básicamente, un alias permite crear comandos de git personalizados usando otros comandos de git ya existentes, así como sus opciones.

Las Etiquetas

Se usan para marcar puntos importantes en la historia de un repositorio; normalmente, puntos de publicación (v1.0, v2.0, ...).Sus comandos siguen una sintaxis similar a los comandos de las ramas.

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.

El RTFManual

Las sagradas escrituras.

Hispasec Sistemas S.LTécnico de SOC L2 · Coordinador de intervencionesNov. 23 - Abr. 24

._.

Sr. Galán antgalanCiberseguridad · ProductividadUsando Git y GitHub desde hace 8 años

Bootcamp de CiberseguridadEstudiante Jul. 23 - Sep. 23 (1ª ed.)Mentor Mar. 23 - Jun. 23 (2ª ed.)

Universidad de MálagaGraduado en Ingeniería InformáticaTecnologías de la Información

Información de contacto y perfiles

Sobre mí

Parte 2GitHub y los repositorios remotos

Git y GitHub(

Una guía no tan intergaláctica para los estudiantes de 42 Málagasobre cómo utilizar Git y GitHub, buenas prácticas y recomendaciones

06

Git remotoFundamentos

La superautopista de los cambios

¿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. "

Repositorio remoto

Descargo cambios

Publico cambios

Confirmocambios

Añadocambios

Hagocambios

Repositorio local

¿Cómo se usa un repositorio remoto?

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 clone?

" 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.

¿Qué es un submódulo?

" Un clon de un repositorio, dentro de otro repositorio. "

Descargo cambios

Publico cambios

Descargo cambios

Publico cambios

Submódulo remoto
Repositorio remoto

Confirmocambios

Confirmocambios

Añadocambios

Añadocambios

Hagocambios

Hagocambios

Submódulo

¿Cómo se usa un submódulo?

Repositorio local

Tratamiento de 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.

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

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.

Cambiar referencias remotas

Ejemplo

Actualizar referencias remotas

Revisa las referencias remotas y actualiza el repositorio local con ellas.Esta acción no afecta a los cambios locales, sino que sirve para saber si el repositorio remoto ha sido modificado y, en caso de ser así, descargue las referencias (commits, ramas, tags...) que sean necesarias.Los cambios pueden aplicarse haciendo una fusión (merge) con las referencias actualizadas.

Descargar cambios

Actualizar el repositorio local con cambios remotos.Literalmente la función opuesta al push: todo lo que se tuvo en cuenta en esa sección es aplicable a esta, la única diferencia es que ahora los cambios van en la dirección opuesta.Corresponde a hacer fetch + merge.

Ejemplo

07

GitHubFundamentos

¡Basta de comandos! Por fin, una interfaz

¿Qué es un fork?

" Una copia exacta de un repositorio de otro usuario que sealmacena en la cuenta del usuario que realizó el fork. "Esto permite a dicho usuario modificarlo y experimentar con él sin afectar al repositorio original; o bien, realizar cambios y solicitar que se incluyan en el repositorio original, contribuyendo a la comunidad.

clon

fork

·.·

·.·

._.

._.

Repositorio remoto B
Repositorio remoto A- forked -
Repositorio remoto A
Repositorio remoto A
Repositorio local "A"
Repositorio local A
Repositorio local A- clonado -

Clon VS fork

Página principal

Página de un repositorio

Página de un repositorioIssues, Labels y Milestones

Página de un repositorioPull Requests

Página de un repositorioProyectos

Página de un repositorioWiki

Página de un usuario

Página de una organización

¡Gracias!