153
Git avanzado Git avanzado

Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Git avanzadoGit avanzado

Page 2: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Git avanzado

1. 2. 3. 4. 5. 6. 7. 8. 9.

ConceptosConfiguraciónFundamentos y arquitectura interna de GitCommitsConflictosBranchingRepositorios remotosPull RequestsEnlaces de interés

Índice

Page 3: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conceptos inicialesConceptos iniciales

Git avanzado

Page 4: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Git avanzado

Page 5: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conceptos iniciales

Qué es el control de versiones

Git avanzado

Page 6: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conceptos iniciales

Qué es el control de versiones

Git avanzado

Page 7: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conceptos iniciales

Qué es el control de versiones

Git avanzado

Page 8: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conceptos iniciales

Qué es el control de versiones

Git avanzado

Page 9: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conceptos iniciales

Qué es el control de versiones

Git avanzado

Page 10: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conceptos iniciales

Qué es el control de versiones

Git avanzado

develop

Page 11: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conceptos iniciales

Qué es el control de versiones

Git avanzado

develop

experimento

Page 12: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conceptos iniciales

Qué es el control de versiones

Git avanzado

develop

experimento

Page 13: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conceptos iniciales

Qué es el control de versiones

Git avanzado

develop

experimento

develop

Page 14: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conceptos iniciales

Qué es el control de versiones

Git avanzado

proyecto

Page 15: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conceptos iniciales

Qué es el control de versionesVCS centralizados / distribuidosLínea de comandos vs. interfaces gráficasBranching

Git avanzado

Page 16: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conceptos iniciales

Git avanzado

master develop

feature

feature2

Page 17: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conceptos iniciales

Git avanzado

master develop

feature

feature2

Page 18: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conceptos iniciales

Git avanzado

master develop

feature

feature2

Page 19: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conceptos iniciales

Git avanzado

master develop

feature

feature2

Page 20: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conceptos iniciales

Git avanzado

master develop

feature

feature2

Page 21: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conceptos iniciales

Git avanzado

master develop

feature

feature2

Page 22: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conceptos iniciales

Git avanzado

master develop

feature

feature2

Page 23: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conceptos iniciales

Git avanzado

master develop

feature

feature2

Page 24: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conceptos iniciales

Git avanzado

master develop

feature

feature2

Page 25: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

ConfiguraciónConfiguración

Git avanzado

Page 26: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Configuración

Variables de configuraciónSistema (S.O.): git config --systemGlobal (usuario): git config --globalLocal (proyecto): git config [--local]

Guardar una variable de configuración:git config [ámbito] nombre_variable valorPor ejemplo: git config --system user.name "Mario González"

Leer una variable de configuración:git config [ámbito] nombre_variablePor ejemplo: git config --global user.name

Listar todas las variables de configuracióngit config [ámbito] --list

Archivos de configuracióngit config [ámbito] --list --show-origin

Git avanzado

Page 27: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Configuración inicial

Configuración proxy: git config --global http.proxy http://username:password@host:port git config --global https.proxy http://username:password@host:port

Configuración usuario: git config --global user.name "Mario González" git config --global user.email [email protected]

Git avanzado

Configuración saltos de línea: git config --global core.autocrlf true    (Windows) git config --global core.autocrlf input   (UNIX)

Page 28: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos yFundamentos yarquitectura internaarquitectura interna

de Gitde Git

Git avanzado

Page 29: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Git avanzado

Page 30: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directory

Git avanzado

Page 31: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorio

Git avanzado

Page 32: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorio

Git avanzado

Working directoryRepositorio

(.git)

Page 33: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorio

Git avanzado

Page 34: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)

Git avanzado

Page 35: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)

Git avanzado

Working directory

Repositorio local

Page 36: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)

Git avanzado

Working directory

Repositorio local

Page 37: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)

Git avanzado

Working directory

Repositorio local

Page 38: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)

Git avanzado

Working directory

Repositorio local

Page 39: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)

Git avanzado

Working directory

Repositorio local

Page 40: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)

Git avanzado

Working directory

Repositorio local

Page 41: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)

Git avanzado

Working directory

Repositorio local

Page 42: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)

Git avanzado

Working directory

Repositorio local

Page 43: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)

Git avanzado

Working directory

Repositorio local

Page 44: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)

Git avanzado

Working directory

Repositorio local

Page 45: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)

Git avanzado

Working directory

Repositorio local

Page 46: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)

Git avanzado

Working directory

Repositorio local

Page 47: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)

Git avanzado

Working directory

Repositorio local

Page 48: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)

Git avanzado

Page 49: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)Stage

Git avanzado

Page 50: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)Stage

Git avanzado

Working directory

Page 51: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)Stage

Git avanzado

Working directory Repositorio local

Page 52: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)Stage

Git avanzado

Working directory Repositorio localStage

Page 53: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)Stage

Git avanzado

Working directory Repositorio localStage

archivo1.java

Page 54: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)Stage

Git avanzado

Working directory Repositorio localStage

archivo1.java

Page 55: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)Stage

Git avanzado

Working directory Repositorio localStage

archivo1.java

Page 56: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)Stage

Git avanzado

Working directory Repositorio localStage

archivo1.java

Page 57: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)Stage

Git avanzado

Working directory Repositorio localStage

archivo1.java archivo1.java

Page 58: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)Stage

Git avanzado

Working directory Repositorio localStage

archivo1.java archivo1.javaarchivo1.java

Page 59: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)Stage

Git avanzado

Working directory Repositorio localStage

archivo1.java archivo1.java

Page 60: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)Stage

Git avanzado

Working directory Repositorio localStage

archivo1.java archivo1.java

archivo1.java

Page 61: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)Stage

Git avanzado

Working directory Repositorio localStage

archivo1.java archivo1.java

archivo1.java

archivo2.java

Page 62: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)Stage

Git avanzado

Working directory Repositorio localStage

archivo1.java archivo1.java

archivo1.java

archivo2.java

Page 63: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)Stage

Git avanzado

Working directory Repositorio localStage

archivo1.java archivo1.java

archivo1.java

archivo2.java archivo2.java

Page 64: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)Stage

Git avanzado

Working directory Repositorio localStage

archivo1.java archivo1.java

archivo1.java

archivo2.java archivo2.javaarchivo2.java

Page 65: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)Stage

Git avanzado

Working directory Repositorio localStage

archivo1.java archivo1.java

archivo1.java

archivo2.java archivo2.java

Page 66: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Working directoryRepositorioCommits (snapshots)Stage

Git avanzado

Working directory Repositorio localStage

archivo1.java archivo1.java

archivo1.java

archivo2.java archivo2.java

archivo1.javaarchivo2.java

Page 67: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

ReferenciasHEADRamasTags

Git avanzado

Page 68: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Tipos de tags:LigeraAnotada

Añadir tag ligera: git tag nombre_tag [commit]Añadir tag anotada: git tag -a nombre_tag -m "Mensaje tag" [commit]

Git avanzado

Page 69: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fundamentos de Git

Ignorar archivos y carpetas con .gitignore y conexcludeGenerador de .gitignore

Git avanzado

Page 70: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

CommitsCommits

Git avanzado

Page 71: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Preparando el commit

Añadir nuevos archivos al índice (empezar a versionar): git add <path>Añadir modificaciones al stage: git add <path>Información sobre el estado de las tres zonas: git statusBorrar archivos: git rm pathSacar un archivo del repositorio sin borrarlo en el WorkingDirectory (desversionar): git rm --cached pathAñadir modificaciones concretas dentro de un mismo archivo: git add --patch

Git avanzado

Page 72: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Preparando el commitQuitar modificaciones del stage: git reset HEAD <path> git restore --staged <path>  (experimental)Deshacer cambios del Working Directory: (operación irreversible) git checkout -- <path>   git restore <path>  (experimental)

