Clase 12 - GIT
Clase 12 - GIT
Clase 12 - GIT
grabada
Clase 12. JAVA INICIAL
Git
Temario
11 12 13
Local
Versionador de
código Centralizado
GIT
Distribuido
¿Qué es un versionador
de código?
Version Control System
(VCS)
Un versionador de código es una herramienta que
realiza el control de cambios en los archivos de un
programa.
El sistema de control de versiones registra los cambios
realizados en un archivo o conjunto de archivos a lo
largo del tiempo, de modo que se pueda recuperar
versiones específicas más adelante.
En este curso vamos a utilizar el control de versiones
para archivos .java pero esta herramienta permite
versionar casi todos los tipos de archivos que tengamos
en nuestra computadora, ej: excel, doc, etc.
Sistema de Control de
Versiones Locales
¿Cómo manejamos las
versiones actualmente?
Aunque no nos demos cuenta, cada uno de Este método es muy común porque es muy
nosotros seguramente ha implementado un sencillo, pero también es tremendamente
sistema de control de versiones casero. propenso a errores. Es fácil olvidar qué
directorio usamos y guardar accidentalmente
Nuestro “VCS Casero” consiste en copiar los en el archivo equivocado o sobrescribir
archivos a otro directorio (posiblemente archivos que no querías.
indicando la fecha y hora en que lo hicieron.
Ej: ProyectoFinal2022-02-01_12-23).
¿Qué problemas tenemos con
este “VCS Casero”?
Supongamos que el proyecto final se puede Para resolver este problema un encargado
realizar en equipo, los miembros del equipo por equipo debería enviar una copia
no pueden acceder fácilmente a nuestra actualizada a cada integrante, luego recibir
computadora para obtener una copia que los cambios de cada uno, integrar los
tienen que modificar y posteriormente cambios y versionar.
versionarla a mano. Una práctica inviable en proyectos de
desarrollo (también para este curso)
Sistema de Control de
Versiones Centralizado
Sistema de Control de
Versiones Centralizado
Para solucionar el problema planteado
anteriormente se desarrolló el Sistema de
Control de Versiones Centralizado (CVSC).
✓ Cada clon es realmente una copia ✓ Esto permite establecer varios flujos
completa de todos los datos. de trabajo que no son posibles en
sistemas centralizados, como pueden
ser los modelos jerárquicos.
Importancia de un
versionador
✓ Realizar un seguimiento de los cambios.
✓ Comparar cambios a lo largo del
tiempo
✓ Regresar a versiones anteriores de los
archivos.
✓ Ver quién modificó por última vez
algo que pueda estar causando
✓ Regresar a una versión anterior del problemas, ver quién introdujo un
proyecto completo problema y cuándo.
Importancia de un
versionador
REEMPLAZAR
Usar un VCS nos brinda una funcionalidad muy
POR IMAGEN
importante a los desarrolladores, porque si arruinamos o
perdemos archivos, será posible recuperarlos fácilmente.
Fuente: Centralizado vs Distribuido | Ytimg
CUADRO COMPARATIVO
El servidor le provee el último código a la máquina La base del código es espejada en la pc de cada
desarrollador
No hay repositorios locales Hay repositorios locales
Para comprimir, considera a la columna entera Considera columnas totales así como parciales
Una falla en el servidor central finaliza todas las Una falla en el servidor principal no afecta el
versiones rendimiento
Para pensar
¿Qué diferencias existen entre los sistemas de
control de versiones centralizados y los
distribuidos?
Fuente: GIT
Línea de Comandos
La línea de comandos es el único lugar en
donde puedes ejecutar todos los comandos
de Git.
Todos los alumnos tendrán las herramientas
de línea de comandos instaladas y
disponibles.
Descargar la aplicación del sitio oficial de GIT
Para cada sistema operativo disponible tiene
el manual de instalación.
Instalación
Instalación
para windows
Instalación
para macOS
Instalación
para Linux
Parte I REEMPLAZAR
POR IMAGEN
Instalación
para Linux
Parte II REEMPLAZAR
POR IMAGEN
Configuración
Paso a paso
Momento 1 - Identidad
1 2
Momento 1 Momento 2
Fuente: Programmerclick
Chequeando el estado
La herramienta principal para determinar qué ✓ Esto significa que tenemos un directorio
archivos están en qué estado es el comando de trabajo limpio, es decir que no hay
git status. archivos trackeados que estén
modificados.
Si tenemos este mensaje:
$ git status ✓ Git no encuentra archivos untracked.
On branch master
Your branch is up-to-date with ✓ El comando nos indica en cuál rama
'origin/master'. estás y nos informa que no ha variado
nothing to commit, working tree con respecto a la misma rama en el
clean servidor.
Agregando nuevos archivos
Supongamos que agregamos el archivo Para Git, untracked son los archivos que no
CoderHouse.md a nuestro proyecto, cómo estaban en el snapshot(commit) anterior y
este archivo es nuevo si ejecutamos el que aún no están estado stage.
comando git status
Podemos ver que el archivo CoderHouse.md
está untracked porque se encuentra dentro
del listado de untracked files.
Agregando nuevos archivos
Para que un archivo nuevo cambie de estado Se dice que esta staged porque se
untracked a tracked se debe ejecutar el encuentra dentro del listado de
comando git add <<NOMBRE ARCHIVO>>. archivos “Changes to be committed”
Si volvemos a ver el estado nos encontramos
que el archivo esta tracked y en stage listo
para hacer commit
Stagear archivos modificados
Al archivo que acabamos de crear, modificar y stagear,
ahora lo vamos a modificar y vamos a ver nuevamente su
status.
Stagear archivos modificados
✓ Stage archivos
Stagear archivos modificados
Importante notar que el mismo archivo está ¿Por qué? Cuando se ejecuta git add, Git
en dos estados distintos: poné el archivo en Stage, si realizamos un
✓ Staged commit ahora sólo se incluirá la versión del
✓ Unstaged archivo que está en Stage y quedará en
nuestro working copy la versión modificada.
Clickear en el ícono de la
cuenta y registrarse
Momento 2 - Creación proyecto
Momento 6 Verificación
Momento 1 - Cambiar mensaje
Vamos nuevamente a la consola para @SpringBootApplication
@RestController
ver que GIT nos indica que tenemos public class DemoApplication {
un archivo modificado. Usamos el
comando git status @GetMapping("/")
String home() {
return "Coder House";
}
Duración: 20 minutos
ABM Entidad Cliente v2
ACTIVIDAD EN CLASE
ABM Entidad
Cliente v2
A partir de actividad en clase desarrollada en la clase
8 se pide:
Segunda entrega
Objetivos generales Objetivos específicos
✓ tomar el proyecto de la primera entrega para ✓ Cada entidad definida en la primera
convertirlo en un proyecto Spring Boot entrega debe usar la arquitectura de 3
✓ Utilizar alguna librería de jpa para poder capas para ser manipulada.
conectarse a la base de datos. ✓ Se espera que las modificaciones se
realicen en cascada.
✓ Generar los scripts de inicialización de
datos para las tablas creadas en la
primera entrega
ENTREGA DEL PROYECTO FINAL
Segunda entrega
Se debe entregar Sugerencias
✓ un archivo en formato zip o rar
✓ Se sugiere que el código esté bien
✓ Los scripts de base de datos para la
documentado.
inicialización del proyecto
✓ Cada entidad debe tener 3 capas,
Formato Controller, Service, Repository
✓ Proyecto Java en formato jar ejecutable
respetando la siguiente nomenclatura
“FacturacionSegundaEntrega+Apellido”.
¿Preguntas?
Opina y valora
esta clase
Resumen
de la clase hoy
✓ Versionador de código
✓ GIT
✓ Paso a paso de GIT
Encuesta
sobre esta clase
Por encuestas de Zoom
¡Terminamos la clase!