123
Git avanzado Git avanzado

Git avanzado - mariogl.comEnviar cambios al repositorio remoto con git push Sincronizar mi copia local del remoto con git fetch Mergear cambios del remoto con git merge git fetch +

  • Upload
    others

  • View
    27

  • Download
    1

Embed Size (px)

Citation preview

Git avanzadoGit avanzado

TemarioTemarioPropósito y alcanceArquitecturaComponentes fundamentalesOperaciones CRUDOperaciónes de organización de códigoGestión de ramas y etiquetasResolución de conflictosIntegración con MavenConfiguración de GITIntroducción a GIT en el lado servidorProgramas cliente para operar con GIT

Conceptos inicialesConceptos iniciales

Conceptos iniciales

Conceptos iniciales

Qué es el control de versiones

Conceptos iniciales

Qué es el control de versionesVCS centralizados / distribuidos

Conceptos iniciales

Qué es el control de versionesVCS centralizados / distribuidosCLI vs GUI

Conceptos iniciales

Qué es el control de versionesVCS centralizados / distribuidosCLI vs GUIBranching

InstalaciónInstalación

Instalación 

Marcar o asegurarse de que está marcado:Git Bash HereUse Notepad++ as Git's default editorUse Git from the Windows Command PromptCheckout Windows-style, commit Unix-style etc.Use MinTTY

Git

Configuración inicial

Configuración inicial

 git config --global http.proxy http://username:password@host:port

Configuración inicial

 git config --global http.proxy http://username:password@host:port

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

Configuración inicial

 git config --global http.proxy http://username:password@host:port

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

git config --global user.name "Mario González"

Configuración inicial

 git config --global http.proxy http://username:password@host:port

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

git config --global user.name "Mario González"

git config --global user.email [email protected]

Bitbucket

Bitbucket

 - Cuenta en  (igual que la de Git)bitbucket.org

Fundamentos de GitFundamentos de Git

Fundamentos de Git

Fundamentos de Git

Snapshots (commits)

Fundamentos de Git

Snapshots (commits)Repositorio

Fundamentos de Git

Snapshots (commits)RepositorioWorking directory

Fundamentos de Git

Snapshots (commits)RepositorioWorking directoryStage/index/cache

Fundamentos de Git

Snapshots (commits)RepositorioWorking directoryStage/index/cacheReferencias

Fundamentos de Git

Snapshots (commits)RepositorioWorking directoryStage/index/cacheReferencias

Ramas

Fundamentos de Git

Snapshots (commits)RepositorioWorking directoryStage/index/cacheReferencias

RamasHEAD

Fundamentos de Git

Snapshots (commits)RepositorioWorking directoryStage/index/cacheReferencias

RamasHEADTags

Fundamentos de Git

Snapshots (commits)RepositorioWorking directoryStage/index/cacheReferencias

RamasHEADTags

.gitignore

CommitsCommits

Preparando el commit

Preparando el commit

Añadir al índice con git add

Preparando el commit

Añadir al índice con git addAñadir de manera interactiva con git add -i

Preparando el commit

Añadir al índice con git addAñadir de manera interactiva con git add -iVer el staging area con git status

Preparando el commit

Añadir al índice con git addAñadir de manera interactiva con git add -iVer el staging area con git statusQuitar archivos o modificaciones del staging area congit reset

Preparando el commit

Añadir al índice con git addAñadir de manera interactiva con git add -iVer el staging area con git statusQuitar archivos o modificaciones del staging area congit resetHacer el commit con git commit

Preparando el commit

Añadir al índice con git addAñadir de manera interactiva con git add -iVer el staging area con git statusQuitar archivos o modificaciones del staging area congit resetHacer el commit con git commitModificar el último commit con git commit --amend

El commit

El commit

Hash SHA-1

El commit

Hash SHA-1Autor / commiteador

El commit

Hash SHA-1Autor / commiteadorFecha

El commit

Hash SHA-1Autor / commiteadorFechaMensaje

El commit

Hash SHA-1Autor / commiteadorFechaMensajePadre/s

