SlideShare una empresa de Scribd logo
1 de 44
Universidad de Oviedo

Arquitectura del Software

Universidad de Oviedo

Arquitectura del Software
Escuela de Ingeniería Informática

Seminario: GIT

2014

Jose Emilio Labra Gayo
Universidad de Oviedo

Arquitectura del Software

Sistemas de control de versiones
Centralizados
Un repositorio centralizado de todo el código
Ejemplos: CVS, Subversion,...

Escuela de Ingeniería Informática

Distribuidos
Cada usuario tiene su propio repositorio
Ejemplos: mercurial, git, ...
Universidad de Oviedo

Arquitectura del Software

Git
Diseñado por Linus Torvalds (Linux), 2005
Objetivos:
Aplicaciones con gran nº de archivos de código
Eficiencia

Escuela de Ingeniería Informática

Trabajo distribuido
Cada desarrollador tiene su propio repositorio
Copia local de todo el historial de cambios
Es posible realizar commit's incluso sin conexión

Desarrollo no lineal (ramificaciones)
Universidad de Oviedo

Arquitectura del Software

Componentes locales
3 componentes locales:
Directorio de trabajo local
Índice: área de ensayo (stage). A veces también caché.
Historial: Almacena versiones ó commits

Escuela de Ingeniería Informática

HEAD (versión más reciente)
add

commit

rm

Directorio
trabajo
local

Índice
stage
area

HEAD

Historial
Commits
Universidad de Oviedo

Arquitectura del Software

Ramas

Ramas

feature-2 feature-1

Git facilita gestión de ramas

develop

hotfix-1 master

tags

0.1

master = rama inicial

Escuela de Ingeniería Informática

Operaciones:
Crear ramas (branch)
Cambiar a ramas (checkout)
Combinar (merge)
Etiquetar (tag)

Múltiples estilos de
ramificación

0.2

1.0
Universidad de Oviedo

Arquitectura del Software

Repositorios remotos
Se pueden conectar con repositorios remotos
origin = inicial
push
add

commit

Escuela de Ingeniería Informática

rm

Directorio
trabajo
local

Índice
stage
area
Máquina
Local

HEAD

Historial
Commits

clone
fetch
pull

Repositorio
remoto
origin
Escuela de Ingeniería Informática

Universidad de Oviedo

Arquitectura del Software

init
clone
config
add
commit
status
log
diff
Universidad de Oviedo

Arquitectura del Software

init - Crear repositorios
git init
Transforma el directorio actual en repositorio Git
Se crea directorio .git
Variantes:

Escuela de Ingeniería Informática

git init <directorio>
Crea un repositorio vacío en el directorio especificado

git init --bare <directorio>
Inicializa repositorio Git pero omite directorio de trabajo
NOTA: Normalmente, esta instrucción sólo se realiza una vez
Universidad de Oviedo

Arquitectura del Software

clone - Clonar repositorios
git clone <repo>
Clonar el repositorio <repo> en la máquina local
<repo> puede estar en una máquina remota
Ejemplo:

Escuela de Ingeniería Informática

git clone https://github.com/Arquisoft/ObservaTerra0.git

NOTA: Al igual que init, esta instrucción sólo se realiza una vez
Universidad de Oviedo

Arquitectura del Software

config - Configurar git
git config --global user.name <name>
Declara el nombre de usuario
Otras opciones de configuración:
user.email, merge.tool, core.editor, ...

Escuela de Ingeniería Informática

Ficheros de configuración:
<repo>/.git/config
~/.git/config

-- Específicos de repositorio
-- Globales
Universidad de Oviedo

Arquitectura del Software

add - Añadir al índice
git add <fichero>
git add <dir>
Añade fichero o directorio al índice

Escuela de Ingeniería Informática

Variantes
git add --all = Añade/borra ficheros

El índice ó área de ensayo almacena copias de los
ficheros antes de ser incluidos en el historial
Universidad de Oviedo

Arquitectura del Software

commit - Añadir al historial
git commit
git commit -m "mensaje"
Añade los ficheros del índice al historial

Escuela de Ingeniería Informática

Crea una nueva instantánea "snapshot" del proyecto
Cada instantánea tiene un identificador SHA1
Puede recuperarse posteriormente
Pueden asignarse etiquetas para facilitar su gestión
NOTA: Conviene excluir de control de versiones algunos ficheros
Ejemplos: binarios (*.class), temporales, configuración (.settings),
privados (claves de Bases de datos...), etc.
Se incluyen en fichero: .gitignore
Universidad de Oviedo

Arquitectura del Software

status - Observar índice
git status
Muestra ficheros staged, unstaged y untracked

Escuela de Ingeniería Informática

staged
= en índice pero no en historial
unstaged = modificados pero no añadidos a índice
untracked = en directorio de trabajo
Universidad de Oviedo

