PDF de programación - Taller de Git - Clase 2 - Branches y Workflows

Imágen de pdf Taller de Git - Clase 2 - Branches y Workflows

Taller de Git - Clase 2 - Branches y Workflowsgráfica de visualizaciones

Actualizado el 4 de Septiembre del 2019 (Publicado el 16 de Julio del 2019)
1.230 visualizaciones desde el 16 de Julio del 2019
346,9 KB
24 paginas
Creado hace 10a (30/10/2013)
Taller de Git

Fernando

López

Repaso
Secciones de
Git
Ciclo de vida
Status
Branches
Introducción
Conceptualmente
Comandos
básicos
Branches y
remotos
Workflows
Introducción
GitHub
workflow
GitFlow
Licencia

Taller de Git

Clase 2 - Branches y Workflows

Fernando López

LINTI

Facultad de Informática

Universidad Nacional de la Plata

30 de Octubre de 2013

Fernando López

Taller de Git

Taller de Git

Fernando

López

Repaso
Secciones de
Git
Ciclo de vida
Status
Branches
Introducción
Conceptualmente
Comandos
básicos
Branches y
remotos
Workflows
Introducción
GitHub
workflow
GitFlow
Licencia

Indice

1 Repaso

Secciones de Git
Ciclo de vida
Status
2 Branches

Introducción
Conceptualmente
Comandos básicos
Branches y remotos

3 Workflows

Introducción
GitHub workflow
GitFlow

4 Licencia

Fernando López

Taller de Git

Links

Taller de Git

Fernando

López

Repaso
Secciones de
Git
Ciclo de vida
Status
Branches
Introducción
Conceptualmente
Comandos
básicos
Branches y
remotos
Workflows
Introducción
GitHub
workflow
GitFlow
Licencia

• http://lihuen.linti.unlp.edu.ar/index.php?title=

Workflow_Git/SVN

• http://lihuen.linti.unlp.edu.ar/index.php?title=Git

Fernando López

Taller de Git

Secciones de Git

Taller de Git

Fernando

López

Repaso
Secciones de
Git
Ciclo de vida
Status
Branches
Introducción
Conceptualmente
Comandos
básicos
Branches y
remotos
Workflows
Introducción
GitHub
workflow
GitFlow
Licencia

Fernando López

Taller de Git

workingdirectorystagingareagit directory(repository)checkout the projectstage filescommitLocal Operations Ciclo de vida de los estados de los archivos

Taller de Git

Fernando

López

Repaso
Secciones de
Git
Ciclo de vida
Status
Branches
Introducción
Conceptualmente
Comandos
básicos
Branches y
remotos
Workflows
Introducción
GitHub
workflow
GitFlow
Licencia

git add → pasa de untracked o de modified a staged.

Fernando López

Taller de Git

modifiedFile Status Lifecyclestagedunmodifieduntrackedadd the fileremove the fileedit the filestage the filecommit Ciclo de vida de los estados de los archivos

Taller de Git

Fernando

López

Repaso
Secciones de
Git
Ciclo de vida
Status
Branches
Introducción
Conceptualmente
Comandos
básicos
Branches y
remotos
Workflows
Introducción
GitHub
workflow
GitFlow
Licencia

git unstage → pasa de staged a untracked o modified.

Fernando López

Taller de Git

modifiedFile Status Lifecyclestagedunmodifieduntrackedadd the fileremove the fileedit the filestage the filecommit Ciclo de vida de los estados de los archivos

Taller de Git

Fernando

López

Repaso
Secciones de
Git
Ciclo de vida
Status
Branches
Introducción
Conceptualmente
Comandos
básicos
Branches y
remotos
Workflows
Introducción
GitHub
workflow
GitFlow
Licencia

git commit → pasa de staged a unmodified.

Fernando López

Taller de Git

modifiedFile Status Lifecyclestagedunmodifieduntrackedadd the fileremove the fileedit the filestage the filecommit Ciclo de vida de los estados de los archivos

Taller de Git

Fernando

López