El log

El log

git log para ver el histórico de commits

El log

git log para ver el histórico de commitsReferencias en el log

El log

git log para ver el histórico de commitsReferencias en el logVer el log compacto con git log --oneline

El log

git log para ver el histórico de commitsReferencias en el logVer el log compacto con git log --onelineVer un commit con git show y git ls-tree

El log

git log para ver el histórico de commitsReferencias en el logVer el log compacto con git log --onelineVer un commit con git show y git ls-treeCómo referenciar a un commit

El log

git log para ver el histórico de commitsReferencias en el logVer el log compacto con git log --onelineVer un commit con git show y git ls-treeCómo referenciar a un commit

SHA-1

El log

git log para ver el histórico de commitsReferencias en el logVer el log compacto con git log --onelineVer un commit con git show y git ls-treeCómo referenciar a un commit

SHA-1HEAD^

El log

git log para ver el histórico de commitsReferencias en el logVer el log compacto con git log --onelineVer un commit con git show y git ls-treeCómo referenciar a un commit

SHA-1HEAD^HEAD~

El log

git log para ver el histórico de commitsReferencias en el logVer el log compacto con git log --onelineVer un commit con git show y git ls-treeCómo referenciar a un commit

SHA-1HEAD^HEAD~HEAD@{n}

El log

El log

Saltar a otro commit con git checkout

El log

Saltar a otro commit con git checkoutBorrar commits con git reset

El log

Saltar a otro commit con git checkoutBorrar commits con git resetVer el histórico de HEADs con git reflog

El log

Saltar a otro commit con git checkoutBorrar commits con git resetVer el histórico de HEADs con git reflogApartar cambios provisionalmente con git stash

El log

Saltar a otro commit con git checkoutBorrar commits con git resetVer el histórico de HEADs con git reflogApartar cambios provisionalmente con git stash

git stash

El log

Saltar a otro commit con git checkoutBorrar commits con git resetVer el histórico de HEADs con git reflogApartar cambios provisionalmente con git stash

git stashgit stash list

El log

Saltar a otro commit con git checkoutBorrar commits con git resetVer el histórico de HEADs con git reflogApartar cambios provisionalmente con git stash

git stashgit stash listgit stash show stash@{n} -v

El log

Saltar a otro commit con git checkoutBorrar commits con git resetVer el histórico de HEADs con git reflogApartar cambios provisionalmente con git stash

git stashgit stash listgit stash show stash@{n} -vgit stash apply [stash@{n}]

El log

Saltar a otro commit con git checkoutBorrar commits con git resetVer el histórico de HEADs con git reflogApartar cambios provisionalmente con git stash

git stashgit stash listgit stash show stash@{n} -vgit stash apply [stash@{n}]git stash pop [stash@{n}]

El log

Saltar a otro commit con git checkoutBorrar commits con git resetVer el histórico de HEADs con git reflogApartar cambios provisionalmente con git stash

git stashgit stash listgit stash show stash@{n} -vgit stash apply [stash@{n}]git stash pop [stash@{n}]git stash drop [stash@{n}]

BranchingBranching

Ramas

Ramas

Referencia

Ramas

ReferenciaLa rama master

Ramas

ReferenciaLa rama masterListar ramas

Ramas

ReferenciaLa rama masterListar ramasCrear una rama con git branch

Ramas

ReferenciaLa rama masterListar ramasCrear una rama con git branchIr a una rama con git checkout

Ramas

ReferenciaLa rama masterListar ramasCrear una rama con git branchIr a una rama con git checkoutBorrar una rama con git branch -d

Ramas

ReferenciaLa rama masterListar ramasCrear una rama con git branchIr a una rama con git checkoutBorrar una rama con git branch -dMezclar dos ramas con git merge

Ramas

ReferenciaLa rama masterListar ramasCrear una rama con git branchIr a una rama con git checkoutBorrar una rama con git branch -dMezclar dos ramas con git mergeMezclar dos ramas con git rebase

Ramas