Arquitectura del Software

log - Observar historial
git log

Muestra historial de cambios

Escuela de Ingeniería Informática

Variantes
git
git
git
git
git

log
log
log
log
log

--oneline
--stat
-p
--autor="expr"
--grep="expr"

Resumen en 1 línea
Estadísticas
Camino completo con diff
Commits de un autor
Busca commits

git log --graph --decorate --online
Muestra grafo de cambios
Universidad de Oviedo

Arquitectura del Software

diff - Mostrar diferencias
git diff
Dir. trabajo vs índice

git diff --cached

git diff

git diff --cached

Índice vs commit
Escuela de Ingeniería Informática

git diff HEAD
Dir. trabajo vs commit

Algunas pciones:
--color-words
--stat

Directorio
trabajo

Índice
HEAD
git diff HEAD
Universidad de Oviedo

Arquitectura del Software

Escuela de Ingeniería Informática

Comandos para deshacer cambios
checkout
revert
reset
clean
Universidad de Oviedo

Arquitectura del Software

checkout - Cambiar
Cambia directorio de trabajo
git checkout <c>

Cambiar a commit <c>

Escuela de Ingeniería Informática

Se pasa a estado "detached HEAD"

git checkout <c> <f>
Recupera fichero <f> de commit <c>
NOTA:
checkout también se utiliza para cambiar a
diferentes ramas
Universidad de Oviedo

Arquitectura del Software

revert - Recuperar
git revert <c>

Recupera commit <c>

Añade la versión recuperada al historial
Operación "segura"

Escuela de Ingeniería Informática

permite rastrear cambios en historial
Universidad de Oviedo

Arquitectura del Software

reset - Deshacer
Deshacer cambios
Operación no segura

Escuela de Ingeniería Informática

git reset
git reset --hard
git reset <c>

Deshace cambios en índice
Deshace cambios en índice y
directorio trabajo
Deshacer cambios y recuperar
commit <c>

NOTA: Es peligroso hacer reset en repositorios ya publicados
Es mejor utilizar revert
Universidad de Oviedo

Arquitectura del Software

clean - Limpiar
Borrar ficheros locales
git clean -f Borra ficheros untracked

Escuela de Ingeniería Informática

NOTA: Peligroso (se pueden perder cambios locales)

git clean -n Muestra qué ficheros se borrarían
Escuela de Ingeniería Informática
Universidad de Oviedo

Arquitectura del Software

branch
checkout
merge
Universidad de Oviedo

Arquitectura del Software

branch - Ramas
Gestión de ramas
git branch
git branch <r>

Muestra las ramas existentes
Crear la rama <r>

Escuela de Ingeniería Informática

git branch -d <r> Borrar rama <r>
Segura (no borra si no hay mezclas pendientes)

git branch -D <r> Borrar rama <r>
Insegura (borra una rama y sus commits)

git branch -m <r> Renombrar rama actual a <r>
Universidad de Oviedo

Arquitectura del Software

checkout - Cambiar
Cambiar a una rama

Escuela de Ingeniería Informática

git checkout <r>
Cambia a la rama existente <r>
git checkout master
Cambia a rama master
git checkout -b <r>
Crear rama <r> y cambia a ella
Equivalente a
git branch <r>
git checkout <r>
Universidad de Oviedo

Arquitectura del Software

merge - Combinar
Combinar dos ramas

Escuela de Ingeniería Informática

git merge <r>
Mezclar rama actual con <r>
git merge --no-ff <r> Mezclar generando commit
de mezcla (más seguro)

2 tipos de combinación
Merge fast-forward
3-way merge
Universidad de Oviedo

Arquitectura del Software

merge fast-forward
Cuando hay camino
lineal entre rama actual
y rama a mezclar

Antes
Rama r desarrollada
En rama master

r

Escuela de Ingeniería Informática

master

Después de
git merge master

r

master
Universidad de Oviedo

Arquitectura del Software

3 way merge
Cuando las ramas
divergen y no se puede
hacer fast-forward

Antes
Rama r desarrollada
En rama master

master

Escuela de Ingeniería Informática

Si aparecen conflictos:
Mostrar: git status
Editar/corregir
git add .
git commit

r

Después de
git merge r

r

master
Escuela de Ingeniería Informática
Universidad de Oviedo

Arquitectura del Software

commit --amend
rebase
reflog
Universidad de Oviedo

Arquitectura del Software

Commit -amend
Modificar un commit
git commit --amend

Escuela de Ingeniería Informática

Permite añadir nuevos ficheros del índice al
commit actual

NOTA: Se recomienda no hacerlo en commit's públicos
Universidad de Oviedo

Arquitectura del Software
rama

rama

rebase - Mover rama
master

git rebase <c> Mover rama actual a commit <c>
Permite que los cambios de una rama se basen en los
cambios de otras ramas
Escuela de Ingeniería Informática