Repaso
Secciones de
Git
Ciclo de vida
Status
Branches
Introducción
Conceptualmente
Comandos
básicos
Branches y
remotos
Workflows
Introducción
GitHub
workflow
GitFlow
Licencia

Los archivos unmodified son los únicos correctamente
“commited”.

Fernando López

Taller de Git

modifiedFile Status Lifecyclestagedunmodifieduntrackedadd the fileremove the fileedit the filestage the filecommit Ciclo de vida de los estados de los archivos

Taller de Git

Fernando

López

Repaso
Secciones de
Git
Ciclo de vida
Status
Branches
Introducción
Conceptualmente
Comandos
básicos
Branches y
remotos
Workflows
Introducción
GitHub
workflow
GitFlow
Licencia

Recordar que git push solamente enviará al servidor las
versiones que estén “commited”.

Fernando López

Taller de Git

modifiedFile Status Lifecyclestagedunmodifieduntrackedadd the fileremove the fileedit the filestage the filecommit Taller de Git

Fernando

López

Repaso
Secciones de
Git
Ciclo de vida
Status
Branches
Introducción
Conceptualmente
Comandos
básicos
Branches y
remotos
Workflows
Introducción
GitHub
workflow
GitFlow
Licencia

Ejemplos de status

Local:

• Untracked files
• Changes not staged for commit
• Changes to be commited

Con remotos:

• Your branch is ahead of ‘origin/master’ by 1 commit.

→ push

• Your branch is behind ‘origin/master’ by 1 commit...

→ pull

• Your branch and ‘origin/master’ have diverged, and have
1 and 1 different commit(s) each, respectively. → pull
y después push

Fernando López

Taller de Git

Branches
o ramas

• En el proyecto octocats nuestro árbol tenía una sola

rama: master .

Taller de Git

Fernando

López

Repaso
Secciones de
Git
Ciclo de vida
Status
Branches
Introducción
Conceptualmente
Comandos
básicos
Branches y
remotos
Workflows
Introducción
GitHub
workflow
GitFlow
Licencia

Fernando López

Taller de Git

Taller de Git

Fernando

López

Repaso
Secciones de
Git
Ciclo de vida
Status
Branches
Introducción
Conceptualmente
Comandos
básicos
Branches y
remotos
Workflows
Introducción
GitHub
workflow
GitFlow
Licencia

Branches
Infierno de merges

• Técnicamente en octocat_viewer también hay un solo

branch: master .

• Pero hay distintas variantes del mismo:

• Todas esas variantes son distintas versiones de master
• Es díficil ver que cambio cada desarrollador y la historia

está llena de merges.

Fernando López

Taller de Git

Branches
ahora sí

Taller de Git

Fernando

López

Repaso
Secciones de
Git
Ciclo de vida
Status
Branches
Introducción
Conceptualmente
Comandos
básicos
Branches y
remotos
Workflows
Introducción
GitHub
workflow
GitFlow
Licencia

• git branch <nombre> → Crear un branch.
• git checkout <nombre> → Cambia a un branch.
• git diff <nombre> → Diferencia entre el branch actual

y el indicado.

• git merge <nombre> → Incorpora los cambios del

branch indicado en el actual.

• Selección de revisión → muchos comandos reciben cómo

argumento un “tree-ish”.

• Tree-ish → branch, tag, hash de commit, etc...

Tree-ishes:
http://git-scm.com/book/en/Git-Tools-Revision-Selection

Fernando López

Taller de Git

Branches
remotos

Taller de Git

Fernando

López

Repaso
Secciones de
Git
Ciclo de vida
Status
Branches
Introducción
Conceptualmente
Comandos
básicos
Branches y
remotos
Workflows
Introducción
GitHub
workflow
GitFlow
Licencia

• Para ver todos los branches:

git branch -a

• Para subir un branch a un remoto:
git push <remoto> <branch>
• Para borrar un branch localmente:

git branch -d <branch>

• Para borrar un branch en el servidor:
git branch <remoto> :<branch>

Para investigar:

• git push --tags

• git push --all

• git push --mirror

Fernando López

Taller de Git

Introducción

Taller de Git

Fernando

López