Git avanzado

Page 73: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Preparando el commit

Git avanzado

Page 74: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Hacer el commit: git commit [-m "Mensaje"]

Preparando el commit

Git avanzado

Page 75: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Hacer el commit: git commit [-m "Mensaje"]Cambiar el editor por defecto: git config [ámbito] core.editor <nombre-editor>

Preparando el commit

Git avanzado

Page 76: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Hacer el commit: git commit [-m "Mensaje"]Cambiar el editor por defecto: git config [ámbito] core.editor <nombre-editor>Evitar mensajes genéricos como "Cambios", "Nuevoarchivo", "Correcciones", "CSS", "Merge"...

Preparando el commit

Git avanzado

Page 77: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Hacer el commit: git commit [-m "Mensaje"]Cambiar el editor por defecto: git config [ámbito] core.editor <nombre-editor>Evitar mensajes genéricos como "Cambios", "Nuevoarchivo", "Correcciones", "CSS", "Merge"...

Preparando el commit

Git avanzado

Page 78: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Hacer el commit: git commit [-m "Mensaje"]Cambiar el editor por defecto: git config [ámbito] core.editor <nombre-editor>Evitar mensajes genéricos como "Cambios", "Nuevoarchivo", "Correcciones", "CSS", "Merge"...

Preparando el commit

Git avanzado

Page 79: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Hacer el commit: git commit [-m "Mensaje"]Cambiar el editor por defecto: git config [ámbito] core.editor <nombre-editor>Evitar mensajes genéricos como "Cambios", "Nuevoarchivo", "Correcciones", "CSS", "Merge"...

Preparando el commit

Git avanzado

Page 80: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Hacer el commit: git commit [-m "Mensaje"]Cambiar el editor por defecto: git config [ámbito] core.editor <nombre-editor>Evitar mensajes genéricos como "Cambios", "Nuevoarchivo", "Correcciones", "CSS", "Merge"...

Preparando el commit

Git avanzado

Page 81: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Hacer el commit: git commit [-m "Mensaje"]Cambiar el editor por defecto: git config [ámbito] core.editor <nombre-editor>Evitar mensajes genéricos como "Cambios", "Nuevoarchivo", "Correcciones", "CSS", "Merge"...

Preparando el commit

Git avanzado

Page 82: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Hacer el commit: git commit [-m "Mensaje"]Cambiar el editor por defecto: git config [ámbito] core.editor <nombre-editor>Evitar mensajes genéricos como "Cambios", "Nuevoarchivo", "Correcciones", "CSS", "Merge"...

Preparando el commit

Git avanzado

Page 83: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Hacer el commit: git commit [-m "Mensaje"]Cambiar el editor por defecto: git config [ámbito] core.editor <nombre-editor>Evitar mensajes genéricos como "Cambios", "Nuevoarchivo", "Correcciones", "CSS", "Merge"...

Preparando el commit

Git avanzado

Page 84: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Hacer el commit: git commit [-m "Mensaje"]Cambiar el editor por defecto: git config [ámbito] core.editor <nombre-editor>Evitar mensajes genéricos como "Cambios", "Nuevoarchivo", "Correcciones", "CSS", "Merge"...

Preparando el commit

Git avanzado

��

Page 85: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Hacer el commit: git commit [-m "Mensaje"]Cambiar el editor por defecto: git config [ámbito] core.editor <nombre-editor>Evitar mensajes genéricos como "Cambios", "Nuevoarchivo", "Correcciones", "CSS", "Merge"...

Preparando el commit

Git avanzado

��

Page 86: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Hacer el commit: git commit [-m "Mensaje"]Cambiar el editor por defecto: git config [ámbito] core.editor <nombre-editor>Evitar mensajes genéricos como "Cambios", "Nuevoarchivo", "Correcciones", "CSS", "Merge"...

Preparando el commit

Git avanzado

