Académique Documents
Professionnel Documents
Culture Documents
GITHUB
● Web basado en el repositorio git
● Facilidad de manejo del git
Manejo de GIT
● Commit:
○ copy&paste de todo el código (archivos) en el directorio
○ No copia todos los archivos, sino un conjunto de cambios, entre una versión
del repositorio y la siguiente (delta).
○ Git mantiene un historial de que commits se hicieron cuando
○ los commits y sus ancestros se representan con flechas
○ git commit
● Branches (ramas):
○ Referencias a un commit especifico
○ branchea temprano, y branchea seguido
○ “quiero incluir el trabajo de este commit y todos sus ancestros”
○ git branch branchName
○ el asterisco *, nos pone “en” la rama
○ git checkout branchName git commit
● Merge:
○ Une dos ramas diferentes
○ Crea commit especiales que tienen dos padres diferentes
○ "Quiero incluir todo el trabajo de este padre de acá y este otro padre de acá,
y del conjunto de todos sus ancestros"
○ El merge une el que este nombrado en el comando con el commit en el que
estemos.
● Rebase:
○ Agarra un commits los copia y los pega en algun lado
○ crea un historial lineal
○ git rebase master, esto movera las ramas hacia master, NO debemos estar
en master
● Head (adjuntar)
○ Commit sobre el cual se esta trabajando
○ Siempre apunta al commit mas reciente
● Detachear (Des-adjuntar)
○ significa adjuntar el head a un commit en lugar de un branch
○ HEAD -> master -> v1
○ git checkout c1
○ HEAD -> c1 (puesto al principio HEAD se mantiene oculta en la rama de
master
● Moverse entre los hashes
○ un commit atras ^ (alt+94)
○ una x cantidad de commit hacia atras ~<num> (alt+126)
○ mueve hacia el padre del commit especificado
○ git checkout master^
○ tambien se puede hacer git checkout HEAD^ para ver donde hemos estado
● Revertir cambios
○ Tal como al commitear, revertir cambios en git tiene tanto un componente de
bajo nivel (indexar archivos o fragmentos individualmente) como un
componente de alto nivel (cómo son efectivamente revertidos los cambios).
Nuestra aplicación se va a concentrar en esto último.
● Git Reset
○ git reset revierte los cambios moviendo la referencia de una rama hacia
atrás en el tiempo a un commit anterior. En este sentido podés pensarlo
como "reescribir la historia". git reset va a mover la rama hacia atrás, como si
el commit nunca se hubiera hecho.
● Git Revert
Mientras que resetear los cambios funciona genial para ramas locales en tu
máquina, su método de "reescribir la historia" no funciona para ramas
remotas que otros están usando. Para revertir cambios y compartir esa
revertida con otros, necesitamos usar git revert.
Tené en cuenta que pushed es una rama remota y local es una rama local --
eso debería ayudarte a elegir qué métodos usar.
● Cherry
○ Acordate de que git cherry-pick va a traer un commit de cualquier parte del
árbol sobre HEAD (siempre que ese otro commit no sea un ancestro de
HEAD)..
○
○
● Tags
○ Los tags de git soportan exactamente este caso de uso -- marcan (bastante)
permanentemente determinados commits como "hitos" que podés referenciar
como a un branch.
○ Aún más importante, los tags no avanzan cuando se crean nuevos commits.
No podés "checkoutear" un tag y completar el trabajo en ese tag - los tags
son marcas fijas en el árbol de commits que designan ciertos puntos.