SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
Manuel Palomo Duarte
Pablo García Sánchez
Departamento de Ing. Informática
Introducción al desarrollo de software en
comunidad con forja de software y git
Contenidos
● ¿Qué es una forja de software?
● Forjas
● Control de versiones de código fuente
● Git
● Servicios más avanzados
¿Qué es una forja de software?
● La Forja es una web (pública) que ofrece
facilidades para el desarrollo de software (libre):
– Clasificación y estadísticas del proyecto
– Repositorio de control de versiones de código
(navegable y comparable)
– Listas de correo
– Foros, noticias (RSS), wikis, notificaciones
– Publicación de binarios y documentos
– Gestión de tareas y errores con tickets
● Desarrollo eficiente, transparencia y visibilidad
Forjas de software
● Forja de código
– https://github.com
– https://bitbucket.org
– https://forja.cica.es
– ...
● Y hay muchas más, cada una con sus ventajas
e inconvenientes:
– https://en.wikipedia.org/wiki/Comparison_of_source_code_hosting_facilities
● Veamos un ejemplo de proyecto: Prepack
● https://github.com/facebook/prepack
Control de versiones de código
fuente
● Probablemente la función más destacada de
una forja es la de ofrecer un control de
versiones de código fuente, que:
– Mantiene copias de todas las versiones del código
fuente en el servidor con sus autores
– Permite recuperar versiones anteriores y
compararlas con otras recientes (diff/tkdiff)
– Funde las aportaciones de varios usuarios :-O
– Permite establecer determinados flujos de trabajo
– Genera estadísticas (con http://gource.io, GitStats,
etc)
Control de versiones de código
fuente
● Todo empezó con CVS (1986)
● Después llegó SVN, “CVS done right”
● Y el que se ha implantado masivamente en los
últimos años es git
– Permite hacer lo mismo que SVN
● Mucha gente es lo único que usa de git ;)
– También permite la gestión distribuida
● Existen otras alternativas: Bazaar, etc
● Disponible desde línea de comandos, entorno
gráfico (Tortoise) o integrados en IDE (Eclipse)
Control de versiones de código
fuente
● Actualmente Github es un estándar “de facto”
para demostrar al mundo (comunidad,
empresas, etc) tus habilidades como
desarrollador
– No se busca que todo lo que haya sea bueno:
todos hemos empezado desde abajo
– Sí que se vaya aprendiendo
● Y que lo que sea inestable se etiquete como tal
● Ejemplo:
– https://github.com/saltares
Servicios más avanzados
● Hay servicios más avanzados:
– Gestores de (determinados binarios) para sistemas
de control de versiones
– Integración con otras herramientas
– Testing continuo
– ...
Para los que vienen de DropBox
● La forja es “como la nube de DropBox”
– Pero montada en condiciones para programadores
● Para gestionar (mandar, recibir, etc) código se
usa un control de versiones (git, svn, etc) que
la forja soporte
– Hay forja soportan varios: bitbucket admite git y svn
● Pero en cada proyecto sólo puede usar uno
● Programas en tu equipo como siempre:
– Eclipse, emacs, codeblocks, ...
Git
● Sistema de control de versiones
● Distribuido
● Usa línea de comandos
● Creado por y para Linux
● Permite el despliegue de aplicaciones e
integración continua
Wikipedia Commons ­ CC
¿Cómo funciona?
Cc-by Wikimedia Commons
Crear repositorio local
● A) Crear repositorio local y añadir la URL
remota
– git init
– git remote add origin URL
● B) Clonar repositorio remoto directamente (más
fácil)
– git clone URL
CC-BY Jurvetson
https://www.flickr.com/photos/jurvets
on/3327872958
Lo primero que deberíamos crear
● LICENSE
● README
● .gitignore
PULL: Bajarse cambios remotos
● git pull
● git pull origin master
● git pull origin rama_concreta
COMMIT: Añadir cambios al
repositorio local
1) ¿Cómo está el tema?
– git status
2) On your marks! Indicar qué ficheros van a entrar en el commit (a
diferencia de otros gestores, que siempre guardan cualquier
cambio)
– git add FICHERO #(OJOCUIDAO CON ESTO!)
– git rm FICHERO
– git mv FICHERO LOQUESEA
● 3) ¡Pa entro!
– git commit ­m “He cambiado tal cosa”
– git commit ­am “He cambiado tal cosa, pero subo todos 
los modificados sin pensar”
PUSH: Subir al repositorio remoto
● git push
Cc-by Wikipedia Commons
OH NOES!
● Alguien ha hecho cambios antes que yo!
● Si es en ficheros distintos
– git pull
– No hay problema
– git push
● Si hemos tocado el mismo fichero
– git pull
– MERGE EN EL FICHERO!
– Se arregla el fichero si hace falta
– git commit ­am “Juntando to”
– git push
● Oh Shit git! ohshitgit.com
CC-BY Donny Ray Jones
https://www.flickr.com/photos/d
onnieray/11865356303
Me voy por las ramas
● Creamos rama
– git branch nueva­rama
● Nos movemos a la rama
– git checkout nueva­rama
● ¿Ande estoy?
– git branch
● Unimos ramas
– git merge la­otra
https://www.flickr.com/photos/fwolf/3389188179
CC-BY-SA-NC
Cosas guays de Github
● Fork: copiarme un repo a mi cuenta para no
molestar al dueño
● Pull Request: solicitar al dueño que meta mis
cambios en su repo
● Issues: Tareas pendientes. Pueden vincularse
a commits para cerrarlos o citarlos.
● Claves ssh: evitar meter usuario y contraseña.
Agradecimientos
● Presentación: El Zen de Git
http://www.psicobyte.com/info/descargas
Gracias por la atención
¿Preguntas?

Mais conteúdo relacionado

Mais procurados

Taller breve de introduccion a Git
Taller breve de introduccion a GitTaller breve de introduccion a Git
Taller breve de introduccion a GitMario IC
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque prácticoPatxi Gortázar
 
Git + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XIIGit + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XIIquaip
 
El git nuestro de cada dia
El git nuestro de cada diaEl git nuestro de cada dia
El git nuestro de cada diaAlan Descoins
 
Uso de git (Cursos de e-ghost 2011)
Uso de git (Cursos de e-ghost 2011)Uso de git (Cursos de e-ghost 2011)
Uso de git (Cursos de e-ghost 2011)Iñaki Arenaza
 
Git with Scrum en español
Git with Scrum en españolGit with Scrum en español
Git with Scrum en españolRamón Glez
 
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 aplicacionesGit 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 aplicacionesParadigma Digital
 
Forjas de Software: qué son y para que sirven
Forjas de Software: qué son y para que sirvenForjas de Software: qué son y para que sirven
Forjas de Software: qué son y para que sirvenIñaki Arenaza
 
Introduccion al desarrollo con Launchpad
Introduccion al desarrollo con LaunchpadIntroduccion al desarrollo con Launchpad
Introduccion al desarrollo con LaunchpadDenis Fuenzalida
 
Charla de Introducción a Git
Charla de Introducción a GitCharla de Introducción a Git
Charla de Introducción a GitManuel Martín
 
LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente?
LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente? LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente?
LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente? emateucr
 
Más allá de Git add/commit/push
Más allá de Git add/commit/pushMás allá de Git add/commit/push
Más allá de Git add/commit/pushAlexis Lopez
 

Mais procurados (20)

Tallerintroducciongit
TallerintroducciongitTallerintroducciongit
Tallerintroducciongit
 
Taller breve de introduccion a Git
Taller breve de introduccion a GitTaller breve de introduccion a Git
Taller breve de introduccion a Git
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque práctico
 
Fundamentos de GIt y Github
Fundamentos de GIt y GithubFundamentos de GIt y Github
Fundamentos de GIt y Github
 
Git + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XIIGit + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XII
 
El git nuestro de cada dia
El git nuestro de cada diaEl git nuestro de cada dia
El git nuestro de cada dia
 
Uso de git (Cursos de e-ghost 2011)
Uso de git (Cursos de e-ghost 2011)Uso de git (Cursos de e-ghost 2011)
Uso de git (Cursos de e-ghost 2011)
 
Git with Scrum en español
Git with Scrum en españolGit with Scrum en español
Git with Scrum en español
 
Control de versiones con Git
Control de versiones con GitControl de versiones con Git
Control de versiones con Git
 
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 aplicacionesGit 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
 
Aprendiendo GIT
Aprendiendo GITAprendiendo GIT
Aprendiendo GIT
 
Git flow en github
Git flow en githubGit flow en github
Git flow en github
 
Git flow en gitlab
Git flow en gitlabGit flow en gitlab
Git flow en gitlab
 
Forjas de Software: qué son y para que sirven
Forjas de Software: qué son y para que sirvenForjas de Software: qué son y para que sirven
Forjas de Software: qué son y para que sirven
 