��

Page 87: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Hacer el commit: git commit [-m "Mensaje"]Cambiar el editor por defecto: git config [ámbito] core.editor <nombre-editor>Evitar mensajes genéricos como "Cambios", "Nuevoarchivo", "Correcciones", "CSS", "Merge"...

Preparando el commit

Git avanzado

��

Page 88: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Hacer el commit: git commit [-m "Mensaje"]Cambiar el editor por defecto: git config [ámbito] core.editor <nombre-editor>Evitar mensajes genéricos como "Cambios", "Nuevoarchivo", "Correcciones", "CSS", "Merge"...

Preparando el commit

Git avanzado

��

Page 89: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Hacer el commit: git commit [-m "Mensaje"]Cambiar el editor por defecto: git config [ámbito] core.editor <nombre-editor>Evitar mensajes genéricos como "Cambios", "Nuevoarchivo", "Correcciones", "CSS", "Merge"...

Preparando el commit

Git avanzado

��

��

Page 90: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

https://bitbucket.org/omitsis-team/devops-deploy/commits/https://medium.com/nickonsoftware/twenty-one-ways-to-be-a-crappy-software-developer-c69e4b39c5df#1471

Preparando el commit

Git avanzado

Page 91: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Hacer el commit: git commit [-m "Mensaje"]Cambiar el editor por defecto: git config [ámbito] core.editor <nombre-editor>Evitar mensajes genéricos como "Cambios", "Nuevoarchivo", "Correcciones", "CSS", "Merge"...Aislar pocos cambios en cada commit ( )ejemplo

Preparando el commit

Git avanzado

Page 92: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Preparando el commitModificar el último commit: git commit --amendNo hacer --amend si el commit ya se había subido alremoto

Git avanzado

Page 93: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

El commit

Autor / commiteadorFechaMensajePadre/sHash SHA-1

Git avanzado

- Ejercicio 1 -

Page 94: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

El log

Cómo referenciar a un commitPor su identificador: hash SHA-1Por el nombre de una ramaPor el nombre de una tagPor su posición relativa: HEAD^, develop^2, e873Xc9^^... HEAD~, develop~2, e873Xc9~~...Por su posición en el listado de reflog: HEAD@{n}

Ver el contenido de un commit: git show <commit>

Git avanzado

Page 95: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

El log

Git avanzado

Ver el histórico de commits: git log [referencia]Ver el log compacto: git log --onelineVer el log de todas las referencias: git log --allVer ramificaciones en el log: git log --graph

Page 96: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

El log

Git avanzado

oneline + fecha + autor Crear un alias: git config --global alias.milog "log --oneline --graph --all"Mostrar los cambios en los commits: git log --patch

git log --date=short --pretty=format:"%C(yellow)%h%Creset%C(red)%C(bold)%d%Creset%C(whit1

Page 97: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

El log

Git avanzado

Filtrar el log por fechas: git log --since=<fecha> --until=<fecha>Filtrar el log por autor/commiteador: git log --author=<nombre> | --committer=<nombre>Ver el log de un archivo: git log <archivo>Ver el log de unas líneas: git log -L <inicio>,<fin>:<archivo>Ver un rango de commits: git log <commit1>..<commit2>Ver un archivo en otro commit (o rama): git show <referencia>:<archivo>Ver las diferencias en un archivo: git show <referencia> <archivo>

Page 98: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

El log

Git avanzado

Buscar en qué commit se introdujo un bug: git bisect

Comenzamos: git bisect startMarcamos el commit actual como versión con bug: git bisect badMarcamos un commit antiguo como versión sin bug: git bisect good <commit>A partir de aquí, vamos diciendo si está bien o mal: git bisect bad            o git bisect good

Page 99: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

El log

Saltar a otro commit o rama: git checkout <commit o rama>Borrar commits: git reset <commit> [--soft|--mixed|--hard]Ver todos los movimientos de las referencias: git reflogCulpar: git blame <path>Revertir: git revert <commit>