Repaso
Secciones de
Git
Ciclo de vida
Status
Branches
Introducción
Conceptualmente
Comandos
básicos
Branches y
remotos
Workflows
Introducción
GitHub
workflow
GitFlow
Licencia

http://lihuen.info.unlp.edu.ar/index.php?title=Workflow_Git/SVN

• Metodologías de trabajo.
• Distintas variantes:

• GitHub workflow.
• Gitflow.
• ¿Otras?

• Conceptos comunes:

• master tiene que ser instalable.
• Dividir el trabajo en features.
• Un branch por cada feature.
• Hacer merge lo más pronto posible para evitar conflictos.

Fernando López

Taller de Git

GitHub workflow

Taller de Git

Fernando

López

Repaso
Secciones de
Git
Ciclo de vida
Status
Branches
Introducción
Conceptualmente
Comandos
básicos
Branches y
remotos
Workflows
Introducción
GitHub
workflow
GitFlow
Licencia

• Simple.
• Feature branches.
• Commits y push a los feature branches todo el tiempo.
• Pull request para integrar con el proyecto.
• Quién acepta el pull request debe revisar el código.
• Ideal para productos con entrega continua.
• No es práctico sin testing automático ni peer review.

Fernando López

Taller de Git

GitFlow

Taller de Git

Fernando

López

Repaso
Secciones de
Git
Ciclo de vida
Status
Branches
Introducción
Conceptualmente
Comandos
básicos
Branches y
remotos
Workflows
Introducción
GitHub
workflow
GitFlow
Licencia

• Ligeramente más complejo.
• Branch develop .
• En master solamente commits con tags.
• Feature branches.
• Integración con develop .
• Preparar release: release-1.0 (solo bugfixes).
• Versión liberada mergear release-1.0 en master y

crear el tag 1.0 .

• Ideal para productos orientados a release.

Fernando López

Taller de Git

GitFlow simplificado

Taller de Git

Fernando

López

Repaso
Secciones de
Git
Ciclo de vida
Status
Branches
Introducción
Conceptualmente
Comandos
básicos
Branches y
remotos
Workflows
Introducción
GitHub
workflow
GitFlow
Licencia

Consideremos en lo que queda de la clase la siguiente variante
de GitFlow:

• Se modifica master solamente para crear un tag.
• Se desarrolla en los feature branches.
• Los feature branches se integran con develop

frecuentemente.

• develop se integra con master al estabilizarse.

Fernando López

Taller de Git

Taller de Git

Fernando

López

Repaso
Secciones de
Git
Ciclo de vida
Status
Branches
Introducción
Conceptualmente
Comandos
básicos
Branches y
remotos
Workflows
Introducción
GitHub
workflow
GitFlow
Licencia

Mantener los branches actualizados

• Bajo cualquier workflow.
• Supongamos el siguiente caso:

+-+--+ (feature-nuevo-formato)

/

D F

+--+---+----+----+ (develop)
A

B

C

E

G

• Usar rebase:
c h e c k o u t
r e b a s e d e v e l o p
r e b a s e −−c o n t i n u e

g i t
g i t
g i t add a r c h i v o −c o n f l i c t o
g i t

f e a t u r e −formato−nuevo

• Entonces el grafo se transforma en:

+-+--+ (feature-nuevo-formato)
/ D' F'

+--+---+----+----+ (develop)
A

B

C

E

G

Fernando López

Taller de Git

Integrando cambios a develop

• Hacerlo periódicamente.
• develop no tiene que ser perfecto pero si funciona mejor.
• Dado el caso anterior:

+-+--+ (feature-nuevo-formato)

/

D' F'

-+----+ (develop)
E

G

c h e c k o u t d e v e l o p

g i t
g i t merge f e a t u r e −nuevo−formato

•• El grafo queda:

-+----+---+--+ (develop, feature-nuevo-formato)
E

D' F'

G

Taller de Git

Fernando

López

Repaso
Secciones de
Git
Ciclo de vida
Status
Branches
Introducción
Conceptualmente
  • Links de descarga
http://lwp-l.com/pdf16302

Comentarios de: Taller de Git - Clase 2 - Branches y Workflows (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad