Vous êtes sur la page 1sur 3

GIT

● Sistema de control de versiones


● Seguir los cambios en los archivos de código
● Manejar código en equipo

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

● Moverse un número específico de commit


○ git checkout master~4
con -f se mueve la rama forzadamente git branch -f master HEAD~3

● 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.

Introduce un nuevo commit aplicado sobre el que queríamos revertir. Eso es


porque este nuevo commit C2' introduce cambios - sólo que esos cambios
son exactamente los necesarios para revertir los que introdujo C2.
Cuando usás revert, podés pushear ese cambio para compartirlo con otros.

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.

● Mover el trabajo por ahi


○ El próximo concepto que vamos a cubrir es el de "mover el trabajo por
ahí" -- en otras palabras, una forma que tienen los desarrolladores de
decir "Quiero este trabajo allá y este otro allá" de una manera precisa,
elocuente y flexible.
○ git cherry-pick commit1 commit2 commit3 los copiara al HEAD
● Rebase interactivo git rebase -i
○ Cuando el diálogo de rebase interactivo se abre, tenés la capacidad de hacer
3 cosas:
○ Podés reordenar los commits con solamente cambiar su orden en la UI (en
nuestra ventana, eso significa hacer drag & drop con el mouse).
○ Podés elegir ignorar completamente algunos commits. Esto se designa con
pick -- no hacerle pick a algún commit significa que querés ignorarlo.
○ Finalmente, podés squashear commits. Desafortunadamente, nuestros
niveles no soportan esto por cuestiones logísticas, por lo que voy a ahorrarte
los detalles. Haciéndola corta, te permite combinar varios commits en uno
solo.

● 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.

Vous aimerez peut-être aussi