Enviar búsqueda
Cargar
Control de versiones y despliegue en la nube
•
1 recomendación
•
456 vistas
Título mejorado por IA
F
fyomaira
Seguir
Ingeniería
Denunciar
Compartir
Denunciar
Compartir
1 de 24
Descargar ahora
Descargar para leer sin conexión
Recomendados
Git with Scrum en español
Git with Scrum en español
Ramón Glez
Mini-tutorial de git
Mini-tutorial de git
Antonio Ognio
Uso de git (Cursos de e-ghost 2011)
Uso de git (Cursos de e-ghost 2011)
Iñaki Arenaza
Introducción al uso Git y GitHub para trabajo colaborativo
Introducción al uso Git y GitHub para trabajo colaborativo
Juan J. Merelo
Git para-principiantes
Git para-principiantes
nscoder_mad
Introducción a git
Introducción a git
Keopx
LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente?
LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente?
emateucr
Git: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativo
Aprende Git
Recomendados
Git with Scrum en español
Git with Scrum en español
Ramón Glez
Mini-tutorial de git
Mini-tutorial de git
Antonio Ognio
Uso de git (Cursos de e-ghost 2011)
Uso de git (Cursos de e-ghost 2011)
Iñaki Arenaza
Introducción al uso Git y GitHub para trabajo colaborativo
Introducción al uso Git y GitHub para trabajo colaborativo
Juan J. Merelo
Git para-principiantes
Git para-principiantes
nscoder_mad
Introducción a git
Introducción a git
Keopx
LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente?
LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente?
emateucr
Git: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativo
Aprende Git
PPT Git GitHub
PPT Git GitHub
drsevilla
Git / Guía Básica
Git / Guía Básica
Juan Victor Minaya León
Introducción a Git
Introducción a Git
Sergio Rus
Fundamentos de GIt y Github
Fundamentos de GIt y Github
Javier Latorre López-Villalta
WorkShop: Introducción a GIT
WorkShop: Introducción a GIT
Keopx
Curso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en Github
Carlos Huamaní
Git: un enfoque práctico
Git: un enfoque práctico
Patxi Gortázar
Introducción a git y git hub
Introducción a git y git hub
Miguel Ascanio Gómez
Control de versiones con Git y Github
Control de versiones con Git y Github
guest638090
Git: control de versiones
Git: control de versiones
Moisés Pérez Delgado
Git + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XII
quaip
Introducción a GIT
Introducción a GIT
Jose Emilio Labra Gayo
Mejora tu productividad con git
Mejora tu productividad con git
ch1l3no
Control de versiones con Git
Control de versiones con Git
Daniel Salas Denegri
Tallerintroducciongit
Tallerintroducciongit
Mario Pérez Esteso
Primeros pasos con git
Primeros pasos con git
Juan Vladimir
Taller breve de introduccion a Git
Taller breve de introduccion a Git
Mario IC
Herramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMP
Keopx
Configurando un repositorio de git hub usando netbeans ide
Configurando un repositorio de git hub usando netbeans ide
ferosorno
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Paradigma Digital
Presentacion Insignia - Instituto Coviello - Introduccion a Computación en l...
Presentacion Insignia - Instituto Coviello - Introduccion a Computación en l...
Carlos Kozuszko
Dominando dynos en heroku
Dominando dynos en heroku
fedesoria
Más contenido relacionado
La actualidad más candente
PPT Git GitHub
PPT Git GitHub
drsevilla
Git / Guía Básica
Git / Guía Básica
Juan Victor Minaya León
Introducción a Git
Introducción a Git
Sergio Rus
Fundamentos de GIt y Github
Fundamentos de GIt y Github
Javier Latorre López-Villalta
WorkShop: Introducción a GIT
WorkShop: Introducción a GIT
Keopx
Curso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en Github
Carlos Huamaní
Git: un enfoque práctico
Git: un enfoque práctico
Patxi Gortázar
Introducción a git y git hub
Introducción a git y git hub
Miguel Ascanio Gómez
Control de versiones con Git y Github
Control de versiones con Git y Github
guest638090
Git: control de versiones
Git: control de versiones
Moisés Pérez Delgado
Git + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XII
quaip
Introducción a GIT
Introducción a GIT
Jose Emilio Labra Gayo
Mejora tu productividad con git
Mejora tu productividad con git
ch1l3no
Control de versiones con Git
Control de versiones con Git
Daniel Salas Denegri
Tallerintroducciongit
Tallerintroducciongit
Mario Pérez Esteso
Primeros pasos con git
Primeros pasos con git
Juan Vladimir
Taller breve de introduccion a Git
Taller breve de introduccion a Git
Mario IC
Herramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMP
Keopx
Configurando un repositorio de git hub usando netbeans ide
Configurando un repositorio de git hub usando netbeans ide
ferosorno
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Paradigma Digital
La actualidad más candente
(20)
PPT Git GitHub
PPT Git GitHub
Git / Guía Básica
Git / Guía Básica
Introducción a Git
Introducción a Git
Fundamentos de GIt y Github
Fundamentos de GIt y Github
WorkShop: Introducción a GIT
WorkShop: Introducción a GIT
Curso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en Github
Git: un enfoque práctico
Git: un enfoque práctico
Introducción a git y git hub
Introducción a git y git hub
Control de versiones con Git y Github
Control de versiones con Git y Github
Git: control de versiones
Git: control de versiones
Git + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XII
Introducción a GIT
Introducción a GIT
Mejora tu productividad con git
Mejora tu productividad con git
Control de versiones con Git
Control de versiones con Git
Tallerintroducciongit
Tallerintroducciongit
Primeros pasos con git
Primeros pasos con git
Taller breve de introduccion a Git
Taller breve de introduccion a Git
Herramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMP
Configurando un repositorio de git hub usando netbeans ide
Configurando un repositorio de git hub usando netbeans ide
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Destacado
Presentacion Insignia - Instituto Coviello - Introduccion a Computación en l...
Presentacion Insignia - Instituto Coviello - Introduccion a Computación en l...
Carlos Kozuszko
Dominando dynos en heroku
Dominando dynos en heroku
fedesoria
Acerca de salesforce
Acerca de salesforce
Intellego Chile
Intro a Heroku
Intro a Heroku
bitfon
Heroku 101 py con 2015 - David Gouldin
Heroku 101 py con 2015 - David Gouldin
Heroku
Salesforce Intro
Salesforce Intro
Rich Helton
What Is Salesforce? | Salesforce Training - What Does Salesforce Do? | Salesf...
What Is Salesforce? | Salesforce Training - What Does Salesforce Do? | Salesf...
Edureka!
Que es un Salesforce?
Que es un Salesforce?
dln_11
Destacado
(8)
Presentacion Insignia - Instituto Coviello - Introduccion a Computación en l...
Presentacion Insignia - Instituto Coviello - Introduccion a Computación en l...
Dominando dynos en heroku
Dominando dynos en heroku
Acerca de salesforce
Acerca de salesforce
Intro a Heroku
Intro a Heroku
Heroku 101 py con 2015 - David Gouldin
Heroku 101 py con 2015 - David Gouldin
Salesforce Intro
Salesforce Intro
What Is Salesforce? | Salesforce Training - What Does Salesforce Do? | Salesf...
What Is Salesforce? | Salesforce Training - What Does Salesforce Do? | Salesf...
Que es un Salesforce?
Que es un Salesforce?
Similar a Control de versiones y despliegue en la nube
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones Seguras
José Moreno
Aprendiendo GIT
Aprendiendo GIT
InterGraphicDESIGNS
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
DIEGOALBERTOENRIQUEZ4
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
fuenzalidarodrigo
Git para no gitters
Git para no gitters
Rojomorgan
Más allá de Git add/commit/push
Más allá de Git add/commit/push
Alexis Lopez
Taller Git en la URJC
Taller Git en la URJC
sidelab
Control de versiones utilizando Git
Control de versiones utilizando Git
Hugo Gilmar Erazo
Repositorio concesionariocochesfloresgomezrobertocarlos
Repositorio concesionariocochesfloresgomezrobertocarlos
Roberto Carlos Flores Gomez
GIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdf
MartinBonuccelli
Git + Github - Sysmana 2014
Git + Github - Sysmana 2014
quaip
Git y github básico
Git y github básico
Nelson Manuel Ordaz Yglesias
Git
Git
Helder De Oliveira
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
Antonio Luque Bravo
Git - Gitlab
Git - Gitlab
Euler Sánchez
Instrucciones_Git.pdf
Instrucciones_Git.pdf
BenSira1
Mercurial
Mercurial
Jordi Gerona
Git.manual.usuario
Git.manual.usuario
Henry Jiménez Sánchez
Flujos de trabajo y mejores prácticas en git
Flujos de trabajo y mejores prácticas en git
Luis Eduardo Jiménez Robles
Git res baz ec - final
Git res baz ec - final
Iván Sanchez Vera
Similar a Control de versiones y despliegue en la nube
(20)
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones Seguras
Aprendiendo GIT
Aprendiendo GIT
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
Git para no gitters
Git para no gitters
Más allá de Git add/commit/push
Más allá de Git add/commit/push
Taller Git en la URJC
Taller Git en la URJC
Control de versiones utilizando Git
Control de versiones utilizando Git
Repositorio concesionariocochesfloresgomezrobertocarlos
Repositorio concesionariocochesfloresgomezrobertocarlos
GIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdf
Git + Github - Sysmana 2014
Git + Github - Sysmana 2014
Git y github básico
Git y github básico
Git
Git
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
Git - Gitlab
Git - Gitlab
Instrucciones_Git.pdf
Instrucciones_Git.pdf
Mercurial
Mercurial
Git.manual.usuario
Git.manual.usuario
Flujos de trabajo y mejores prácticas en git
Flujos de trabajo y mejores prácticas en git
Git res baz ec - final
Git res baz ec - final
Último
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
MikkaelNicolae
Mapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptx
MONICADELROCIOMUNZON1
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
PersonalJesusGranPod
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
ssuser563c56
Ejemplos de cadenas de Markov - Ejercicios
Ejemplos de cadenas de Markov - Ejercicios
MARGARITAMARIAFERNAN1
introducción a las comunicaciones satelitales
introducción a las comunicaciones satelitales
govovo2388
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
gustavoiashalom
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CarlosGabriel96
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
ClaudiaPerez86192
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
Edith Puclla
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
matepura
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
JuanPablo452634
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
s7yl3dr4g0n01
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
annavarrom
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
Fritz Rebaza Latoche
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
LUISDAVIDVIZARRETARA
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
BRAYANJOSEPTSANJINEZ
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
RonaldoPaucarMontes
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docx
MarcelaArancibiaRojo
clases de porcinos generales de porcinos
clases de porcinos generales de porcinos
DayanaCarolinaAP
Último
(20)
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Mapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptx
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Ejemplos de cadenas de Markov - Ejercicios
Ejemplos de cadenas de Markov - Ejercicios
introducción a las comunicaciones satelitales
introducción a las comunicaciones satelitales
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docx
clases de porcinos generales de porcinos
clases de porcinos generales de porcinos
Control de versiones y despliegue en la nube
1.
Introducción al Control
de versiones (git, github) y despliegue en la nube (heroku)! Ingeniería de Sistemas de Información! Grado en Ingeniería en Tecnologías de Telecomunicación! GSyC!
2.
• ©2012 Departamento
GSyC, URJC! – Algunos derechos reservados. Este trabajo se distribuye bajo la licencia Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License! 2!©GSyC!
3.
Contenidos! • Introducción: control
de versiones! • Control de versiones con Git! • Repositorios distribuidos: Github! • Despliegue de aplicaciones RoR en Heroku! 3!©GSyC!
4.
Introducción: control de
versiones! • Control de versiones o gestión de la configuración! – Version control system (VCS), Source code control (SCC), software configuration management (SCM)! • Sistemas para registrar la historia de los cambios que van sufriendo un conjunto de ficheros! • Sirve para: ! – Poder saber cuándo se modificó y quién lo hizo, cada fichero de un proyecto! – Poder reconstruir el estado de los ficheros al estado que tenían en algún momento del pasado, por ejemplo para deshacer cambios que han conducido a un error! – Poder coordinar los cambios que realiza un conjunto de desarrolladores sobre los ficheros de un proyecto! • Sistema de control de versiones (Version Control System-VCS)! – Herramienta SW que ayuda a gestionar el el control de versiones! – Ej: SCCS, RCS, CVS, SVN, Git! 4!©GSyC!
5.
Control de versiones
con Git!
6.
git! • Git es
un sistema de control de versiones distribuido! • Repositorio o repo! – Guarda la historia completa de un subconjunto de ficheros del proyecto! • GitHub y ProjectLocker ofrecen hospedaje para git en la red! – Útiles para colaborar entre varios miembros de un equipo de desarrollo! – Útil para desarrolladores individuales para hacer backups del repositorio! – Útil como imagen! • GitHub y ProjectLocker ofrecen hospedaje para git en la red! – Útiles para colaborar entre varios miembros de un equipo de desarrollo! – Útiles también para desarrolladores individuales: para hacer backups de los ficheros de sus proyectos! – Útil como portfolio que vende tu imagen, para encontrar trabajo! 6!©GSyC!
7.
git: el repositorio
o repo! • El repo es donde git guarda la historia completa de algún subconjunto de ficheros del proyecto! – No todos los ficheros del proyecto tienen que estar en el repositorio! • Para inicializar el repo de un proyecto! 1. cd <directorio-raiz-del-proyecto> 2. git init • El repositorio queda inicializado, pero vacío, en ! <directorio-raiz-de- proyecto>/.git/ 7!©GSyC!
8.
git: tracked files! •
Es el subconjunto de ficheros del proyecto que forman parte del repositorio ! • Sus versiones se van guardando sus versiones cada vez que se compromete su estado (se hace commit)! • git add ‘*txt’ añade recursivamente los ficheros acabados en txt al conjunto de tracked files! • No todos los ficheros del proyecto tienen por qué formar parte de los tracked files: ej. ficheros intermedios como los de log, no! • En .gitignore se especifican los ficheros que no deben añadirse. Ej:! 8!©GSyC! # a comment – línea de comentario *.a # ignorar los ficheros que acaben en .a !lib.a # pero sí lib.a, aunque hemos ignorado los acabados en .a /TODO # ignorar sólo el fichero /TODO, no los ficheros TOD en subirs build/ # ignorar todos los ficheros del subdir build/ doc/*.txt # ignorar doc/notes.txt, pero nodoc/server/arch.txt
9.
Fichero .gitignore! • En
el raíz del proyecto el fichero .gitignore especifica los ficheros que no deben añadirse al repo. Ej:! • Ejemplo de .gitignore para RoR:! 9!©GSyC! # a comment – línea de comentario *.a # ignorar los ficheros que acaben en .a !lib.a # pero sí lib.a, aunque hemos ignorado los acabados en .a /TODO # ignorar sólo el fichero /TODO, no los ficheros TOD en subirs build/ # ignorar todos los ficheros del subdir build/ doc/*.txt # ignorar doc/notes.txt, pero nodoc/server/arch.txt *.rbc* .sassc .sass-cache capybara-*.html .rspec /.bundle /vendor/bundle /log/* /tmp/* /db/*.sqlite3 /public/system/* /coverage/ /spec/tmp/* **.orig rerun.txt pickle-email-*.html
10.
git: commit de
ficheros! • Cuando estás contento con el estado del proyecto haces commit para que se refleje en el repo el estado actual de los tracked files! • A la “foto” que guarda commit se le asigna un commit ID, obtenido como firma digital SHA-1 (40 dígitos hexadecimales) de todos los ficheros en su estado actual! – Número único en el universo (todos los repos tuyos y de otros)! • ¿Qué permite commit?! – Recuperar en el futuro el estado (foto) comprometido de los tracked files! – ¡NO es una copia de backup de tus ficheros!! • Es muy importante añadir un texto que explique el estado que se compromete! – Cuando se hace commit se añade el comentario ! – Configuración del editor que se arranca al hacer commit:! • git config –-global core.editor ‘vim’ – Podemos añadir mensaje en la línea de comandos: ! git commit –m ‘msg’ 10!©GSyC!
11.
git: stage area! •
El stage es un área en la que se almacenan los cambios que serán comprometidos al repositorio! – Se pueden añadir/quitar ficheros de stage antes de comprometer! • git add en realidad sirve para 2 cosas:! – Añadir un fichero a conjunto de tracked files! – Añadir al stage el estado actual de un fichero: si después se modifica y luego se compromete, el estado que va al repositorio es el que se puso en stage! • Si después de modificar un fichero f queremos que los nuevos cambios acaben comprometiéndose cuando se comprometa, hay que volver a pasarlo al stage con git add f • git commit compromete los ficheros del stage al repositorio! • git commit –a hace que el estado actual de todos los tracked files, aunque no les hayamos hecho git add, sea el que se acabe comprometiendo! – Es equivalente a hacer primero un git add de todos lo tracked files y luego git commit 11!©GSyC!
12.
Sesión de trabajo
con git! • git config -–global core.editor ‘vim’ • mkdir p1 – Creamos nuestro proyecto en el directorio p1 • cd p1; touch a.txt; touch b.txt • git init • git add a.txt • git status • git add b.txt • git status • git commit • git status • echo “nueva linea” > a.txt • git status – Uno de los ficheros, a.txt, tiene cambios • git diff – Muestra diferencias entre ficheros actuales y su versión stagged – Es decir, son los cambios que pasarían a stagged si hiciésemos git add • git commit -a – Con –a compromete el estado actual de los tracked files ficheros, no el stagged • git status – No hay cambios pendientes de comprometer • git log 12!©GSyC!
13.
Repositorios distribuidos: Github
14.
Github: Introducción! • Permite
almacenar gratuitamente todos los repos que quieras! – Siempre que sean públicos! – Alternativa: projectlocker. La cuenta gratis restringe la cantidad de datos, pero permite repos privados! • Sólo una vez al principio:! – Generas pareja clave pública/privada para autenticarte en el servicio github con ssh! – Configuras git para que conozca la clave! – Sólo necesitas una clave para todas tus cuentas y repos! • Luego: usando git, haces push de tu repo a github, creando allí una réplica! • Otros desarrolladores pueden hacer push de sus cambios y pull de los de otros! 14!©GSyC!
15.
Preparación para usar
github! 1. Crea una cuenta gratis en github! 2. Informamos a git del nombre de usuario y del correo-e para que cada commit quede identificado! 1. git config –-global user.name ‘username-de-github’ 2. git config –-global user.email ‘tucorreo@electronico.com’ 3. Crea pareja de claves para ssh que te identificarán ante el servicio github:! 1. cd ~/.ssh 2. ssh-keygen –t rsa –C tucorreo@electronico.com 3. <Enter> para guardar en el fichero sugerido! 4. Introduce una passfrase, y acuérdate de ella (para no meterla en el futuro siempre: ssh- agent bash; ssh-add)! 5. chmod 0600 * 4. Añade tu clave pública a github! 1. En https://github.com/settings/ssh elige Add SSH Key! 2. Copia los contenidos de ~/.ssh/id_rsa.pub! 3. Ahora te pide tu password en github! 5. Crea un repositorio remoto para cada nuevo proyecto, en https://github.com/new! 1. Recuerda el nombre. Ejemplo: <nombre-repo-remoto> 6. Repite los pasos 3-4 para cada máquina distinta en la que quieres tener una copia del repo! 15!©GSyC!
16.
Sesión de trabajo
con git+github 1/4!• Creamos cuenta, y un repo <nombre-repo-remoto> en github – (ver transparencia anterior)! • git remote add origin git@github.com:username-de- github/<nombre-repo-remoto>.git – Con este comando le decimos a git que nos referiremos a nuestro repositorio <nombre-repo-remoto> remoto de github .gitcomo origin ! • git push origin master – Mandamos a origin (github) nuestro master local! • Supongamos que hemos invitado a nuestro repo en github a otros usuarios (añadiendo sus claves públicas), y han modificado nuestros ficheros haciendo git push ! • git pull origin master • Obtenemos sus cambios! • git diff HEAD – Comparamos los cambios de todo (stagged y no stagged) con lo último comprometido (HEAD)! – Es decir, nos dice lo que se comprometería con git commit -a 16!©GSyC!
17.
Sesión de trabajo
con git+github 2/4!• touch c.txt – Añadimos fichero que no existía • git add c.txt – Añadimos fichero que no existía! • echo ‘hola’ > c.txt • git diff • git diff HEAD • git diff --staged – Nos da los cambios entre stagged y el último commit: aparece c.txt! • git reset c.txt – Cambiamos de opinión: quitamos de stagged c.txt:! – Sigue ahí, pero ahora ya no está stagged luego git commit no lo guardará en el repo! • git checkout -– f.txt – Devolver a su último estado comprometido el fichero f.txt! – Recuperamos así una versión anterior que nos funcionó! 17!©GSyC!
18.
Sesión de trabajo
con git+github 3/4!• Vamos a crear una rama aparte de la rama master a la que llamamos clean_up! • git branch clean_up – Creamos branch clean_up, alternativo al main branch o master! • git branch – Vemos ramas que tenemos en este proyecto: master y clean_up ! • git checkout clean_up – Cambiamos de master a la rama clean_up. Lo que hagamos ahora con git sólo tiene efecto en esta rama! • git branch – Vemos que efectivamente hemos cambiado! • git rm ‘*.txt’ – En la nueva rama borramos los ficheros y añadimos a stage su borrado! • git status • git commit –m “mensaje…” – Comprometemos cambios en la rama clean_up! 18!©GSyC!
19.
Sesión de trabajo
con git+github 4/4! • Una vez satisfechos con la rama clean_up vamos a mezclarla con master! • git checkout master – Volvemos a la rama master! • git merge clean_up – Mezclamos cambios de clean_up con master! • git branch –d clean_up – Eliminamos la rama clean_up! • git push origin master – Acabamos haciendo push a github de la rama master! 19!©GSyC!
20.
Despliegue de aplicaciones RoR
en Heroku
21.
Despliegue en heroku! •
Heroku proporciona servicios PaaS (Platform-as-a-Service) para RoR, Django,…! • Créate una cuenta gratis en heroku.com! • En tu máquina: heroku login! – Subirá tu clave pública para que puedas luego autenticarte automáticamente cuando ejecutes otros comandos de heroku! – Si cambiases tu clave pública tienes que volver a subirla a heroku:! heroku keys:add ~/.ssh/id_rsa.pub! • La app rails correrá en el entorno de producción de heroku! – Heroku instalará las gemas del grupo :production de tu Gemfile! – Heroku utiliza PostgreSQL, así que asegúrate de que la gema de PostgreSQL (pg) aparece listada en el grupo :production! • Corre bundle en tu repo local, por última vez antes de desplegar! bundle install -–path vendor/bundle --without production 21©GSyC group :production do gem 'pg’ … end
22.
Despliegue en heroku! •
El código de tu app debe estar bajo git, ¡incluyendo el Gemfile claro!! – Asegúrate de comprometer a tu repo todo antes de desplegar! – Asegúrate de que todo funciona en local! • Será la rama master del repo de tu app RoR la que se suba a heroku y se arranque despliegue! • heroku create –-stack cedar – Esto sólo lo hacemos la 1ª vez que desplegamos una nueva aplicación RoR en heroku! – Apunta la url que te devuelve. La puedes cambiar en heroku.com por otra cosa más manejable! • git push heroku master – Esto lo hacemos cada vez que queremos subir una nueva versión de la app de nuestro repo! – Manda a heroku todos los ficheros comprometidos, y arranca en heroku la aplicación! – Fíjate en la salida por si hay errores al desplegar! 22!©GSyC!
23.
Despliegue en heroku! •
heroku ps – Comprueba cómo fue todo con ! • heroku run rake db:migrate – Crea las migraciones en la BD de producción! • heroku run rake db:seed – Poblamos la base de datos con • Comandos equivalentes (devel / producción con heroku):! 23!©GSyC! Repo local (development)! Heroku (producción)! rails server git push heroku master rails console heroku run console rake db:migrate heroku run rake db:migrate more log/development.log heroku logs
24.
Referencias! • Pro Git:
libro sobre git! – http://git-scm.com/book! • Docs en heroku.com! • Docs en github.com! 24!©GSyC!
Descargar ahora