rama

rama

git checkout rama
git rebase master
git checkout master
git merge rama

master

master

NOTA: Se recomienda no hacer rebases
sobre commits ya publicados
Universidad de Oviedo

Arquitectura del Software

rebase interactivo
git rebase -i
Controla qué commits se mantienen en el historial

Escuela de Ingeniería Informática

Puede utilizarse para limpiar el historial
Aparece un editor con varas instrucciones:
pick - utilizar commit tal cual
reword - modificar mensaje de commit
squash - utilizar commit pero hacer que no se vea
...
Universidad de Oviedo

Arquitectura del Software

reflog - movimientos en historial
git reflog
Muestra movimientos del historial

Escuela de Ingeniería Informática

git almacena información de todos los movimientos
que se producen en las diferentes ramas
git reflog muestra los cambios aunque ya no estén en
ninguna rama
Escuela de Ingeniería Informática
Universidad de Oviedo

Arquitectura del Software

remote
fetch
pull
push
Universidad de Oviedo

Arquitectura del Software

remote - Conectar repositorios
git remote
Ver repositorios externos

git remote add <nombre> <uri>
Crear conexión de nombre <nombre> a <uri>

Escuela de Ingeniería Informática

git remote rm <nombre>
Borrar conexión <nombre>

git rename <anterior> <nuevo>
Renombrar conexión <anterior> a <nuevo>
NOTAS: git clone crea automáticamente una conexión llamada origin
Es posible tener conexiones a más de un repositorio externo
Universidad de Oviedo

Arquitectura del Software

fetch - traer
Traer elementos de repositorio remoto
Permite descargar ramas externas
Operación segura: no mezcla con ficheros locales

git fetch <remote>
Escuela de Ingeniería Informática

Descargar todas las ramas del repositorio <remote>

git fetch <remote> <rama>
Descargar la rama <rama> de repositorio <remote>
NOTA: Asigna FETCH_HEAD a cabeza de rama traída
Convenio para nombrar ramas: <remoto>/<rama>
Ejemplo: origin/master
Universidad de Oviedo

Arquitectura del Software

pull - traer y mezclar
git pull <remoto>
Trae un repositorio remoto y lo mezcla
Equivale a:

Escuela de Ingeniería Informática

git fetch
git merge FETCH_HEAD
Universidad de Oviedo

Arquitectura del Software

push - enviar
git push <remoto> <rama>
Enviar commits de repositorio local a remoto
Variantes
git push <remoto> --all

Escuela de Ingeniería Informática

Enviar todas las ramas
Si hay cambios en repositorio remoto, muestra un error (non-fast-forward).
Solución:
1. Traer (pull) cambios y mezclar con repositorio local
2. Volver a enviar (push)
NOTA: También puede usarse opción: --force (no recomendado)
Universidad de Oviedo

Arquitectura del Software

Herramientas Git

Escuela de Ingeniería Informática

git - Línea de comandos
gitk interfaz gráfico
Escuela de Ingeniería Informática
Universidad de Oviedo

Arquitectura del Software

EGit - Entorno para Eclipse
Escuela de Ingeniería Informática
Universidad de Oviedo

Arquitectura del Software

SourceTree
Universidad de Oviedo

Arquitectura del Software

Tortoise Git

Escuela de Ingeniería Informática

Se integra con explorador de Windows
Universidad de Oviedo

Arquitectura del Software

Otras herramientas
http://git-scm.com/downloads/guis
Gestión de diferencias y mezclas

Escuela de Ingeniería Informática

p4merge
kdiff
Universidad de Oviedo

Arquitectura del Software

Github
Herramienta de codificación social
Compañía Github Inc. creada en 2008
2013: >3 millones de usuarios, >5millones proyectos

Escuela de Ingeniería Informática

Gestión gratuita de proyectos de código abierto
Proyectos públicos por defecto y gratis
Es posible tener proyectos privados pagando
Universidad de Oviedo

Arquitectura del Software

Github
Facilidades como repositorio de proyectos
Gestión de issues/milestones
Wiki
Seguimiento de repositorios, usuarios, etc.

Escuela de Ingeniería Informática

Pull Requests
Solicitar combinaciones y mezclas
Revisiones de código
Permite incluir comentarios, ver diferencias, etc.

Gestión de listas de pull requests
Universidad de Oviedo

Arquitectura del Software

Referencias
Tutoriales

Escuela de Ingeniería Informática

http://rogerdudler.github.com/git-guide/
https://www.atlassian.com/git
http://training.github.com/materials/slides/
http://nvie.com/posts/a-successful-git-branchingmodel/

Vídeos
http://vimeo.com/49444883

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Git Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowGit Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-Flow
 
Advanced Git
Advanced GitAdvanced Git
Advanced Git
 
Learning git
Learning gitLearning git
Learning git
 