Git - Gitlab
Git - GitlabGit - Gitlab
Git - Gitlab
 
Introduccion al desarrollo con Launchpad
Introduccion al desarrollo con LaunchpadIntroduccion al desarrollo con Launchpad
Introduccion al desarrollo con Launchpad
 
Charla de Introducción a Git
Charla de Introducción a GitCharla de Introducción a Git
Charla de Introducción a Git
 
Sistemas de control de versiones
Sistemas de control de versionesSistemas de control de versiones
Sistemas de control de versiones
 
LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente?
LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente? LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente?
LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente?
 
Más allá de Git add/commit/push
Más allá de Git add/commit/pushMás allá de Git add/commit/push
Más allá de Git add/commit/push
 

Semelhante a Introducción al desarrollo de software en comunidad con forja de software y git

Semelhante a Introducción al desarrollo de software en comunidad con forja de software y git (20)

Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando Git
 
Git y Github basico.pptx
Git y Github basico.pptxGit y Github basico.pptx
Git y Github basico.pptx
 
Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantes
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones Seguras
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a git
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDADTodo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con git
 
Git y github
Git y githubGit y github
Git y github
 
Git.manual.usuario
Git.manual.usuarioGit.manual.usuario
Git.manual.usuario
 
Git: control de versiones
Git: control de versionesGit: control de versiones
Git: control de versiones
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Flujos de trabajo y mejores prácticas en git
Flujos de trabajo y mejores prácticas en gitFlujos de trabajo y mejores prácticas en git
Flujos de trabajo y mejores prácticas en git
 
Git y github
Git y githubGit y github
Git y github
 
[ES] Sistemas de control de versiones
[ES] Sistemas de control de versiones[ES] Sistemas de control de versiones
[ES] Sistemas de control de versiones
 
Git y github básico
Git y github básicoGit y github básico
Git y github básico
 
Git / Guía Básica
Git / Guía BásicaGit / Guía Básica
Git / Guía Básica
 
Git 101+
Git 101+Git 101+
Git 101+
 
Mulesoft meetup_vlc_cicd
Mulesoft meetup_vlc_cicdMulesoft meetup_vlc_cicd
Mulesoft meetup_vlc_cicd
 

Mais de DrPantera

Presentación SPI&FM 26jun19 RiDiVi
Presentación SPI&FM 26jun19 RiDiViPresentación SPI&FM 26jun19 RiDiVi
Presentación SPI&FM 26jun19 RiDiViDrPantera
 
Oficinas de Software Libre Universitarias: renovarse o morir
Oficinas de Software Libre Universitarias: renovarse o morirOficinas de Software Libre Universitarias: renovarse o morir
Oficinas de Software Libre Universitarias: renovarse o morirDrPantera
 
A Collaborative Mobile Learning System to Facilitate Foreign Language Learnin...
A Collaborative Mobile Learning System to Facilitate Foreign Language Learnin...A Collaborative Mobile Learning System to Facilitate Foreign Language Learnin...
A Collaborative Mobile Learning System to Facilitate Foreign Language Learnin...DrPantera
 
Presentacion guessit junio2016
Presentacion guessit junio2016Presentacion guessit junio2016
Presentacion guessit junio2016DrPantera
 
Usos y evaluación de wikis en docencia
Usos y evaluación de wikis en docenciaUsos y evaluación de wikis en docencia
Usos y evaluación de wikis en docenciaDrPantera
 
Evaluación del trabajo individual y grupal en un wiki
Evaluación del trabajo individual y grupal en un wikiEvaluación del trabajo individual y grupal en un wiki
Evaluación del trabajo individual y grupal en un wikiDrPantera
 
A Domain Specific Language to retrieve objective indicators for foreign langu...
A Domain Specific Language to retrieve objective indicators for foreign langu...A Domain Specific Language to retrieve objective indicators for foreign langu...
A Domain Specific Language to retrieve objective indicators for foreign langu...DrPantera
 
Identifying foreign language learning profiles in game-based environments by ...
Identifying foreign language learning profiles in game-based environments by ...Identifying foreign language learning profiles in game-based environments by ...
Identifying foreign language learning profiles in game-based environments by ...DrPantera
 
Presentación Guess it! AulaBlog 2015
Presentación Guess it! AulaBlog 2015Presentación Guess it! AulaBlog 2015
Presentación Guess it! AulaBlog 2015DrPantera
 
