Upload
php-vigo
View
207
Download
0
Embed Size (px)
Citation preview
● Introducción● Ramas, fusión y conflictos● Repositorios remotos● Flujos de trabajo● Git flow
Contenido
¿Qué es?
Presupuesto_v2.doc
Cartel_v5.jpg
2010_05_17_web
Problemas
VCS / SCM
Soluciones
Tipos de SCM
Versión 1
tiempo
Versión 1
Versión 2
Versión 1
Versión 2
Versión 3
Versión 1
Versión 2
Versión 3
Versión 4Equipo local
Versión 1
Versión 2
Versión 3Equipo 1
Equipo 2
Equipo 3
Equipo 4
Servidorcentral
Equipo 1
V 1
V 2
V 3
Equipo 2
V 1
V 2
V 3
Equipo 3
V 1
V 2
V 3
Servidor
V 1
V 2
V 3
● Rápido y escalable● Copia completa● Desarrollo distribuido● Trabajo local● Alienta las ramas● Instantáneas
Git. Características
● Múltiples protocolos● Robustez: SHA-1● Libre ● Gratuito
Git. Características (II)
Versiones
● Consola● GUI● IDE
Cliente
● SaaS● GitHub● Bitbucket● GitLab
● Servidor● GitHub Enterprise● Bitbucket Server● GitLab● Gitolite
Servidor
Conceptos básicos
Repositorio
Commit
Zonas en GitDirectoriode trabajo
Zona de preparación Repositorio
Preparar archivos
Commit
Checkout
Estados y flujo
Ignorado
Con seguimientoSin
seguimientoSin
modificación Modificado
Añadir archivo
Edición
Commit
Preparado
Eliminar archivo
SHA-1
Commit 160 bitsFunciónSHA-1
HEAD75528b9
Commit 1
75528b9
Commit 1
8daf16a
Commit 2
75528b9
Commit 1
8daf16a
Commit 2
a346348
Commit 3
● git config● git config --global user.name “Jesús Amieiro”
● git init● git clone● git status● git dif● git log
Comandos básicos
● git add● git add .
● git commit● git commit -m “Commit inicial”
Comandos básicos (II)
Ramas
Rama
75528b9
Commit 1
8daf16a
Commit 2
de396a3
Commit 5
a3ae45c
Commit 3
456af81
Commit 4
pruebas
master
HEAD
● git branch● git branch [nombre-rama]● git checkout [nombre-rama]● git checkout -b [nombre-rama]● git branch -d [nombre-rama] ● git merge [nombre-rama]
Comandos ramas
● Abortar la fusión● git merge --abort
● Resolver manualmente● Herramientas fusión
● Meld● P4merge● KDif3
Conflictos fusión
$ git merge pruebas
Auto-merging archivo_a.txt
CONFLICT (content): Merge conflict in archivo_a.txt
Automatic merge failed; fix conflicts and then commit the result.
Conflictos fusión (II)
$ cat archivo_a.txt
<<<<<<< HEAD
Experimento añadiendo una nueva línea al archivo_a.txt en la rama experimento
Añado una segunda línea al archivo_a.txt en la rama master
=======
Inserto una línea en el archivo_a.txt
>>>>>>> pruebas
Conflictos fusión (III)
$ git add archivo_a.txt
$ git commit -m “Resuelto el conflicto en la línea 1 en el archivo_a.txt”
Conflictos fusión (IV)
Repositorios remotos
Equipo 1
V 1
V 2
V 3
Equipo 2
V 1
V 2
V 3
Equipo 3
V 1
V 2
V 3
Servidor
V 1
V 2
V 3
● git remote● git remote add origin
[email protected]:amieiro/proyectocompartido.
git
● git remote -v ● origin [email protected]:amieiro/proyectocompartido.
(fetch)● origin [email protected]:amieiro/proyectocompartido.
(push)
Comandos repositorios
● git fetch● git fetch ● git branch -a -v● git checkout dev● git merge origin/dev
Comandos repositorios (II)
● git pull● git checkout master● git pull● git pull --all
Comandos repositorios (III)
● git push● git push -u origin master● git push● git push --all● git push –tags
● pull push→● fetch vs pull
Comandos repositorios (IV)
Flujos de trabajo habituales
Git flow
● Repositorio organizado● Procedimientos más claros● Estructuras familiares entre
proyectos
Git flow
● Rama de producción: master● Rama de desarrollo: develop● Rama de característica: feature/● Rama de publicación: release/● Rama de revisión: hotfix/
Git flow (II)
● https://github.com/nvie/gitflow/wiki/Command-Line-Arguments
● git flow init● git flow feature● git flow feature start <name>
[<base>]● git flow feature finish <name>
Git flow. Comandos
● git flow feature publish <name>● git flow feature pull <remote>
<name>
Git flow. Comandos (II)
www.jesusamieiro.com
14/03/2016