do you have a minute to talk about git?
GIT
is a distributed revision control and source code management (SCM) system with an emphasis on speed and efficiency
Version Control Systems
local CONTROL SYSTEMS
Centralized
distributed
(almost) everything is local
GIT workflow
- Working copy, corresponde con el espacio de trabajo, la zona habitual donde están los archivos que iremos modificando.
- Stage, la rampa de lanzamiento, donde se van colocando las cosas que vamos a querer persistir.
- Repository, corresponde con los archivos internos de Git en la máquina local.
- remote, los archivos de Git remotos.
First configuration
-
git config --global user.name "Ali Cate"
-
git config --global user.email ali@cate.com
- git config --global color.ui true
- git config --global core.editor subl
- git config --global push.default simple
- git config --list
SETUp
-
mkdir gitkata
-
cd gitkata
-
git init --bare repo
-
git clone repo a_local
-
git clone repo b_local
Kata One - basic
-
Crear un archivo en a_local
-
Subirlo a repo
-
actualizar b_local
-
observar cambios.
KATA TWO - brach
Crear un branch en a_local y subir cambios al branch, publicar al remoto (repo)
Actualizar branches y contenido en b_local
kata three - merge
-
Crear un branch fix, a partir de master, crear un archivo y aplicar cambios
- pasar a master, crear un archivo diferente y aplicar cambios
- Hacer merge de los cambios de fix a master.
kata four - merge with conflicts
> cd a_local > touch hola > git add hola > git commit -m "Nuevo saludo" > git push > cd ../b_local > git pull > echo "Hola, como estas?" > hola > git commit -a -m "Saludo mejorado" > git push > cd ../a_local > echo "Bueno días" > hola > git commit -a -m "Saludos de inicio de dia"
> git pull
Resuelva el conflicto!
KATA FIVE - REBASE
-
Crear un branch fix, a partir de master, modificar un archivo y aplicar cambios
- pasar a master
- crear un archivo diferente y aplicar cambios
-
Hacer rebase de los cambios de fix a master.
kata six - tags
-
git clone --depth=14 https://github.com/angular/angular-phonecat.git
-
git checkout -f step-0
-
git checkout -f step-1
-
git checkout -f step-2
kata SEVEN - submodules
- Crear y subir un repo
- agregar un submodulo
-
Clonar en otra ubicación el repositorio principal.
-
Cambiar al directorio del repositorio
-
Inicializar el submódulo.
-
Actualizar el submódulo.
Kata EIGHT - stash
- modificar un documento sin poner en el stage
- poner el cambio en el stash
- visualizar listado del stash
- modificar otro archivo y agregar al stash
- restaurar el ultimo cambio
Kata NINE - undo-commit
-
sin subir al remote!!!
-
git reset --soft HEAD~1
-
git reset --hard HEAD~1
-
usar con responsabilidad!( ya en el remote)
-
git push --force
kata TEN - cherry pick & patching
-
crear rama dev a partir de master
-
hacer 3 commits en dev
- hacer cherry pick del commit 1
- crear un parche del 2 commit
- pasar a master y aplicar el parche
what do i do now?
- Book Pro Git
- Visual sumary (cheetsheet)
- How to change SVN to GIT
- And off course, install it
GIT
By Yamit Cardenas M
GIT
- 1,675