ReferenciaLa rama masterListar ramasCrear una rama con git branchIr a una rama con git checkoutBorrar una rama con git branch -dMezclar dos ramas con git mergeMezclar dos ramas con git rebaseAplicar un commit de otra rama con cherry-pick -x

El modelo git flow

El modelo git flow

master

El modelo git flow

masterdevelop

El modelo git flow

masterdevelopfeature branch

El modelo git flow

masterdevelopfeature branchbugfix branch

El modelo git flow

masterdevelopfeature branchbugfix branchrelease branch

El modelo git flow

masterdevelopfeature branchbugfix branchrelease branchhotfix branch

El modelo git flow

masterdevelopfeature branchbugfix branchrelease branchhotfix branchInstalación

RepositoriosRepositoriosremotosremotos

Repositorios online

Repositorios online

GitHub

Repositorios online

GitHubBitbucket

Repositorios remotos

Repositorios remotos

Clonar con git clone

Repositorios remotos

Clonar con git cloneEl remote origin

Repositorios remotos

Clonar con git cloneEl remote originAñadir un remote con git remote add

Repositorios remotos

Clonar con git cloneEl remote originAñadir un remote con git remote addRenombrar un remote con git remote rename

Repositorios remotos

Clonar con git cloneEl remote originAñadir un remote con git remote addRenombrar un remote con git remote renameBorrar un remote con git remote remove

Repositorios remotos

Clonar con git cloneEl remote originAñadir un remote con git remote addRenombrar un remote con git remote renameBorrar un remote con git remote removeTracking branch

Repositorios remotos

Repositorios remotos

Enviar cambios al repositorio remoto con git push

Repositorios remotos

Enviar cambios al repositorio remoto con git pushSincronizar mi copia local del remoto con git fetch

Repositorios remotos

Enviar cambios al repositorio remoto con git pushSincronizar mi copia local del remoto con git fetchMergear cambios del remoto con git merge

Repositorios remotos

Enviar cambios al repositorio remoto con git pushSincronizar mi copia local del remoto con git fetchMergear cambios del remoto con git mergegit fetch + git merge = git pull

Repositorios remotos

Enviar cambios al repositorio remoto con git pushSincronizar mi copia local del remoto con git fetchMergear cambios del remoto con git mergegit fetch + git merge = git pullBorrar ramas del remoto

Repositorios remotos

Enviar cambios al repositorio remoto con git pushSincronizar mi copia local del remoto con git fetchMergear cambios del remoto con git mergegit fetch + git merge = git pullBorrar ramas del remotoMarcar ramas remotas borradas con git fetch --prune

Repositorios remotos

Enviar cambios al repositorio remoto con git pushSincronizar mi copia local del remoto con git fetchMergear cambios del remoto con git mergegit fetch + git merge = git pullBorrar ramas del remotoMarcar ramas remotas borradas con git fetch --pruneVer lo que voy a enviar en el push con git diff origin/master master

GUIGUI

GUI para Git

GUI para Git

Git GUI

GUI para Git

Git GUITortoiseGit

GUI para Git

Git GUITortoiseGitSourceTree

GUI para Git

Git GUI

Plugin para Eclipse

TortoiseGitSourceTree

EGit

Git & MavenGit & Maven

Git & Maven

Git & Maven

Añadir al .gitignore los directorios de builds y dedependencias ( )ejemplo

Git & Maven

Añadir al .gitignore los directorios de builds y dedependencias ( )Si hay jerarquía de repositorios: git submodule

ejemplo

Git & Maven

Añadir al .gitignore los directorios de builds y dedependencias ( )Si hay jerarquía de repositorios: git submodule

git submodule add URL

ejemplo

Git & Maven

Añadir al .gitignore los directorios de builds y dedependencias ( )Si hay jerarquía de repositorios: git submodule

git submodule add URLgit clone URL --recurse-submodules o git clone URL git submodule init git submodule update

ejemplo

Links

Links

Documentación oficial de Git

Links

Documentación oficial de GitLibro Pro Git

Links

Documentación oficial de GitLibro Pro GitGit Flow