PRO - 203
PROGRAMACIÓN SEGURA
Rancagua – TIC – Ingeniería Informática
CLASE 3
Profesor: Michell Jáuregui Valdés
Repositorio y Control de Versiones
Se llama control de versiones a la gestión de los diversos cambios que se realizan
sobre los elementos de algún producto o una configuración del mismo.
Una versión, revisión o edición de un producto, es el estado en el que se encuentra
el mismo en un momento dado de su desarrollo o modificación.
https://es.wikipedia.org/wiki/Control_de_versiones
Repositorio y Control de Versiones
Un sistema de control de versiones debe proporcionar:
● Mecanismo de almacenamiento de los elementos que deba
gestionar (ej. archivos de texto, imágenes, documentación...).
● Posibilidad de realizar cambios sobre los elementos almacenados
(ej. modificaciones parciales, añadir, borrar, renombrar o mover
elementos).
● Registro histórico de las acciones realizadas con cada elemento o
conjunto de elementos (normalmente pudiendo volver o extraer
un estado anterior del producto).
Aunque no es estrictamente necesario, suele ser muy útil la
generación de informes con los cambios introducidos entre dos
versiones, informes de estado, marcado con nombre identificativo de
la versión de un conjunto de ficheros, etc.
¿Qué es GIT?
Git es un software de control de versiones diseñado por Linus Torvalds,
pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de
aplicaciones cuando éstas tienen un gran número de archivos de código
fuente.
Su propósito es llevar registro de los cambios en archivos de computadora y
coordinar el trabajo que varias personas realizan sobre archivos
compartidos.
Git es un sistema de control de versiones de software que permite trabajar en
equipo llevando un historial de todos los cambios en el proyecto.
MASTER
RAMA
1
MASTER
Instalaciones
https://git-scm.com/downloads
Descargar software GIT e
instalarlo en su computador.
Instalaciones
https://github.com/
Crease una cuenta en Git Hub
(Utilizaremos GitHub por ser el
más conocido y simple de
utilizar).
Instalaciones
Después de crear la cuenta en
GitHub, crearemos un repositorio
nuevo, a modo de ejemplo.
Tienes que hacer click en New.
Instalaciones
dejar público
Instalaciones
1) Click en el botón Clone or
Download.
2) Copias el link del repositorio.
Consola GIT
En el escritorio de
tu computador,
aprieta botón
derecho, selecciona
Git Bash Here.
Va a desplegarse
una consola
En la consola escribimos el siguiente comando:
git clone “link que descargamos de github”
Se desplegará un login de GitHub tienes que poner tus credenciales de usuario de GitHub.
Se ejecutará el comando y se descargará el repositorio en tu escritorio.
Con el comando cd nombrerepositorio entrarás al repositorio descargado.
Crearás un archivo de texto y escribirás un texto dentro y lo guardarás en la carpeta del repositorio.
Agregarás el archivo index.txt y luego harás un commit.
Esto producirá una advertencia. No está configurado el e-mail ni tu nombre de usuario en GIT.
Con los siguientes comandos configura usuario y correo.
Ahora hace un add al archivo index.txt, luego un commit y un push.
Esto subirá el archivo index.txt a la nube en la plataforma GitHub bajo la rama master.
Ahora crearemos una rama: git branch nombrerama
Nos cambiaremos a esa rama: git checkout nombrerama
Abriremos el archivo index.txt y lo modificaremos.
Luego de realizar add, commit y push, nos envía una advertencia.
El siguiente push hay que hacerlo de acuerdo a la instrucción:
git push --set-upstream origin nuevarama
Ahora se subió todo perfectamente a la nube. Y en la nueva rama creada.
En GitHub validamos que todos los cambios se han subido perfectamente, además tenemos 2 ramas y cada
una con archivos distintos. Muy bien.
Fusión:
Nos posicionamos en la rama que va a recibir la fusión o Merge. En este ejemplo seleccionamos master.
Ahora procedemos a la fusión de desarrollo y master. Posicionados en master aplicamos el comando:
git merge desarrollo
Ahora el master tiene todas las modificaciones ya funcionales que contenía desarrollo y podemos seguir
trabajando en la rama desarrollo sin molestar al master.
Comandos GIT
• git init:
Esto crea un subdirectorio nuevo llamado .git, el cual contiene todos los archivos necesarios del repositorio – un
esqueleto de un repositorio de Git. Todavía no hay nada en tu proyecto que esté bajo seguimiento.
• git fetch:
Descarga los cambios realizados en el repositorio remoto.
• git merge <nombre_rama>:
Impacta en la rama en la que te encuentras parado, los cambios realizados en la rama “nombre_rama”.
• git pull:
Unifica los comandos fetch y merge en un único comando.
• git commit -am "<mensaje>":
Confirma los cambios realizados. El “mensaje” generalmente se usa para asociar al commit una breve descripción
de los cambios realizados.
• git push origin <nombre_rama>:
Sube la rama “nombre_rama” al servidor remoto.
• git status:
Muestra el estado actual de la rama, como los cambios que hay sin commitear.
• git add <nombre_archivo>:
Comienza a trackear el archivo “nombre_archivo”.
• git checkout -b <nombre_rama_nueva>:
Crea una rama a partir de la que te encuentres parado con el nombre “nombre_rama_nueva”, y luego salta sobre la
rama nueva, por lo que quedas parado en esta última.
• git checkout -t origin/<nombre_rama>:
Si existe una rama remota de nombre “nombre_rama”, al ejecutar este comando se crea una rama local con el
nombre “nombre_rama” para hacer un seguimiento de la rama remota con el mismo nombre.
• git branch:
Lista todas las ramas locales.
• git branch -a:
Lista todas las ramas locales y remotas.
• git branch -d <nombre_rama>:
Elimina la rama local con el nombre “nombre_rama”.
• git push origin <nombre_rama>:
Commitea los cambios desde el branch local origin al branch “nombre_rama”.
• git remote prune origin:
Actualiza tu repositorio remoto en caso que algún otro desarrollador haya eliminado alguna rama remota.
• git reset --hard HEAD:
Elimina los cambios realizados que aún no se hayan hecho commit.
• git revert <hash_commit>:
Revierte el commit realizado, identificado por el “hash_commit”.
MUCHAS GRACIAS