Git avanzado

Page 100: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

El stash

Apartar cambios provisionalmentegit stash [push -m "Mensaje"]git stash listgit stash show [stash@{n}] [-p]git stash apply [stash@{n}]git stash pop [stash@{n}]git stash drop [stash@{n}]

Git avanzado

Page 101: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Cómo deshacer

Git avanzado

Deshacer cambios en el Working DirectoryDeshacer subidas al stageDeshacer commitsDeshacer un commit --amendDeshacer un resetResolver problemas derivados del Detached HEADIgnorar archivos que ya están siendo versionados

Page 102: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Reescritura del histórico

Git avanzado

Modificar el último commit: git commit --amendBorrar commits: git resetComprimir varios commits en uno: git reset --soft + git commitVarios cambios de golpe: git rebase -i

- Ejercicio 2 -

Page 103: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

ConflictosConflictos

Git avanzado

Page 104: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conflictos

Git avanzado

Page 105: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Cuando hay dos versiones de código y Git no puededecidir cuál es la definitiva

Conflictos

Git avanzado

Page 106: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Cuando hay dos versiones de código y Git no puededecidir cuál es la definitivaDiferencias en formato del archivo (tabulaciones,codificación, saltos de línea...)

Conflictos

Git avanzado

Page 107: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Cuando hay dos versiones de código y Git no puededecidir cuál es la definitivaDiferencias en formato del archivo (tabulaciones,codificación, saltos de línea...)Pueden aparecer en cualquier operación que impliquefusión de código: merge, rebase, cherry-pick, pull

Conflictos

Git avanzado

Page 108: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Cuando hay dos versiones de código y Git no puededecidir cuál es la definitivaDiferencias en formato del archivo (tabulaciones,codificación, saltos de línea...)Pueden aparecer en cualquier operación que impliquefusión de código: merge, rebase, cherry-pick, pullSiempre que aparezcan conflictos, primero lanzar gitstatus

Conflictos

Git avanzado

Page 109: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Cuando hay dos versiones de código y Git no puededecidir cuál es la definitivaDiferencias en formato del archivo (tabulaciones,codificación, saltos de línea...)Pueden aparecer en cualquier operación que impliquefusión de código: merge, rebase, cherry-pick, pullSiempre que aparezcan conflictos, primero lanzar gitstatusGit espera a que resolvamos los conflictos y le demos laorden de cerrar la operación

Conflictos

Git avanzado

Page 110: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Cuando hay dos versiones de código y Git no puededecidir cuál es la definitivaDiferencias en formato del archivo (tabulaciones,codificación, saltos de línea...)Pueden aparecer en cualquier operación que impliquefusión de código: merge, rebase, cherry-pick, pullSiempre que aparezcan conflictos, primero lanzar gitstatusGit espera a que resolvamos los conflictos y le demos laorden de cerrar la operaciónLos conflictos se delimitan por marcas en los archivos

Conflictos

Git avanzado

Page 111: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Cuando hay dos versiones de código y Git no puededecidir cuál es la definitivaDiferencias en formato del archivo (tabulaciones,codificación, saltos de línea...)Pueden aparecer en cualquier operación que impliquefusión de código: merge, rebase, cherry-pick, pullSiempre que aparezcan conflictos, primero lanzar gitstatusGit espera a que resolvamos los conflictos y le demos laorden de cerrar la operaciónLos conflictos se delimitan por marcas en los archivos

Conflictos

Git avanzado

<<<<<<< HEAD ↑ // Código del commit o rama // adonde apunta el HEAD ↓ ======= ↑ // Código del commit o rama // que estoy intentando fusionar con HEAD ↓ >>>>>>> develop

Page 112: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conflictos

Git avanzado

Page 113: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conflictos

Git avanzado

Page 114: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conflictos

Git avanzado

Page 115: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conflictos

Git avanzado

Page 116: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conflictos

Git avanzado

