Git avanzado
Temario
- Propósito y alcance
- Arquitectura
- Componentes fundamentales
- Operaciones CRUD
- Operaciónes de organización de código
- Gestión de ramas y etiquetas
- Resolución de conflictos
- Integración con Maven
- Configuración de GIT
- Introducción a GIT en el lado servidor
- Programas cliente para operar con GIT
Conceptos iniciales
Conceptos iniciales
-
Qué es el control de versiones
-
VCS centralizados / distribuidos
-
CLI vs GUI
-
Branching
Instalación
Instalación
-
Marcar o asegurarse de que está marcado:
-
Git Bash Here
-
Use Notepad++ as Git's default editor
-
Use Git from the Windows Command Prompt
-
Checkout Windows-style, commit Unix-style etc.
-
Use MinTTY
-
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 mario@mariogl.com
Bitbucket
- Cuenta en bitbucket.org (igual que la de Git)
Fundamentos de Git
Fundamentos de Git
-
Snapshots (commits)
-
Repositorio
-
Working directory
-
Stage/index/cache
-
Referencias
- Ramas
- HEAD
- Tags
- .gitignore
Commits
Preparando el commit
-
Añadir al índice con git add
-
Añadir de manera interactiva con git add -i
-
Ver el staging area con git status
-
Quitar archivos o modificaciones del staging area con git reset
-
Hacer el commit con git commit
-
Modificar el último commit con git commit --amend
El commit
-
Hash SHA-1
-
Autor / commiteador
-
Fecha
-
Mensaje
-
Padre/s
El log
-
git log para ver el histórico de commits
-
Referencias en el log
-
Ver el log compacto con git log --oneline
-
Ver un commit con git show y git ls-tree
-
Cómo referenciar a un commit
-
SHA-1
-
HEAD^
-
HEAD~
-
HEAD@{n}
-
El log
-
Saltar a otro commit con git checkout
-
Borrar commits con git reset
-
Ver el histórico de HEADs con git reflog
-
Apartar cambios provisionalmente con git stash
-
git stash
-
git stash list
-
git stash show stash@{n} -v
-
git stash apply [stash@{n}]
-
git stash pop [stash@{n}]
-
git stash drop [stash@{n}]
-
Branching
Ramas
-
Referencia
-
La rama master
-
Listar ramas
-
Crear una rama con git branch
-
Ir a una rama con git checkout
-
Borrar una rama con git branch -d
-
Mezclar dos ramas con git merge
-
Mezclar dos ramas con git rebase
-
Aplicar un commit de otra rama con cherry-pick -x
El modelo git flow
-
master
-
develop
-
feature branch
-
bugfix branch
-
release branch
-
hotfix branch
-
Instalación
Repositorios remotos
Repositorios online
Repositorios remotos
-
Clonar con git clone
-
El remote origin
-
Añadir un remote con git remote add
-
Renombrar un remote con git remote rename
-
Borrar un remote con git remote remove
-
Tracking branch
Repositorios remotos
-
Enviar 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 + git merge = git pull
-
Borrar ramas del remoto
-
Marcar ramas remotas borradas con git fetch --prune
-
Ver lo que voy a enviar en el push con
git diff origin/master master
GUI
GUI para Git
-
Git GUI
- Plugin EGit para Eclipse
Git & Maven
Git & Maven
-
Añadir al .gitignore los directorios de builds y de dependencias (ejemplo)
-
Si hay jerarquía de repositorios: git submodule
-
git submodule add URL
-
git clone URL --recurse-submodules
o
git clone URL
git submodule init
git submodule update
-
Links
Git avanzado
By mariogl
Git avanzado
Curso Git avanzado Valencia 11-13 julio 2018
- 1,018