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.
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicacionesParadigma Digital
Git es un sistema de control de versiones distribuido. Jenkins es un sistema de integración contínua.
Esta presentación es el material de un seminario de impartido por Juan José Fidalgo de @paradigmate el 17 de mayo del 2012 en Escuela Politécnica Superior de la Universidad CEU San Pablo en Madrid.
La aplicación práctica de la presentación se sigue mejor con un cliente por línea de comandos, por ejemplo con el plugin eGit en el entorno de desarrollo Eclipse.
Más información en http://www.paradigmatecnologico.com/git-y-jenkins-el-futuro-en-la-gestion-del-ciclo-de-vida-de-aplicaciones/ y http://www.javahispano.org/portada/2012/4/25/seminario-gratuito-sobre-git-y-jenkins.html
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicacionesParadigma Digital
Git es un sistema de control de versiones distribuido. Jenkins es un sistema de integración contínua.
Esta presentación es el material de un seminario de impartido por Juan José Fidalgo de @paradigmate el 17 de mayo del 2012 en Escuela Politécnica Superior de la Universidad CEU San Pablo en Madrid.
La aplicación práctica de la presentación se sigue mejor con un cliente por línea de comandos, por ejemplo con el plugin eGit en el entorno de desarrollo Eclipse.
Más información en http://www.paradigmatecnologico.com/git-y-jenkins-el-futuro-en-la-gestion-del-ciclo-de-vida-de-aplicaciones/ y http://www.javahispano.org/portada/2012/4/25/seminario-gratuito-sobre-git-y-jenkins.html
En muchos tutoriales de git se ignoran cuestiones importantes. Por ejemplo, la configuración de claves e identidad del usuario son cosas cruciales para una buena experiencia con git.
En esta presentación se explica el proceso desde cero, orientado tanto a quienes quieren usarlo desde consola, como a desarrolladores que deseen emplearlo desde Eclipse.
Los ejemplos tratan de emular un proceso de desarrollo real basado en ramas, con conflictos entre diferentes desarrolladores.
Esta es una breve introducción a git y gitHub. En ella se tratan muchos temas de manera conceptual y no detallada, y se omiten algunos temas importantes; pero es más que suficiente para empezar a trabajar con git y a partir de aquí ampliar esta introducción.
La razón de utilizar eclipse para la presentación, es que sea más fácil de entender los conceptos de git, para dejar la base para después empezar a trabajar con git en consola.
Aquí está un manual un poco más detallado, que permitirá empezar a trabajar con git, utilizando GitHub como servidor git: http://es.slideshare.net/MiguelAscanioGmez/manual-y-git-github
Guía de Referencia de Git, Herramientas y Clientes Windows, ideal para programadores que quieran inicarse en el control de sus proyectos bajo control de versiones distribuidos
En estas charla pongo un poco de orden en el mundo de Jenkins Pipeline, la nueva sintaxis para definir jobs en Jenkins. Hablaremos de las bases y progresaremos hasta llegar a las cosas más chulas que Pipeline nos proporciona.
Kubernetes es una plataforma cada vez más utilizada para poner en producción aplicaciones y servicios. Todos los grandes proveedores cloud la ofrecen y también puede instalarse on premises. En estas slides presentaremos los concetos básicos de la plataforma y aprenderemos a desplegar aplicaciones.
Las slides se han usado en un curso gratuito que ha sido grabado y publicado aquí: https://www.youtube.com/watch?v=5ovqsvqwtZM
Git: flujos de trabajo y herramientas para trabajo colaborativoAprende Git
Llevas unos meses dándole vueltas a subir ese parche que has hecho de jquery para corregir ese bug que te tenía loco. O crear ese proyecto en github para subir esa super tarea gulp que tanto os ha ayudado en el proyecto. Sí, te gustaría hacerlo pero no tienes ni idea de por dónde empezar: travis, pull-request, hooks, CI, gerrit, rebases, squashing, semantic versioning... ¿qué es todo eso y para qué sirve?. En esta charla hablaremos de qué herramientas aporta git y github para facilitar esta tarea, cómo podemos organizar nuestros repositorios y flujos de trabajo y os daremos las pautas para que podáis empezar a sacarle el máximo partido a los repositorios de código distribuido.
Estas diapositivas corresponden a la charla que se dio en madrid el 26/10/2015 en un meetup conjunto entre los grupos de HTML5 Spain y Spanish git Meetup.
En muchos tutoriales de git se ignoran cuestiones importantes. Por ejemplo, la configuración de claves e identidad del usuario son cosas cruciales para una buena experiencia con git.
En esta presentación se explica el proceso desde cero, orientado tanto a quienes quieren usarlo desde consola, como a desarrolladores que deseen emplearlo desde Eclipse.
Los ejemplos tratan de emular un proceso de desarrollo real basado en ramas, con conflictos entre diferentes desarrolladores.
Esta es una breve introducción a git y gitHub. En ella se tratan muchos temas de manera conceptual y no detallada, y se omiten algunos temas importantes; pero es más que suficiente para empezar a trabajar con git y a partir de aquí ampliar esta introducción.
La razón de utilizar eclipse para la presentación, es que sea más fácil de entender los conceptos de git, para dejar la base para después empezar a trabajar con git en consola.
Aquí está un manual un poco más detallado, que permitirá empezar a trabajar con git, utilizando GitHub como servidor git: http://es.slideshare.net/MiguelAscanioGmez/manual-y-git-github
Guía de Referencia de Git, Herramientas y Clientes Windows, ideal para programadores que quieran inicarse en el control de sus proyectos bajo control de versiones distribuidos
En estas charla pongo un poco de orden en el mundo de Jenkins Pipeline, la nueva sintaxis para definir jobs en Jenkins. Hablaremos de las bases y progresaremos hasta llegar a las cosas más chulas que Pipeline nos proporciona.
Kubernetes es una plataforma cada vez más utilizada para poner en producción aplicaciones y servicios. Todos los grandes proveedores cloud la ofrecen y también puede instalarse on premises. En estas slides presentaremos los concetos básicos de la plataforma y aprenderemos a desplegar aplicaciones.
Las slides se han usado en un curso gratuito que ha sido grabado y publicado aquí: https://www.youtube.com/watch?v=5ovqsvqwtZM
Git: flujos de trabajo y herramientas para trabajo colaborativoAprende Git
Llevas unos meses dándole vueltas a subir ese parche que has hecho de jquery para corregir ese bug que te tenía loco. O crear ese proyecto en github para subir esa super tarea gulp que tanto os ha ayudado en el proyecto. Sí, te gustaría hacerlo pero no tienes ni idea de por dónde empezar: travis, pull-request, hooks, CI, gerrit, rebases, squashing, semantic versioning... ¿qué es todo eso y para qué sirve?. En esta charla hablaremos de qué herramientas aporta git y github para facilitar esta tarea, cómo podemos organizar nuestros repositorios y flujos de trabajo y os daremos las pautas para que podáis empezar a sacarle el máximo partido a los repositorios de código distribuido.
Estas diapositivas corresponden a la charla que se dio en madrid el 26/10/2015 en un meetup conjunto entre los grupos de HTML5 Spain y Spanish git Meetup.
Presentación introductoria sobre GIT como sistema distribuido de control de versiones. Introducción y vistazo rápido a comandos para iniciar con GIT en Ubuntu. Presentación a cargo de Simón Sánchez
Una presentación corta que me sirvió de apoyo durante una charla que di sobre git, por ello no esta completa del todo por que solo era un apoyo, pero espero que pueda ser útil.
En esta presentación damos un repaso de lo que son dependencias, el uso de dependency managers y la ventajas que nos ofrecen. Revisamos en qué consisten los submódulos GIT, Cocoapods y Carthage, señalando sus ventajas/desventajas y como podemos incorporarlos en nuestros proyectos.
Introducción al desarrollo de software en comunidad con forja de software y gitDrPantera
Presentación "Introducción al desarrollo de software en comunidad con forja de software y git" impartida por Manuel Palomo y Pablo García en la Escuela Superior de Ingeniería de la Universidad de Cádiz a petición de la Game Development Association of the University of Cádiz
Similar a Presentacion #2 github Aplicaciones Seguras (20)
El ransomware en resumen es un malware que consiste en “secuestrar” los archivos de la PC víctima a cambio de dinero, diversión o con el fin de hacerle un daño a la persona o compañía cifrando a través de un programa o código los archivos de la computadora impidiendo su lectura, escritura y/o ejecución. Estos generalmente son encriptados y la única forma de poder recuperar dichos archivos es desbloqueando los archivos mediante contraseña, o desencriptándolo mediante algún algoritmo o aplicación específica.
En esta guía estaremos demostrando de manera breve cómo éste se aplica en la práctica.
Para ello, estaremos utilizando nuestra máquina real, en nuestro caso Windows 10 y una máquina virtual de Windows 7.
En este proyecto se aborda el tema del ransomware. Se utilizó los scripts del repositorio en github: https://github.com/SubtleScope/bash-ransomware.
El desarrollo de este proyecto consta de utilizar dos máquinas: una que es el servidor donde se montarán los scripts del repositorio anteriormente mencionado y otra máquina que nos servirá como cliente o víctima para este caso. En la máquina víctima se ejecutará un script que cifrará todos los archivos del mismo.
En este trabajo estaremos viendo HoneyPots con la implementación de HoneyDrive 3 que es una suite de Honeypots. De esta veremos su instalación y configuración de arranque virtual. Ademas pondremosen marcha y monitoreo dos honeypots conocidos en el mundo OpenSource los cuales son Kippo y Dionaea.
Todo equipo que tenga acceso por algún medio a la red global, está expuesto a ser vulnerado, independientemente del tipo de hardware o el sistema operativo.
Entendiendo esto entonces cada vez que se hagan experimentos o implementaciones con Software OpenSource, estos deben ser sometidos a diferentes pruebas de resistencia contra las vulnerabilidades. Esto es el análisis de riesgos y el plan de mitigación de riesgos, que todo servidor *NIX debe
someterse al momento de hacer implementaciones de servicio a través de estos sistemas operativos de software libre.
A continuación en el proyecto que se desarrolla en el trabajo presentado veremos la implementación de un servidor web utilizando solo herramientas OpenSource.
Muchas de las características que queremos resaltar de seguridad las veremos en los capítulos siguientes de los cuales podemos decir brevemente de que tratan.
Son servidores de información falsos, que son posicionados estratégicamente en una red de prueba y alimentados de información disfrazada como archivos de naturaleza confidencial.
Son herramientas de seguridad informática diseñadas para atraer atacantes y analizar el comportamientos de los ataques que realizan estos atacantes, para utilizar esto como referencia para diferentes propósitos, que pueden ser:
Estadísticas
Descubrimiento de nuevas vulnerabilidades y herramientas.
Análisis de ataques, para su posterior estudio.
Evitar que los principales sistemas de información sean atacados.
Gracias a la ejecución de este proyecto, hemos logrado aprender a configurar e instalar diferentes software que nos ayudarán en nuestro entorno laboral, para así, poder
implementar lo aprendido en el área IT, con la finalidad de proteger la información sensitiva que maneje la empresa para la cual estemos prestando nuestros servicios. Además, podemos mencionar, que no solamente adquirimos conocimientos para ejecutarlos en nuestros trabajos, sino para crear conciencia de que debemos tener mejor protegidos nuestras máquinas personales, como un simple ejemplo que podemos mencionar es , contar siempre con una sesión de administrador para evitar software maliciosos que perjudiquen nuestros equipos, además de tener instalado en cada máquina un antivirus, antimalware y
antiexploit para la protección de las mismas.
Por otro lado, otros temas aprendidos durante el transcurso de la materia, podemos mencionar la configuración del Firewall PfSense y el IPS SmoothSec, donde tuvimos que
listar reglas para evitar que el usuario final al momento de querer navegar en Internet, no entrará a páginas que estén prohibidas en el lugar donde se encuentre. En cuanto a el
firewall, las reglas son implementadas por medio de categorías que nos aparecerán en la consola del software y el smoothsec se configura mediante un directorio donde debemos
descomentar las que nosotros queremos que el software aplique en su ejecución. Cabe resaltar, que estos dos software se conectan con varias interfaces de red para poder ejecutar
de manera correcta cada uno de ellos.
Otro tema que pudimos aprender, es la implementación de un antispam para evitar que las bandejas de entrada de las cuentas de correo electrónico se llenen de información que no es útil o de documentos malintencionados.
Además, podemos complementar la información brindada en este documento, mencionando que cada uno de los software que instalamos DEBIAN tener más de una máquina corriendo
para que su ejecución fuera la correcta, siendo así, tener que usar diferentes máquinas virtuales para cada uno de los puntos ejecutados en nuestro proyecto. Por esto, tuvimos que
generar un diagrama, donde se crearon diferentes zonas para poder llegar a la conclusión de cual era la mejor manera de llevar a cabo toda la implementación del proyecto.
Hoy en día, organizaciones con distintos fines operativos cuentan como mínimo con un sistema de redes interno, así sea solo una computadora con acceso a internet. Estos equipos pueden contar con información valiosa o con un servicio
valioso para la organización. Estos activos o equipos valiosos pueden ser víctimas de distintas amenazas y el impacto puede ser catastrófico de acuerdo al nivel de criticidad que representa el activo.
Para evitar que pase este tipo de eventos existen sistemas
correlacionador de eventos SIEM que busca notificar a los administradores de la red entre otros monitores, los distintos eventos que están ocurriendo en la red.
Los eventos que pueden ocurrir varían entre el tipo de acción que se deba aplicar al activo.
Por ejemplo un virus informático puede estar recorriendo la red,
esperando que un equipo con información valiosa se conecte a red y así pueda hacer diferentes cosas que tiene como objetivo tal virus. Otros ejemplos son las notificaciones por actualización, puertos abiertos, contraseñas débiles, etc.
En el siguiente proyecto queremos mostrar cómo podemos implementar una de estas herramientas de correlacionación con el fin de que sirva como buena práctica al momento de querer monitorear los eventos que ocurren en la red.
Es un nuevo tipo de recopilación de pruebas digital basado en la extracción de pruebas desde el interior de la memoria de un teléfono móvil cuando existe la capacidad de acceder a los datos.
Los mecanismos que dejan rastro de la actividad de los usuarios, de los programas que se utilizan, los accesos, conexiones y aplicaciones, si han navegado, descargado o ejecutado algún programa, son los comúnmente denominados como artefactos
Es un framework o conjunto de subsistemas de software para el desarrollo de aplicaciones, y páginas web dinámicas, que están basadas, cada una de estas en el popular lenguaje de programación conocido como JavaScript. Gracias a esta característica el conjunto se integra exitosamente en una plataforma auto-suficiente.
Cada subsistema del Mean stack es de código abierto y de uso gratuito.
Herramienta de penetración y evaluación de seguridad orientado en Ubuntu – Linux proporcionando un conjunto de herramientas de análisis de los sistemas de información de la red. Este Sistema operative, incluye un conjunto completo de herramientas necesarias para el hacking ético y pruebas de seguridad.
Seguridad Base de Datos sql injection v1.0José Moreno
Método de infiltración de código intruso que se vale de una vulnerabilidad informática presente en una aplicación a nivel de validación de entradas para realizar operaciones sobre una base de datos.
Protección de Sitios Web con WAF LógicoJosé Moreno
Firewall de Aplicación Web: al igual que un
firewall convencional, se encarga de proteger
tu red. Pero un WAF irá más allá y te ayudará
a proteger tus aplicaciones web de ataques
que, normalmente, son un dolor de cabeza
para los administradores de las aplicaciones
o para los dueños de las mismas.
Laboratorio 7 mod security - evasive - qosJosé Moreno
Detallamos los pasos para el desarrollo del laboratorio, primero
iniciaremos con la instalación y configuración del Mod Security (nuestro WAF), luego continuamos con el Mod Evasive (nuestro IPS) y por último el Mod Qos (Nuestra protección contra ataques de denegación de servicios o Slow Loris).
El siguiente laboratorio tiene como objetivo aprender como generar los certificados digitales propios con la herramienta opnessl, en un servidor en debian implementando el CMS Joomla
Hardening o endurecimiento al sistema operativo, son las configuraciones que por seguridad de nuestro
sistema operativo, es necesario configurar algunos parámetros que por defecto trae nuestro servidor y las
aplicaciones que vamos a instalar, para así reducir la cantidad de vulnerabilidades en el mismo, esto lo
podemos lograr eliminando aplicaciones, servicios, usuarios innecesarios en el sistema así como cerrando
puertos que tampoco estén en uso, además de otros métodos que pueden ayudarnos a proteger nuestros
servidores.
El principal motivo para endurecer la seguridad de nuestro servidor FTP, es ganar tiempo frente a un
ataque, pues entre más configuraciones y otros métodos de seguridad implementemos, nunca lograremos
evitar por completo, que un atacante logre su objetivo si no le agregamos a nuestra seguridad, un
monitoreo de todos los equipos, por medio de alertas.
Cabe aclarar que el hardening de un equipo aunque es un elemento importante, no es el único factor de
protección que se debe implementar para proteger los servidores y equipos dentro de nuestra red, es
importante implementar protección externa a nuestros equipos, por medio de Firewall, IPS, IDS,
HoneyPots. Dentro de este trabajo solo nos limitaremos a la protección de nuestro servidor FTP, por medio
de configuraciones al sistema operativo, y apoyándonos en aplicaciones externas de sistema operativo,
para limitar el acceso que cada usuario pueda tener dentro del directorio de nuestro servidor.
En este documento analizamos ciertos conceptos relacionados con la ficha 1 y 2. Y concluimos, dando el porque es importante desarrollar nuestras habilidades de pensamiento.
Sara Sofia Bedoya Montezuma.
9-1.
Es un diagrama para La asistencia técnica o apoyo técnico es brindada por las compañías para que sus clientes puedan hacer uso de sus productos o servicios de la manera en que fueron puestos a la venta.
3Redu: Responsabilidad, Resiliencia y Respetocdraco
¡Hola! Somos 3Redu, conformados por Juan Camilo y Cristian. Entendemos las dificultades que enfrentan muchos estudiantes al tratar de comprender conceptos matemáticos. Nuestro objetivo es brindar una solución inclusiva y accesible para todos.
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...espinozaernesto427
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta intensidad son un tipo de lámpara eléctrica de descarga de gas que produce luz por medio de un arco eléctrico entre electrodos de tungsteno alojados dentro de un tubo de alúmina o cuarzo moldeado translúcido o transparente.
lámparas más eficientes del mercado, debido a su menor consumo y por la cantidad de luz que emiten. Adquieren una vida útil de hasta 50.000 horas y no generan calor alguna. Si quieres cambiar la iluminación de tu hogar para hacerla mucho más eficiente, ¡esta es tu mejor opción!
Las nuevas lámparas de descarga de alta intensidad producen más luz visible por unidad de energía eléctrica consumida que las lámparas fluorescentes e incandescentes, ya que una mayor proporción de su radiación es luz visible, en contraste con la infrarroja. Sin embargo, la salida de lúmenes de la iluminación HID puede deteriorarse hasta en un 70% durante 10,000 horas de funcionamiento.
Muchos vehículos modernos usan bombillas HID para los principales sistemas de iluminación, aunque algunas aplicaciones ahora están pasando de bombillas HID a tecnología LED y láser.1 Modelos de lámparas van desde las típicas lámparas de 35 a 100 W de los autos, a las de más de 15 kW que se utilizan en los proyectores de cines IMAX.
Esta tecnología HID no es nueva y fue demostrada por primera vez por Francis Hauksbee en 1705. Lámpara de Nernst.
Lámpara incandescente.
Lámpara de descarga. Lámpara fluorescente. Lámpara fluorescente compacta. Lámpara de haluro metálico. Lámpara de vapor de sodio. Lámpara de vapor de mercurio. Lámpara de neón. Lámpara de deuterio. Lámpara xenón.
Lámpara LED.
Lámpara de plasma.
Flash (fotografía) Las lámparas de descarga de alta intensidad (HID) son un tipo de lámparas de descarga de gas muy utilizadas en la industria de la iluminación. Estas lámparas producen luz creando un arco eléctrico entre dos electrodos a través de un gas ionizado. Las lámparas HID son conocidas por su gran eficacia a la hora de convertir la electricidad en luz y por su larga vida útil.
A diferencia de las luces fluorescentes, que necesitan un recubrimiento de fósforo para emitir luz visible, las lámparas HID no necesitan ningún recubrimiento en el interior de sus tubos. El propio arco eléctrico emite luz visible. Sin embargo, algunas lámparas de halogenuros metálicos y muchas lámparas de vapor de mercurio tienen un recubrimiento de fósforo en el interior de la bombilla para mejorar el espectro luminoso y reproducción cromática. Las lámparas HID están disponibles en varias potencias, que van desde los 25 vatios de las lámparas de halogenuros metálicos autobalastradas y los 35 vatios de las lámparas de vapor de sodio de alta intensidad hasta los 1.000 vatios de las lámparas de vapor de mercurio y vapor de sodio de alta intensidad, e incluso hasta los 1.500 vatios de las lámparas de halogenuros metálicos.
Las lámparas HID requieren un equipo de control especial llamado balasto para funcionar
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Telefónica
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0xWord escrito por Ibón Reinoso ( https://mypublicinbox.com/IBhone ) con Prólogo de Chema Alonso ( https://mypublicinbox.com/ChemaAlonso ). Puedes comprarlo aquí: https://0xword.com/es/libros/233-big-data-tecnologias-para-arquitecturas-data-centric.html
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/