Page 117: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Conflictos

Git avanzado

Page 118: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Si queremos resolverlos a mano, editamos el texto,borramos las marcas y dejamos el código definitivo.Para usar una interfaz gráfica específica para resolverconflictos: git mergetoolEjemplo: configurar KDiff3 git config --global merge.tool kdiff3 git config --global mergetool.kdiff3.path "C:/ProgramFiles/KDiff3/kdiff3.exe"

Conflictos

Git avanzado

Page 119: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Una vez resueltos los conflictos, se lo comunicamos a gitmediante git add pathPara terminar la fusión en un merge o en un pull: git commitPara terminar la fusión en un rebase: git rebase --continuePara terminar la fusión en un cherry-pick: git cherry-pick --continue

Conflictos

Git avanzado

Page 120: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

BranchingBranching

Git avanzado

Page 121: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Ramas

Git avanzado

Page 122: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Ramas

Git avanzado

Page 123: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Ramas

Git avanzado

Page 124: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Ramas

Git avanzado

Page 125: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Ramas

ReferenciaLa rama masterMúltiples ramas

Git avanzado

Page 126: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Ramas

Listar ramas: git branchCrear una rama: git branch nombre_rama [commit]Borrar una rama: git branch -d/-D nombre_ramaRenombrar una rama: git branch -m nombre_antiguo nombre_nuevo

Git avanzado

Page 127: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Ramas

Ir a una rama: git checkout nombre_rama git switch nombre_ramaCrear rama e ir a ella: git checkout -b nombre_rama git switch -c nombre_rama

Git avanzado

Page 128: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Ramas - merge

Git avanzado

HEADdevelop

C1

C2

C5

C6

C7

C3

C4

Page 129: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Fusionar ramasVolcar el trabajo de una rama en otraObjetivo: que una rama tenga los commits de otraTipos de merge:

Fast forward: no crea un nuevo commit, sin conflictosMerge a tres bandas: crea un nuevo commit, posibilidadde conflictos

Conflictos: lanzar siempre git status

Ramas - merge

Git avanzado

Page 130: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Ramas - rebase

Git avanzado

HEADdevelop

C1

C2

C5

C6

C7

Page 131: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Ramas - rebase

Git avanzado

HEADdevelop

C1

C2

C5

C6

C7

C3

C4

Page 132: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Ramas - rebase

Aplicar una rama al final de otraVolcar el trabajo de una rama en otraObjetivo: que una rama tenga los commits de otraNo crea un nuevo commitConflictos por pasos: lanzar siempre git statusNo hacer rebase si ya se ha subido la rama al remoto

Git avanzado

Page 133: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Ramas - cherry-pick

Aplicar un commit aislado a una ramaNo se aplican los commits anterioresModificador -x para que añada al mensaje "Cherry-picked from XXXX"Conflictos: lanzar siempre git status

Git avanzado

Page 134: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Ramas - mover referencias

Mover una rama en la que no estoy git branch -f nombre_rama [<commit>] git switch -C nombre_rama [<commit>]Mover la rama en la que estoy git reset <commit> --hardSi sólo queremos avanzar la referencia de una ramahasta un commit más avanzado: git merge <commit>

Git avanzado

Page 135: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

El modelo git flow

master branchdevelop branchfeature branch

bugfix branchhotfix branchrelease branch

Git avanzado

Page 136: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

El programa git flow

 (en Windows ya viene instalado conGit)Empezar a usar git flow en un repositorio: git flow initIniciar rama: git flow tipo_rama start nombre_ramaCerrar rama: git flow finish

Instalación

Git avanzado

Page 137: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

RepositoriosRepositoriosremotosremotos

Git avanzado

Page 138: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Repositorios remotos

Git avanzado

Los remotes: el remote originAñadir un remote: git remote add nombre_remote URL_remoteRenombrar un remote: git remote rename nombre_actual nuevo_nombreCambiar la URL de un remote: git remote set-url nombre_remote URL_remoteBorrar un remote: git remote remove nombre_remote

