La Gestión dela Configuración del Software (SCM - Software
Configuration Management) es un proceso dentro de la ingeniería
de software que se encarga de controlar, organizar y rastrear
cambios en el software a lo largo de su ciclo de vida.
Su propósito es garantizar que el software sea consistente,
reproducible y libre de errores introducidos por cambios
descontrolados.
Gestión de Configuración
2
(c) 2025 Lic. Lucía Blanc
3.
Principales actividades dela Gestión de la
Configuración
● Control de versiones
● Gestión de cambios
● Identificación de configuración
● Control de configuración
● Auditoría y control de calidad
3
(c) 2025 Lic. Lucía Blanc
4.
● Facilita lacolaboración en equipos de desarrollo.
● Reduce el riesgo de errores por cambios accidentales o
conflictos de versiones.
● Permite la trazabilidad y auditoría de modificaciones.
● Mejora la capacidad de recuperación ante fallos o regresiones.
Beneficios de la Gestión de la Configuración
4
(c) 2025 Lic. Lucía Blanc
Gestión de versiones
Initializeproject
Add top navbar
Add first row
Add bottom row
Add dark theme
6
(c) 2025 Lic. Lucía Blanc
7.
Gestión de versiones
Initializeproject
Add top navbar
Add first row
Add bottom row
Add dark theme
Add third row
Add footer
7
(c) 2025 Lic. Lucía Blanc
8.
¿Qué es Git?
“Gitis a version control system. A version control
system is a piece of software designed to keep track of
the changes made to files over time.”
Fragmento de “Introducing GitHub” - Brent Beer
https://git-scm.com/book/en/v2
8
(c) 2025 Lic. Lucía Blanc
9.
Historia
● Fue creadoen 2005 por Linus Torvalds.
● Se pensó con los siguientes objetivos:
○ Velocidad
○ Diseño sencillo
○ Gran soporte para desarrollo no lineal
○ Completamente distribuido
○ Capaz de manejar grandes proyectos eficientemente
9
(c) 2025 Lic. Lucía Blanc
10.
¿Por qué usarGit?
● Capacidad de deshacer cambios
● Historial completo de todos los cambios
● Documentación del motivo por el cual se realizaron los cambios
● La confianza para cambiar cualquier cosa
● Múltiples versiones del proyecto
● La capacidad de resolver conflictos
● Flujos independientes de trabajo
10
(c) 2025 Lic. Lucía Blanc
11.
¿Qué es GitHub?
“GitHubis a platform where you can upload a copy of
your Git repository (often shortened to repo), hosted
either on GitHub.com, by your company on a cloud
provider (like Azure, AWS, or IBM Bluemix), or on your
company’s own servers behind its firewall.”
Fragmento de “Introducing GitHub” - Brent Beer
11
(c) 2025 Lic. Lucía Blanc
12.
¿Por qué usarGitHub?
● Documentar requisitos
● Colaborar en diferentes flujos de trabajo
● Revisar el trabajo en progreso
● Ver el progreso del equipo
12
(c) 2025 Lic. Lucía Blanc
13.
Configuración inicial deGit y Github
● Crear una cuenta en GitHub https://github.com
● Instalar git: https://git-scm.com/
● Chequear la instalación mediante git --version
● Configurar Git en la terminal:
git config --global user.name "Tu Nombre"
git config --global user.email "tuemail@example.com"
13
(c) 2025 Lic. Lucía Blanc
14.
Un Personal AccessToken (PAT) es como una "contraseña especial"
con permisos específicos.
Pasos para usar un PAT:
1. Ir a GitHub → Configuración → Developer settings → Personal Access Tokens.
2. Crear un nuevo token con los permisos que necesites.
3. Guardar el token.
4. Usarlo en lugar de la contraseña al hacer git push, git pull, etc.
Autenticación: Token de Acceso Personal (PAT)
14
(c) 2025 Lic. Lucía Blanc
15.
Las claves SSHson credenciales de acceso que se utilizan para
conectarse a servidores remotos de manera segura, sin escribir usuario y
contraseña cada vez.
Pasos para configurar SSH:
1. Generar una clave SSH en tu computadora (si no tienes una):
ssh-keygen -t ed25519 -C "tu_email@example.com"
2. Agregar la clave SSH a tu cuenta de GitHub copiando la clave pública con:
cat ~/.ssh/id_ed25519.pub
3. Posteriormente se pega el contenido en GitHub → Configuración → SSH y GPG keys → Nueva
clave SSH.
4. Probar la conexión desde la consola mediante: ssh -T git@github.com
5. Si todo va bien, verás un mensaje tipo:
"Hi tu_usuario! You've successfully authenticated, but GitHub does not provide shell access."
Autenticación: SSH
15
(c) 2025 Lic. Lucía Blanc
16.
Autenticación: GitHub CLI(gh)
16
GitHub tiene su propia herramienta en la terminal llamada GitHub CLI
(gh), que facilita la autenticación y otras tareas.
Pasos para autenticarse con gh:
1. Instalar GitHub CLI (descargar aquí).
2. Ejecutar: gh auth login
3. Seguir las instrucciones en pantalla para autenticarse con SSH o un token PAT.
Con gh, se pueden crear repos, gestionar PRs y más opciones desde la terminal.
(c) 2025 Lic. Lucía Blanc
17.
Autenticación: 2FA
La autenticaciónen dos pasos (2FA) es una capa extra de seguridad para proteger tu
cuenta de GitHub.
Cuando activas 2FA, además de tu contraseña, necesitas un código de verificación
temporal generado por una app o enviado por SMS para iniciar sesión.
Pasos para activar 2FA:
1. Ve a GitHub → Configuración → Seguridad → Two-factor authentication
2. Haz clic en "Enable two-factor authentication"
3. Elige cómo recibir los códigos:
a. App de autenticación (recomendado) → Usa apps como Google Authenticator, Authy
o Microsoft Authenticator.
b. SMS → Recibirás un código por mensaje de texto.
4. Escanea el código QR con la app o introduce el código manualmente.
17
(c) 2025 Lic. Lucía Blanc
18.
Un repositorio esel lugar donde puedes almacenar el código, los
archivos y el historial de revisiones de cada archivo. Los repositorios
pueden contar con múltiples colaboradores y pueden ser públicos o
privados.
Crear un repositorio
Ej: https://github.com/twbs/bootstrap
18
(c) 2025 Lic. Lucía Blanc
19.
Crear un repositorio(desde web)
● Dirigirse a https://github.com/new para crear repositorio o desde
Profile > Your repositories > New
19
(c) 2025 Lic. Lucía Blanc
Repositorio
Code (Código)
Se almacenatodo el código del proyecto.
● Es posible navegar por las carpetas y archivos del repositorio.
● Ver el historial de commits, branches y el archivo README.md.
● Descargar el repositorio (Code → Download ZIP) o clonarlo con Git
22
(c) 2025 Lic. Lucía Blanc
23.
Repositorio
Issues (Problemas oTareas)
Sección donde los colaboradores pueden reportar errores, sugerir
mejoras o discutir cambios en el proyecto.
Cada "issue" tiene:
- Un título y descripción.
- Etiquetas para clasificarlo (bug, enhancement, help wanted).
- Asignaciones a personas responsables.
23
(c) 2025 Lic. Lucía Blanc
24.
Repositorio
Pull Requests (PRs)
Segestionan las propuestas de cambios en el código antes de
fusionarlas al código principal.
24
(c) 2025 Lic. Lucía Blanc
25.
Repositorio
Actions (Acciones)
Se usanpara ejecutar pruebas automáticamente cuando alguien sube
código.
Puedes definir flujos de trabajo con GitHub Actions.
Útil para compilar código, ejecutar pruebas y desplegar
aplicaciones.
25
(c) 2025 Lic. Lucía Blanc
26.
Projects (Proyectos)
Sección paraorganizar tareas en tableros estilo Kanban (como
Trello).
Puedes gestionar tareas del equipo.
Asignar issues a cada columna (To Do, In Progress, Done).
Repositorio
26
(c) 2025 Lic. Lucía Blanc
27.
Repositorio
Wiki
Espacio donde puedesdocumentar el proyecto.
Se usa para explicar cómo usar el código, configurar el entorno y
aportar al proyecto.
Es como un mini sitio web dentro del repositorio.
27
(c) 2025 Lic. Lucía Blanc
28.
Security (Seguridad)
Revisión delcódigo en busca de vulnerabilidades.
Es posible configurar alertas de seguridad.
Permite analizar dependencias en busca de fallos conocidos.
Repositorio
28
(c) 2025 Lic. Lucía Blanc
29.
Repositorio
Insights (Estadísticas ymétricas)
Muestra gráficos sobre el repositorio, como:
● Quiénes han contribuido.
● Número de commits.
● Actividad del proyecto.
29
(c) 2025 Lic. Lucía Blanc
30.
Repositorio
Settings (Configuración)
Permite modificaropciones del repositorio:
- Cambiar el nombre del repo.
- Gestionar colaboradores y permisos.
- Activar/desactivar issues, wikis, proyectos.
30
(c) 2025 Lic. Lucía Blanc
31.
Clonar un repositorio
gitclone [url] :: Descarga una copia de un repositorio de GitHub en tu
computadora.
Pasos:
● Ir al repositorio y copiar la URL.
● Abrir una terminal y ejecutar:
git clone https://github.com/blanclucia/UADER_IS2_BLANC.git
gh repo clone blanclucia/UADER_IS2_BLANC
● Ingresar a la carpeta del proyecto
31
(c) 2025 Lic. Lucía Blanc
32.
Realizar cambios yguardarlos
git status :: Para ver qué cambios hicimos. Muestra qué archivos han
cambiado y cuáles están listos para ser confirmados (commit).
git add ./[file] :: Agrega todos los archivos modificados al área de
preparación para ser confirmados o especificando el nombre de un
archivo.
git commit -m :: Para guardar los cambios con un mensaje claro.
32
(c) 2025 Lic. Lucía Blanc
33.
Revertir cambios yenviarlos
git revert [hash] :: Revierte el commit realizado, identificado por un
hash.
git reset [file] :: Elimina los cambios realizados que aún no se hayan
hecho commit.
git push :: Envía los cambios al repositorio remoto.
33
(c) 2025 Lic. Lucía Blanc
34.
Para evitar conflictos(dos o más personas modificando el mismo
archivo), se crean ramas y luego se fusionan.
Un rama o branch es una versión paralela del código en el mismo
repositorio. Se usa para desarrollar nuevas características sin afectar
la rama principal (main o master).
Trabajar en equipo con ramas
34
(c) 2025 Lic. Lucía Blanc
35.
Un flujo detrabajo de Git es una fórmula o una recomendación acerca
del uso de Git para realizar trabajo de forma uniforme y productiva.
Git-Flow
- Creado en 2010.
- Es el flujo de trabajo más conocido.
- Está pensado para aquellos proyectos que tienen entregables y
ciclos de desarrollo bien definidos.
- Está basado en dos grandes ramas con infinito tiempo de vida
(ramas master y develop) y varias ramas de apoyo.
Flujo de trabajo
35
(c) 2025 Lic. Lucía Blanc
36.
Trabajar en equipocon ramas
git branch :: Lista todas las ramas
git branch [branch-name] :: Crea una nueva rama
git checkout [branch-name] :: Nos posiciona en una rama específica
git merge [branch-name] :: Fusiona los cambios de la rama donde
estoy posicionado (ej: main) con la que especifico
git log :: Muestra todos los commits de la rama
36
(c) 2025 Lic. Lucía Blanc
37.
Recuperar cambios deun repositorio
git fetch :: Descarga los cambios del repositorio remoto sin aplicarlos
automáticamente a tu rama de trabajo
git merge :: Combinar dos ramas en una sola, fusionando los cambios
de una rama en otra.
git pull :: Descarga los cambios del repositorio remoto y fusionarlos
automáticamente en tu rama local. Es una combinación de git fetch
+ git merge.
37
(c) 2025 Lic. Lucía Blanc
38.
Cuando trabajamos enequipo, se utilizan los Pull Requests (PRs) para
sugerir cambios, hacer revisiones de código y seguir un proceso
colaborativo durante el ciclo de vida del software.
Ejemplo:
- Un programador hace cambios en una rama y sube los cambios (push).
- En GitHub, abre un Pull Request para que otros revisen su código, comparando su
rama con la rama estable del proyecto.
- El equipo revisa el código y, si está bien, lo fusiona (merge).
Colaboración con Pull Requests
38
(c) 2025 Lic. Lucía Blanc
● Crea PullRequest para todo
● Haz que los títulos sean descriptivos
● Tómate el tiempo para comentar
● Menciona a las personas clave
● Ejecuta las pruebas
Buenas prácticas para Pull Requests
40
(c) 2025 Lic. Lucía Blanc
Markdown es unlenguaje de marcado ligero que trata de conseguir la
máxima legibilidad y facilidad de publicación tanto en su forma de
entrada como de salida.
Se puede usar la sintaxis de Markdown, junto con algunas etiquetas
HTML adicionales, para aplicar formato a la escritura en GitHub, en
lugares como los archivos README.md de un repositorio y los
comentarios en los PRs e Issues.
GitHub & Markdown
GitHub docs
GitHub docs 47
(c) 2025 Lic. Lucía Blanc
Crearemos un repositorioy haremos uso de branch y pull request:
1. Iniciar sesión en github.com
2. Crear un nuevo repositorio
3. Clonar el repositorio en local
a. git clone http://…
4. Crear y cambiar a una nueva rama
a. git checkout -b “new-branch”
5. Realizar cambios y confirmarlos
a. git status
b. git add .
c. git commit -m “Se incorporan cambios a un nuevo branch”
6. Subir la rama al repositorio remoto
a. git push origin new-branch
7. Crear un Pull Request en GitHub
8. Fusionar la rama en main
9. Revertir un commit
a. git log --oneline
b. git revert -m 1 <commit-ID>
c. git push origin main
Taller
49
(c) 2025 Lic. Lucía Blanc