Git l'essentiel
Git l'essentielGit l'essentiel
Git l'essentiel
 
Subversion to Git Migration
Subversion to Git MigrationSubversion to Git Migration
Subversion to Git Migration
 
PPT Git GitHub
PPT Git GitHubPPT Git GitHub
PPT Git GitHub
 
WorkShop: Introducción a GIT
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GIT
 
Intro to Git and GitHub
Intro to Git and GitHubIntro to Git and GitHub
Intro to Git and GitHub
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
 
Git Started With Git
Git Started With GitGit Started With Git
Git Started With Git
 
GIT | Distributed Version Control System
GIT | Distributed Version Control SystemGIT | Distributed Version Control System
GIT | Distributed Version Control System
 
Git and github 101
Git and github 101Git and github 101
Git and github 101
 
git - eine praktische Einführung
git - eine praktische Einführunggit - eine praktische Einführung
git - eine praktische Einführung
 
A successful Git branching model
A successful Git branching model A successful Git branching model
A successful Git branching model
 
Helm intro
Helm introHelm intro
Helm intro
 
Introduction to Gitlab
Introduction to GitlabIntroduction to Gitlab
Introduction to Gitlab
 
Apache maven 2 overview
Apache maven 2 overviewApache maven 2 overview
Apache maven 2 overview
 
Introduction to Git / Github
Introduction to Git / GithubIntroduction to Git / Github
Introduction to Git / Github
 
Git for beginners
Git for beginnersGit for beginners
Git for beginners
 
Git & GitLab
Git & GitLabGit & GitLab
Git & GitLab
 

Similar a Introducción a GIT

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
 
Git & GitHub Part II
Git & GitHub Part IIGit & GitHub Part II
Git & GitHub Part IIMax Rodriguez
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con gitJuan Vladimir
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasJosé Moreno
 
Introducción a GIT
Introducción a GITIntroducción a GIT
Introducción a GITmaxfontana90
 
Uso de git para el mantenimiento de parches locales o públicos
Uso de git para el mantenimiento  de parches locales o públicosUso de git para el mantenimiento  de parches locales o públicos
Uso de git para el mantenimiento de parches locales o públicosIñaki Arenaza
 
Presentacion svn
Presentacion svnPresentacion svn
Presentacion svnIBM
 
Administra tu código con Git y Github
Administra tu código con Git y GithubAdministra tu código con Git y Github
Administra tu código con Git y GithubJavier Novoa Cataño
 
Jesús Amieiro: Git para el día a día
Jesús Amieiro: Git para el día a díaJesús Amieiro: Git para el día a día
Jesús Amieiro: Git para el día a díaPHP Vigo
 
Desarrollando aplicaciones .NET en Linux
Desarrollando aplicaciones .NET en LinuxDesarrollando aplicaciones .NET en Linux
Desarrollando aplicaciones .NET en LinuxMarlon Leandro
 
Introducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y gitIntroducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y gitDrPantera
 
Versionando proyectos con Git, desarrollo de software colaborativo
Versionando proyectos con Git, desarrollo de software colaborativoVersionando proyectos con Git, desarrollo de software colaborativo
Versionando proyectos con Git, desarrollo de software colaborativoHernán Aguilera
 
Técnicas avanzadas de control de versiones
Técnicas avanzadas de control de versionesTécnicas avanzadas de control de versiones
Técnicas avanzadas de control de versionesAngel Armenta
 
GIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdfGIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdfMartinBonuccelli
 

Similar a Introducción a GIT (20)

The Gift of Git [Español: La Palabra de Git]
The Gift of Git [Español: La Palabra de Git]The Gift of Git [Español: La Palabra de Git]
The Gift of Git [Español: La Palabra de Git]
 
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
 
Git & GitHub Part II
Git & GitHub Part IIGit & GitHub Part II
Git & GitHub Part II
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con git
 
github-git-cheat-sheet.pdf
github-git-cheat-sheet.pdfgithub-git-cheat-sheet.pdf
github-git-cheat-sheet.pdf
 
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
 
Uso de git para el mantenimiento de parches locales o públicos
Uso de git para el mantenimiento  de parches locales o públicosUso de git para el mantenimiento  de parches locales o públicos
Uso de git para el mantenimiento de parches locales o públicos
 
Presentacion svn
Presentacion svnPresentacion svn
Presentacion svn
 
Administra tu código con Git y Github
Administra tu código con Git y GithubAdministra tu código con Git y Github
Administra tu código con Git y Github
 
Jesús Amieiro: Git para el día a día
Jesús Amieiro: Git para el día a díaJesús Amieiro: Git para el día a día
Jesús Amieiro: Git para el día a día
 
Desarrollando aplicaciones .NET en Linux
Desarrollando aplicaciones .NET en LinuxDesarrollando aplicaciones .NET en Linux
Desarrollando aplicaciones .NET en Linux
 