Page 139: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Repositorios remotos

Git avanzado

Clonar un repositorio remoto: git clone URL [directorio]Ver ramas remotas: git branch -rVer todas las ramas (locales y remotas): git branch -aTrackear rama: git branch --set-upstream-to nombre_remote/nombre_ramaVer ramas trackeadas: git branch -vv

Page 140: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Repositorios remotos

Enviar cambios al repositorio remoto: git push nombre_remote nombre_ramaTrackear la rama al hacer el push: git push -u nombre_remote nombre_ramaSincronizar mi copia local del remoto: git fetch -vTraer cambios del remoto: git fetch + git merge = git pull git fetch + git rebase = git pull --rebaseSi siempre queremos pull --rebase: git config --global pull.rebase true

Git avanzado

Page 141: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Repositorios remotos

Borrar ramas del remoto: git push --delete <remoto> <rama>Marcar ramas remotas borradas:  git fetch --pruneConfigurar prune por defecto: git config [--global|--system] fetch.prune trueVer lo que voy a enviar en el push: git diff origin/master master

Git avanzado

Page 142: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Repositorios remotos

Subir una tag al remoto: git push <remote> <nombre_tag>Subir todas las tags al remoto (desaconsejado): git push <remote> --tagsSubir las tags anotadas de la rama que vamos a pushear: git push <remote> <rama> --follow-tagsConfiguración para que siempre se comporte como en elpunto anterior: git config [ámbito] push.followTags true  

Git avanzado

Page 143: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Pull RequestsPull Requests

Git avanzado

Page 144: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Pull Requests

En equipos grandesEl repositorio remoto tiene permisos de sólo lecturaen la rama developLos miembros no pueden mergear sus ramas adevelopSe sube la rama propia de feature y se solicita elmerge a través de la interfaz del servidorHay un encargado (o varios) de revisar las peticionesde PR, y de realizar el merge de las ramas a develop

Git avanzado

Page 145: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Pull Requests

Git avanzado

Page 146: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Pull Requests

En equipos grandes

Git avanzado

Page 147: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Pull Requests

En equipos grandesEl repositorio remoto tiene permisos de sólo lecturaen la rama develop

Git avanzado

Page 148: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Pull Requests

En equipos grandesEl repositorio remoto tiene permisos de sólo lecturaen la rama developLos miembros no pueden mergear sus ramas adevelop

Git avanzado

Page 149: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Pull Requests

En equipos grandesEl repositorio remoto tiene permisos de sólo lecturaen la rama developLos miembros no pueden mergear sus ramas adevelopSe sube la rama propia de feature y se solicita elmerge a través de la interfaz del servidor

Git avanzado

Page 150: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Pull Requests

En equipos grandesEl repositorio remoto tiene permisos de sólo lecturaen la rama developLos miembros no pueden mergear sus ramas adevelopSe sube la rama propia de feature y se solicita elmerge a través de la interfaz del servidorHay un encargado (o varios) de revisar las peticionesde PR, y de realizar el merge de las ramas a develop

Git avanzado

Page 151: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Pull Requests

En equipos grandesEl repositorio remoto tiene permisos de sólo lecturaen la rama developLos miembros no pueden mergear sus ramas adevelopSe sube la rama propia de feature y se solicita elmerge a través de la interfaz del servidorHay un encargado (o varios) de revisar las peticionesde PR, y de realizar el merge de las ramas a develop

Git avanzado

Page 152: Git avanzado - mariogl.comarchivo1.java. Fundamentos de Git Working directory Repositorio Commits (snapshots) Stage Git avanzado Working directory Stage Repositorio local archivo1.java

Links

Documentación oficial de GitLibro Pro GitGenerador de .gitignoreArtículo sobre Git FlowExplicación de git resetCómo encontrar cosas en GitPosts sobre Git en el blog

Git avanzado