Sistema que permite registrar los cambios en un archivo o conjunto de archivos con el tiempo para poder verificar versiones especificas mas adelante. Para diseñadores web o programadores en general es una de las herramientas mas considerables a utilizar.
1. Universidad Tecnológica de Panamá
Facultad de Ingeniería de Sistemas Computacionales
Maestría en Seguridad de la Información
Aplicaciones Seguras
Profesor Xiegdel Miranda
Presentado por: Jose Moreno, Andrea Munoz y
Carlos Rodriguez
GIT/GITHUB
2. Contenido
1 Control de versiones
2 Tipos
3 Git
4 Primeros pasos
5 Utilidades básicas
6 Branching
7 Otros commando utiles
8 GitHub
9 Demo
3. Control de versiones
Sistema que permite registrar los cambios en un archivo o conjunto de archivos con el
tiempo para poder verificar versiones especificas mas adelante. Para diseñadores web o
programadores en general es una de las herramientas mas considerables a utilizar.
Beneficios que ofrece:
❖ Revertir archivos a un estado previo
❖ Revertir proyectos enteros a estados previos
❖ Comparacion de cambios en el tiempo
❖ Verificar si lo que se modifico podria ser causa de
un problema.
❖ Si se enredan la cosas o se pierden con facilidad,
se pueden recuperar.
4. Tipos
• Es la elección de muchos programadores de copiar los
archivos fuentes de algún proyecto o proyecto entero
a carpetas fechadas y numeradas con la versión del
proyecto o archivo contenido.
• Es un enfoque simple y tiende a ser muy propenso a
errores.
• Es muy común olvidar en que directorio se esta
trabajando y escribir sobre los archivos equivocados o
copiar archivos que no eran.
Control de versiones local
5. Tipos
• Surge por la necesitad de que en el Proyecto se disponga
de la colaboración de un grupo de desarrolladores para
que realicen distintas iniciativas de programación.
• Consiste generalmente en un servidor con el conjunto de
componentes de programacion de uno o varios proyectos,
a los que diferentes usuarios tienen acceso. En muchos
casos tomar un componente significa extraer una copia del
original y bloquear el original, clasico para back-end.
• Los administradores tiene control de actividades de los
desarrolladores
• La caida del servidor significa perdida de trabajo
colaborativo.
Control de versiones centralizado
6. Tipos
• Aquí los clientes no simplemente se conectan para tener
acceso a un grupo de archivos de Proyecto, sino que este
se copia completamente a los terminales de los clientes,
de manera que el Sistema colabora para que se copie el
Proyecto nuevamente al servidor y restaurarlo. Cada clon
en los clientes es una copia completa del proyecto.
• Tener varios repositorios de trabajo permite la
colaboracion con diferentes grupos de trabajo al mismo
tiempo en el mismo Proyecto.
• Permite varios flujos de trabajo que no son posibles en
sistemas centralizados
Control de versiones distribuido
7. Git
• Al igual que con muchas cosas en la vida, Git comenzó con un poco
de destrucción creativa y encendida polémica.
• El núcleo de Linux es un proyecto de software de código abierto de
alcance bastante grande y en 2002 comenzó a usar un DVCS
patentado llamado BitKeeper.
• En 2005 se rompió la relación de la comunidad que desarrollaba
Linux y bitKeeper
• Linus Torvalds empezó un proyecto para desarrollar una herramienta
propia basada en algunas características de bitkeeper.
• Sus esfuerzos se enfocaron en una herramienta veloz, de simple
diseño, desarrollo no lineal y capaz de manejar grandes proyectos.
Historia
8. Git
• La forma en que modela los datos, ya que otros guardan
solo información de un conjunto de archivos y los
cambios realizados en cada uno con el tiempo. En
cambio Git trabaja cada vez que se confirma o se guarda
un Proyecto, a su vez guarda una imagen de todos los
archivos y almacena una referencia de esa imagen.
• Si un archivo no ha cambiado, no guarda el archive, sino
un enlace al archivo anterior que ya ha modificado.
• Casi todas las operaciones son locales, ya que solo
necesita de archivos locales y de recursos para operar,
por lo general no necesita informacion de otro de equipo
en la red.
Diferencias y características vs otros CVS
9. Git
• Es posible trabajar fuera de línea, y luego al
conectarse a red simplemente seria para recargar el
trabajo entre estaciones.
• Antes de guardarse cualquier archivo o enlace estos
pasan por un revisado donde se calcula a bajo nivel
el hash del archivo guardado (tipo SHA-1). Git
almacena todo por valor de hash y no por nombre
de archivo.
• Guarda solo datos, que hace possible que lo cambios
puedan ser desechos o borrar algun componente
que no se ha confirmado el guardado de cambios.
Diferencias y características vs otros CVS
10. Git
• Confirmado: significa que los datos están
almacenados de forma segura en la base de
datos local. Componentes que poseen la
ultima versión guardada.
• Modificado: archivos que se le han aplicado
cambios que no han sido confirmados en la
base de datos aun.
• Por Etapa: significa que se ha marcado un
archivo modificado para ser confirmado.
3 Estados para los archivos
11. Primeros pasos (Linux)
Instalar con:
sudo apt-get install git
Crear una cuenta en https://github.com/ y
obtener username y el e-mail usado.
Configurar con la cuenta GitHub
git config --global user.name “user_name”
git config --global user.email “email”
Revisar la configuración con
git config --list
Instalación Ubuntu
12. Utilidades básicas(Linux)
Se crea un repositorio local con
Git Init ProyectoCMR
Descargar un software que maneje FTP
Filezilla
Nos conectamos por ssh para crear una carpeta
de proyecto en el servidor llamada ProyectoCMR
ssh user@aplicaciones.morenojose.com
cd aplicaciones.morenojose.com
mkdir ProyectoCMR
Crear archivo o proyecto localmente
y subirlas al servidor
Usamos Filezilla y colocamos un Proyecto
web y se puede accesar con:
aplicaciones.morenojose.com/ProyectoC
MR
En la maquina cliente colocarse en la
carpeta htdocs y creo la carpeta
ProyectoCMR.
Entro a ProyectoCMR e introduzco el
commando git para importar el proyecto
git clone
git+ssh://user@aplicaciones.morenojose
.com/home/user/aplicaciones.morenojo
se.com/ProyectoCMR
13. Utilidades básicas(Linux)
Crear una carpeta de Proyecto en un hosting:
aplicaciones.morenojose.com
Se crea un archive para luego subirlo con vi o
nano:
vi nombre_archivo
Se agrega el archivo aql índice de Git con:
Git add nombre_archvio
Colocar Proyecto en servidor y
extraer copia al cliente
Se agrega el Proyecto a la base de datos
Git commit –m “add proyectoCMR”
14. Branching
El branching es una utilidad que permite crear
bifurcaciones del Proyecto master, útil cuando se
deben realizar dos proyectos sobre un producto final.
Se puede crear una bifurcacion de:
Git branch ProyectoCMRbf1 (si agrego –b antes de
nombre de Proyecto, se cambia a la nueva
bifurcacion)
Que es una bifurcacion de ProyectoCMR original y se
puede cambiar nuevamente al Proyecto original con.
Git checkout ProyectoCMR
15. Otros comando útiles
Comando Utilidad
Git status Describe el estado de los archivos. Distingue entre nuevos archivos y los estados
que pueden estar como modificado o preparado para ser confirmado.
Git status --s/short Similar al anterior describe de forma resumida el estado de los archivos.
Git commit -v “msg” Permite revisar que cambios se están enviando en el archive que esta siendo
confirmado.
Git rm archivo Permite borrar un archivo del Proyecto.
Git mv arch1 arch2 Permite renombrar y mover archivos.
Git log -p -#num Permite generar el log de archivos que han sido confirmados, con la opción p se
puede ver la diferencia de cada confirmación y #num limita el numero de
diferencias a confirmar.
Git commit --amend Permite volver a colocar una archive como confirmado. Útil si se quiere re-pasar
un archivo al Proyecto final.
16. Otros comando útiles
Comando Utilidad
Git reset archivo Permite cambiar el estado de un archivo de “listo para ser confirmado” a
modificado
Git checkout --
archivo
Permite eliminar los cambios realizados a un archivo, dejándolo en su estado
anterior.
Git push proy_remote
proy_bifurc1
Permite publicar en el servidor remoto los cambios actualmente realizados en el
proyecto local.
Git tag –l “ver.1.0.0” Permite colocar un numero de versión a la bifurcación del proyecto que se esta
trabajando.
Git config --global
alias.co checkout
Permite crear atajos que reducen la escritura de código, en el ejemplo propuesto
en lugar de digitar “git checkout” solo debe digitar “git co”
17. Bibliografía
1. How do I set up a Git Repository
Consultado el 5 de agosto de 2016
Disponible en: https://help.dreamhost.com/hc/en-us/articles/216445317-How-do-I-set-up-a-Git-repository-
2. How to push to Git repository to an external server
Consultado el 5 de agosto de 2016
Disponible en: https://help.dreamhost.com/hc/en-us/articles/216445197
1. Getting Started - First - Time - Git Setup
Consultado el 6 de agosto de 2016
Disponible en: https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup
1. Centralized Workflow
Consultado el 6 de agosto de 2016
Disponible en: https://www.atlassian.com/git/tutorials/comparing-workflows/centralized-workflow
5. Installing and using Git and GitHub on Ubuntu: A beginner's guide
Consultado el 7 de agosto de 2016.
Disponible en: https://www.howtoforge.com/tutorial/install-git-and-github-on-ubuntu-14.04/