Assessment in programming competitive assignments
Assessment in programming competitive assignmentsAssessment in programming competitive assignments
Assessment in programming competitive assignmentsDrPantera
 
Presentación Subversion
Presentación SubversionPresentación Subversion
Presentación SubversionDrPantera
 
Transparencias de tesis PhD
Transparencias de tesis PhDTransparencias de tesis PhD
Transparencias de tesis PhDDrPantera
 

Mais de DrPantera (12)

Presentación SPI&FM 26jun19 RiDiVi
Presentación SPI&FM 26jun19 RiDiViPresentación SPI&FM 26jun19 RiDiVi
Presentación SPI&FM 26jun19 RiDiVi
 
Oficinas de Software Libre Universitarias: renovarse o morir
Oficinas de Software Libre Universitarias: renovarse o morirOficinas de Software Libre Universitarias: renovarse o morir
Oficinas de Software Libre Universitarias: renovarse o morir
 
A Collaborative Mobile Learning System to Facilitate Foreign Language Learnin...
A Collaborative Mobile Learning System to Facilitate Foreign Language Learnin...A Collaborative Mobile Learning System to Facilitate Foreign Language Learnin...
A Collaborative Mobile Learning System to Facilitate Foreign Language Learnin...
 
Presentacion guessit junio2016
Presentacion guessit junio2016Presentacion guessit junio2016
Presentacion guessit junio2016
 
Usos y evaluación de wikis en docencia
Usos y evaluación de wikis en docenciaUsos y evaluación de wikis en docencia
Usos y evaluación de wikis en docencia
 
Evaluación del trabajo individual y grupal en un wiki
Evaluación del trabajo individual y grupal en un wikiEvaluación del trabajo individual y grupal en un wiki
Evaluación del trabajo individual y grupal en un wiki
 
A Domain Specific Language to retrieve objective indicators for foreign langu...
A Domain Specific Language to retrieve objective indicators for foreign langu...A Domain Specific Language to retrieve objective indicators for foreign langu...
A Domain Specific Language to retrieve objective indicators for foreign langu...
 
Identifying foreign language learning profiles in game-based environments by ...
Identifying foreign language learning profiles in game-based environments by ...Identifying foreign language learning profiles in game-based environments by ...
Identifying foreign language learning profiles in game-based environments by ...
 
Presentación Guess it! AulaBlog 2015
Presentación Guess it! AulaBlog 2015Presentación Guess it! AulaBlog 2015
Presentación Guess it! AulaBlog 2015
 
Assessment in programming competitive assignments
Assessment in programming competitive assignmentsAssessment in programming competitive assignments
Assessment in programming competitive assignments
 
Presentación Subversion
Presentación SubversionPresentación Subversion
Presentación Subversion
 
Transparencias de tesis PhD
Transparencias de tesis PhDTransparencias de tesis PhD
Transparencias de tesis PhD
 

Último

Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperiomiralbaipiales2016
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesYanirisBarcelDelaHoz
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxnandoapperscabanilla
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIIsauraImbrondone
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxdkmeza
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 

Último (20)

Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperio
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptx
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 