Dependency Managers iOS
Dependency Managers iOSDependency Managers iOS
Dependency Managers iOS
 
Introducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y gitIntroducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y git
 
Versionando proyectos con Git, desarrollo de software colaborativo
Versionando proyectos con Git, desarrollo de software colaborativoVersionando proyectos con Git, desarrollo de software colaborativo
Versionando proyectos con Git, desarrollo de software colaborativo
 
Dependency Managers
Dependency ManagersDependency Managers
Dependency Managers
 
Git / Guía Básica
Git / Guía BásicaGit / Guía Básica
Git / Guía Básica
 
Técnicas avanzadas de control de versiones
Técnicas avanzadas de control de versionesTécnicas avanzadas de control de versiones
Técnicas avanzadas de control de versiones
 
Cheat-Sheet Git Commands
Cheat-Sheet Git CommandsCheat-Sheet Git Commands
Cheat-Sheet Git Commands
 
GIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdfGIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdf
 

Más de Jose Emilio Labra Gayo

Introducción a la investigación/doctorado
Introducción a la investigación/doctoradoIntroducción a la investigación/doctorado
Introducción a la investigación/doctoradoJose Emilio Labra Gayo
 
Challenges and applications of RDF shapes
Challenges and applications of RDF shapesChallenges and applications of RDF shapes
Challenges and applications of RDF shapesJose Emilio Labra Gayo
 
Legislative data portals and linked data quality
Legislative data portals and linked data qualityLegislative data portals and linked data quality
Legislative data portals and linked data qualityJose Emilio Labra Gayo
 
Validating RDF data: Challenges and perspectives
Validating RDF data: Challenges and perspectivesValidating RDF data: Challenges and perspectives
Validating RDF data: Challenges and perspectivesJose Emilio Labra Gayo
 
Legislative document content extraction based on Semantic Web technologies
Legislative document content extraction based on Semantic Web technologiesLegislative document content extraction based on Semantic Web technologies
Legislative document content extraction based on Semantic Web technologiesJose Emilio Labra Gayo
 
Como publicar datos: hacia los datos abiertos enlazados
Como publicar datos: hacia los datos abiertos enlazadosComo publicar datos: hacia los datos abiertos enlazados
Como publicar datos: hacia los datos abiertos enlazadosJose Emilio Labra Gayo
 
Arquitectura de la Web y Computación en el Servidor
Arquitectura de la Web y Computación en el ServidorArquitectura de la Web y Computación en el Servidor
Arquitectura de la Web y Computación en el ServidorJose Emilio Labra Gayo
 

Más de Jose Emilio Labra Gayo (20)

Publicaciones de investigación
Publicaciones de investigaciónPublicaciones de investigación
Publicaciones de investigación
 
Introducción a la investigación/doctorado
Introducción a la investigación/doctoradoIntroducción a la investigación/doctorado
Introducción a la investigación/doctorado
 
Challenges and applications of RDF shapes
Challenges and applications of RDF shapesChallenges and applications of RDF shapes
Challenges and applications of RDF shapes
 
Legislative data portals and linked data quality
Legislative data portals and linked data qualityLegislative data portals and linked data quality
Legislative data portals and linked data quality
 
Validating RDF data: Challenges and perspectives
Validating RDF data: Challenges and perspectivesValidating RDF data: Challenges and perspectives
Validating RDF data: Challenges and perspectives
 
Wikidata
WikidataWikidata
Wikidata
 
Legislative document content extraction based on Semantic Web technologies
Legislative document content extraction based on Semantic Web technologiesLegislative document content extraction based on Semantic Web technologies
Legislative document content extraction based on Semantic Web technologies
 
ShEx by Example
ShEx by ExampleShEx by Example
ShEx by Example
 
Introduction to SPARQL
Introduction to SPARQLIntroduction to SPARQL
Introduction to SPARQL
 
Introducción a la Web Semántica
Introducción a la Web SemánticaIntroducción a la Web Semántica
Introducción a la Web Semántica
 
RDF Data Model
RDF Data ModelRDF Data Model
RDF Data Model
 
2017 Tendencias en informática
2017 Tendencias en informática2017 Tendencias en informática
2017 Tendencias en informática
 
RDF, linked data and semantic web
RDF, linked data and semantic webRDF, linked data and semantic web
RDF, linked data and semantic web
 
Introduction to SPARQL
Introduction to SPARQLIntroduction to SPARQL
Introduction to SPARQL
 
19 javascript servidor
19 javascript servidor19 javascript servidor
19 javascript servidor
 
Como publicar datos: hacia los datos abiertos enlazados
Como publicar datos: hacia los datos abiertos enlazadosComo publicar datos: hacia los datos abiertos enlazados
Como publicar datos: hacia los datos abiertos enlazados
 