Introducción al desarrollo de software en comunidad con forja de software y git

  • 1. Manuel Palomo Duarte Pablo García Sánchez Departamento de Ing. Informática Introducción al desarrollo de software en comunidad con forja de software y git
  • 2. Contenidos ● ¿Qué es una forja de software? ● Forjas ● Control de versiones de código fuente ● Git ● Servicios más avanzados
  • 3. ¿Qué es una forja de software? ● La Forja es una web (pública) que ofrece facilidades para el desarrollo de software (libre): – Clasificación y estadísticas del proyecto – Repositorio de control de versiones de código (navegable y comparable) – Listas de correo – Foros, noticias (RSS), wikis, notificaciones – Publicación de binarios y documentos – Gestión de tareas y errores con tickets ● Desarrollo eficiente, transparencia y visibilidad
  • 4. Forjas de software ● Forja de código – https://github.com – https://bitbucket.org – https://forja.cica.es – ... ● Y hay muchas más, cada una con sus ventajas e inconvenientes: – https://en.wikipedia.org/wiki/Comparison_of_source_code_hosting_facilities ● Veamos un ejemplo de proyecto: Prepack ● https://github.com/facebook/prepack
  • 5. Control de versiones de código fuente ● Probablemente la función más destacada de una forja es la de ofrecer un control de versiones de código fuente, que: – Mantiene copias de todas las versiones del código fuente en el servidor con sus autores – Permite recuperar versiones anteriores y compararlas con otras recientes (diff/tkdiff) – Funde las aportaciones de varios usuarios :-O – Permite establecer determinados flujos de trabajo – Genera estadísticas (con http://gource.io, GitStats, etc)
  • 6. Control de versiones de código fuente ● Todo empezó con CVS (1986) ● Después llegó SVN, “CVS done right” ● Y el que se ha implantado masivamente en los últimos años es git – Permite hacer lo mismo que SVN ● Mucha gente es lo único que usa de git ;) – También permite la gestión distribuida ● Existen otras alternativas: Bazaar, etc ● Disponible desde línea de comandos, entorno gráfico (Tortoise) o integrados en IDE (Eclipse)
  • 7. Control de versiones de código fuente ● Actualmente Github es un estándar “de facto” para demostrar al mundo (comunidad, empresas, etc) tus habilidades como desarrollador – No se busca que todo lo que haya sea bueno: todos hemos empezado desde abajo – Sí que se vaya aprendiendo ● Y que lo que sea inestable se etiquete como tal ● Ejemplo: – https://github.com/saltares
  • 8. Servicios más avanzados ● Hay servicios más avanzados: – Gestores de (determinados binarios) para sistemas de control de versiones – Integración con otras herramientas – Testing continuo – ...
  • 9. Para los que vienen de DropBox ● La forja es “como la nube de DropBox” – Pero montada en condiciones para programadores ● Para gestionar (mandar, recibir, etc) código se usa un control de versiones (git, svn, etc) que la forja soporte – Hay forja soportan varios: bitbucket admite git y svn ● Pero en cada proyecto sólo puede usar uno ● Programas en tu equipo como siempre: – Eclipse, emacs, codeblocks, ...
  • 10. Git ● Sistema de control de versiones ● Distribuido ● Usa línea de comandos ● Creado por y para Linux ● Permite el despliegue de aplicaciones e integración continua Wikipedia Commons ­ CC
  • 12. Crear repositorio local ● A) Crear repositorio local y añadir la URL remota – git init – git remote add origin URL ● B) Clonar repositorio remoto directamente (más fácil) – git clone URL CC-BY Jurvetson https://www.flickr.com/photos/jurvets on/3327872958
  • 13. Lo primero que deberíamos crear ● LICENSE ● README ● .gitignore
  • 14. PULL: Bajarse cambios remotos ● git pull ● git pull origin master ● git pull origin rama_concreta
  • 15. COMMIT: Añadir cambios al repositorio local 1) ¿Cómo está el tema? – git status 2) On your marks! Indicar qué ficheros van a entrar en el commit (a diferencia de otros gestores, que siempre guardan cualquier cambio) – git add FICHERO #(OJOCUIDAO CON ESTO!) – git rm FICHERO – git mv FICHERO LOQUESEA ● 3) ¡Pa entro! – git commit ­m “He cambiado tal cosa” – git commit ­am “He cambiado tal cosa, pero subo todos  los modificados sin pensar”
  • 16. PUSH: Subir al repositorio remoto ● git push Cc-by Wikipedia Commons
  • 17. OH NOES! ● Alguien ha hecho cambios antes que yo! ● Si es en ficheros distintos – git pull – No hay problema – git push ● Si hemos tocado el mismo fichero – git pull – MERGE EN EL FICHERO! – Se arregla el fichero si hace falta – git commit ­am “Juntando to” – git push ● Oh Shit git! ohshitgit.com CC-BY Donny Ray Jones https://www.flickr.com/photos/d onnieray/11865356303
  • 18. Me voy por las ramas ● Creamos rama – git branch nueva­rama ● Nos movemos a la rama – git checkout nueva­rama ● ¿Ande estoy? – git branch ● Unimos ramas – git merge la­otra https://www.flickr.com/photos/fwolf/3389188179 CC-BY-SA-NC
  • 19. Cosas guays de Github ● Fork: copiarme un repo a mi cuenta para no molestar al dueño ● Pull Request: solicitar al dueño que meta mis cambios en su repo ● Issues: Tareas pendientes. Pueden vincularse a commits para cerrarlos o citarlos. ● Claves ssh: evitar meter usuario y contraseña.
  • 20. Agradecimientos ● Presentación: El Zen de Git http://www.psicobyte.com/info/descargas
  • 21. Gracias por la atención ¿Preguntas?