16 Alternativas XML
16 Alternativas XML16 Alternativas XML
16 Alternativas XML
 
XSLT
XSLTXSLT
XSLT
 
XPath
XPathXPath
XPath
 
Arquitectura de la Web y Computación en el Servidor
Arquitectura de la Web y Computación en el ServidorArquitectura de la Web y Computación en el Servidor
Arquitectura de la Web y Computación en el Servidor
 

Último

Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Katherine Concepcion Gonzalez
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfpatriciaines1993
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOluismii249
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024IES Vicent Andres Estelles
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfGruberACaraballo
 
Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.JonathanCovena1
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Juan Martín Martín
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primariaWilian24
 
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSSEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSYadi Campos
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOluismii249
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024IES Vicent Andres Estelles
 
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptxEL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptxsisimosolorzano
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptAlberto Rubio
 

Último (20)

Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSSEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptxEL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 

Introducción a GIT

  • 1. Universidad de Oviedo Arquitectura del Software Universidad de Oviedo Arquitectura del Software Escuela de Ingeniería Informática Seminario: GIT 2014 Jose Emilio Labra Gayo
  • 2. Universidad de Oviedo Arquitectura del Software Sistemas de control de versiones Centralizados Un repositorio centralizado de todo el código Ejemplos: CVS, Subversion,... Escuela de Ingeniería Informática Distribuidos Cada usuario tiene su propio repositorio Ejemplos: mercurial, git, ...
  • 3. Universidad de Oviedo Arquitectura del Software Git Diseñado por Linus Torvalds (Linux), 2005 Objetivos: Aplicaciones con gran nº de archivos de código Eficiencia Escuela de Ingeniería Informática Trabajo distribuido Cada desarrollador tiene su propio repositorio Copia local de todo el historial de cambios Es posible realizar commit's incluso sin conexión Desarrollo no lineal (ramificaciones)
  • 4. Universidad de Oviedo Arquitectura del Software Componentes locales 3 componentes locales: Directorio de trabajo local Índice: área de ensayo (stage). A veces también caché. Historial: Almacena versiones ó commits Escuela de Ingeniería Informática HEAD (versión más reciente) add commit rm Directorio trabajo local Índice stage area HEAD Historial Commits
  • 5. Universidad de Oviedo Arquitectura del Software Ramas Ramas feature-2 feature-1 Git facilita gestión de ramas develop hotfix-1 master tags 0.1 master = rama inicial Escuela de Ingeniería Informática Operaciones: Crear ramas (branch) Cambiar a ramas (checkout) Combinar (merge) Etiquetar (tag) Múltiples estilos de ramificación 0.2 1.0
  • 6. Universidad de Oviedo Arquitectura del Software Repositorios remotos Se pueden conectar con repositorios remotos origin = inicial push add commit Escuela de Ingeniería Informática rm Directorio trabajo local Índice stage area Máquina Local HEAD Historial Commits clone fetch pull Repositorio remoto origin
  • 7. Escuela de Ingeniería Informática Universidad de Oviedo Arquitectura del Software init clone config add commit status log diff
  • 8. Universidad de Oviedo Arquitectura del Software init - Crear repositorios git init Transforma el directorio actual en repositorio Git Se crea directorio .git Variantes: Escuela de Ingeniería Informática git init <directorio> Crea un repositorio vacío en el directorio especificado git init --bare <directorio> Inicializa repositorio Git pero omite directorio de trabajo NOTA: Normalmente, esta instrucción sólo se realiza una vez
  • 9. Universidad de Oviedo Arquitectura del Software clone - Clonar repositorios git clone <repo> Clonar el repositorio <repo> en la máquina local <repo> puede estar en una máquina remota Ejemplo: Escuela de Ingeniería Informática git clone https://github.com/Arquisoft/ObservaTerra0.git NOTA: Al igual que init, esta instrucción sólo se realiza una vez
  • 10. Universidad de Oviedo Arquitectura del Software config - Configurar git git config --global user.name <name> Declara el nombre de usuario Otras opciones de configuración: user.email, merge.tool, core.editor, ... Escuela de Ingeniería Informática Ficheros de configuración: <repo>/.git/config ~/.git/config -- Específicos de repositorio -- Globales
  • 11. Universidad de Oviedo Arquitectura del Software add - Añadir al índice git add <fichero> git add <dir> Añade fichero o directorio al índice Escuela de Ingeniería Informática Variantes git add --all = Añade/borra ficheros El índice ó área de ensayo almacena copias de los ficheros antes de ser incluidos en el historial
  • 12. Universidad de Oviedo Arquitectura del Software commit - Añadir al historial git commit git commit -m "mensaje" Añade los ficheros del índice al historial Escuela de Ingeniería Informática Crea una nueva instantánea "snapshot" del proyecto Cada instantánea tiene un identificador SHA1 Puede recuperarse posteriormente Pueden asignarse etiquetas para facilitar su gestión NOTA: Conviene excluir de control de versiones algunos ficheros Ejemplos: binarios (*.class), temporales, configuración (.settings), privados (claves de Bases de datos...), etc. Se incluyen en fichero: .gitignore
  • 13. Universidad de Oviedo Arquitectura del Software status - Observar índice git status Muestra ficheros staged, unstaged y untracked Escuela de Ingeniería Informática staged = en índice pero no en historial unstaged = modificados pero no añadidos a índice untracked = en directorio de trabajo
  • 14. Universidad de Oviedo Arquitectura del Software log - Observar historial git log Muestra historial de cambios Escuela de Ingeniería Informática Variantes git git git git git log log log log log --oneline --stat -p --autor="expr" --grep="expr" Resumen en 1 línea Estadísticas Camino completo con diff Commits de un autor Busca commits git log --graph --decorate --online Muestra grafo de cambios
  • 15. Universidad de Oviedo Arquitectura del Software diff - Mostrar diferencias git diff Dir. trabajo vs índice git diff --cached git diff git diff --cached Índice vs commit Escuela de Ingeniería Informática git diff HEAD Dir. trabajo vs commit Algunas pciones: --color-words --stat Directorio trabajo Índice HEAD git diff HEAD
  • 16. Universidad de Oviedo Arquitectura del Software Escuela de Ingeniería Informática Comandos para deshacer cambios checkout revert reset clean
  • 17. Universidad de Oviedo Arquitectura del Software checkout - Cambiar Cambia directorio de trabajo git checkout <c> Cambiar a commit <c> Escuela de Ingeniería Informática Se pasa a estado "detached HEAD" git checkout <c> <f> Recupera fichero <f> de commit <c> NOTA: checkout también se utiliza para cambiar a diferentes ramas
  • 18. Universidad de Oviedo Arquitectura del Software revert - Recuperar git revert <c> Recupera commit <c> Añade la versión recuperada al historial Operación "segura" Escuela de Ingeniería Informática permite rastrear cambios en historial
  • 19. Universidad de Oviedo Arquitectura del Software reset - Deshacer Deshacer cambios Operación no segura Escuela de Ingeniería Informática git reset git reset --hard git reset <c> Deshace cambios en índice Deshace cambios en índice y directorio trabajo Deshacer cambios y recuperar commit <c> NOTA: Es peligroso hacer reset en repositorios ya publicados Es mejor utilizar revert
  • 20. Universidad de Oviedo Arquitectura del Software clean - Limpiar Borrar ficheros locales git clean -f Borra ficheros untracked Escuela de Ingeniería Informática NOTA: Peligroso (se pueden perder cambios locales) git clean -n Muestra qué ficheros se borrarían
  • 21. Escuela de Ingeniería Informática Universidad de Oviedo Arquitectura del Software branch checkout merge
  • 22. Universidad de Oviedo Arquitectura del Software branch - Ramas Gestión de ramas git branch git branch <r> Muestra las ramas existentes Crear la rama <r> Escuela de Ingeniería Informática git branch -d <r> Borrar rama <r> Segura (no borra si no hay mezclas pendientes) git branch -D <r> Borrar rama <r> Insegura (borra una rama y sus commits) git branch -m <r> Renombrar rama actual a <r>
  • 23. Universidad de Oviedo Arquitectura del Software checkout - Cambiar Cambiar a una rama Escuela de Ingeniería Informática git checkout <r> Cambia a la rama existente <r> git checkout master Cambia a rama master git checkout -b <r> Crear rama <r> y cambia a ella Equivalente a git branch <r> git checkout <r>
  • 24. Universidad de Oviedo Arquitectura del Software merge - Combinar Combinar dos ramas Escuela de Ingeniería Informática git merge <r> Mezclar rama actual con <r> git merge --no-ff <r> Mezclar generando commit de mezcla (más seguro) 2 tipos de combinación Merge fast-forward 3-way merge
  • 25. Universidad de Oviedo Arquitectura del Software merge fast-forward Cuando hay camino lineal entre rama actual y rama a mezclar Antes Rama r desarrollada En rama master r Escuela de Ingeniería Informática master Después de git merge master r master
  • 26. Universidad de Oviedo Arquitectura del Software 3 way merge Cuando las ramas divergen y no se puede hacer fast-forward Antes Rama r desarrollada En rama master master Escuela de Ingeniería Informática Si aparecen conflictos: Mostrar: git status Editar/corregir git add . git commit r Después de git merge r r master
  • 27. Escuela de Ingeniería Informática Universidad de Oviedo Arquitectura del Software commit --amend rebase reflog
  • 28. Universidad de Oviedo Arquitectura del Software Commit -amend Modificar un commit git commit --amend Escuela de Ingeniería Informática Permite añadir nuevos ficheros del índice al commit actual NOTA: Se recomienda no hacerlo en commit's públicos
  • 29. Universidad de Oviedo Arquitectura del Software rama rama rebase - Mover rama master git rebase <c> Mover rama actual a commit <c> Permite que los cambios de una rama se basen en los cambios de otras ramas Escuela de Ingeniería Informática rama rama git checkout rama git rebase master git checkout master git merge rama master master NOTA: Se recomienda no hacer rebases sobre commits ya publicados
  • 30. Universidad de Oviedo Arquitectura del Software rebase interactivo git rebase -i Controla qué commits se mantienen en el historial Escuela de Ingeniería Informática Puede utilizarse para limpiar el historial Aparece un editor con varas instrucciones: pick - utilizar commit tal cual reword - modificar mensaje de commit squash - utilizar commit pero hacer que no se vea ...
  • 31. Universidad de Oviedo Arquitectura del Software reflog - movimientos en historial git reflog Muestra movimientos del historial Escuela de Ingeniería Informática git almacena información de todos los movimientos que se producen en las diferentes ramas git reflog muestra los cambios aunque ya no estén en ninguna rama
  • 32. Escuela de Ingeniería Informática Universidad de Oviedo Arquitectura del Software remote fetch pull push
  • 33. Universidad de Oviedo Arquitectura del Software remote - Conectar repositorios git remote Ver repositorios externos git remote add <nombre> <uri> Crear conexión de nombre <nombre> a <uri> Escuela de Ingeniería Informática git remote rm <nombre> Borrar conexión <nombre> git rename <anterior> <nuevo> Renombrar conexión <anterior> a <nuevo> NOTAS: git clone crea automáticamente una conexión llamada origin Es posible tener conexiones a más de un repositorio externo
  • 34. Universidad de Oviedo Arquitectura del Software fetch - traer Traer elementos de repositorio remoto Permite descargar ramas externas Operación segura: no mezcla con ficheros locales git fetch <remote> Escuela de Ingeniería Informática Descargar todas las ramas del repositorio <remote> git fetch <remote> <rama> Descargar la rama <rama> de repositorio <remote> NOTA: Asigna FETCH_HEAD a cabeza de rama traída Convenio para nombrar ramas: <remoto>/<rama> Ejemplo: origin/master
  • 35. Universidad de Oviedo Arquitectura del Software pull - traer y mezclar git pull <remoto> Trae un repositorio remoto y lo mezcla Equivale a: Escuela de Ingeniería Informática git fetch git merge FETCH_HEAD
  • 36. Universidad de Oviedo Arquitectura del Software push - enviar git push <remoto> <rama> Enviar commits de repositorio local a remoto Variantes git push <remoto> --all Escuela de Ingeniería Informática Enviar todas las ramas Si hay cambios en repositorio remoto, muestra un error (non-fast-forward). Solución: 1. Traer (pull) cambios y mezclar con repositorio local 2. Volver a enviar (push) NOTA: También puede usarse opción: --force (no recomendado)
  • 37. Universidad de Oviedo Arquitectura del Software Herramientas Git Escuela de Ingeniería Informática git - Línea de comandos gitk interfaz gráfico
  • 38. Escuela de Ingeniería Informática Universidad de Oviedo Arquitectura del Software EGit - Entorno para Eclipse
  • 39. Escuela de Ingeniería Informática Universidad de Oviedo Arquitectura del Software SourceTree
  • 40. Universidad de Oviedo Arquitectura del Software Tortoise Git Escuela de Ingeniería Informática Se integra con explorador de Windows
  • 41. Universidad de Oviedo Arquitectura del Software Otras herramientas http://git-scm.com/downloads/guis Gestión de diferencias y mezclas Escuela de Ingeniería Informática p4merge kdiff
  • 42. Universidad de Oviedo Arquitectura del Software Github Herramienta de codificación social Compañía Github Inc. creada en 2008 2013: >3 millones de usuarios, >5millones proyectos Escuela de Ingeniería Informática Gestión gratuita de proyectos de código abierto Proyectos públicos por defecto y gratis Es posible tener proyectos privados pagando
  • 43. Universidad de Oviedo Arquitectura del Software Github Facilidades como repositorio de proyectos Gestión de issues/milestones Wiki Seguimiento de repositorios, usuarios, etc. Escuela de Ingeniería Informática Pull Requests Solicitar combinaciones y mezclas Revisiones de código Permite incluir comentarios, ver diferencias, etc. Gestión de listas de pull requests
  • 44. Universidad de Oviedo Arquitectura del Software Referencias Tutoriales Escuela de Ingeniería Informática http://rogerdudler.github.com/git-guide/ https://www.atlassian.com/git http://training.github.com/materials/slides/ http://nvie.com/posts/a-successful-git-branchingmodel/ Vídeos http://vimeo.com/49444883