GIT: guia rapida y facil, incluye comandos avanzados en espanol

Estos comando no son comunes pero son muy utiles, los mesclo con lso comunes, y le llamareis GUIA RAPIDA

hacer checkout a un repositorio (copia local en tu maquina)

Crea una copia local del repositorio ejecutando
git clone /path/to/repository

Si utilizas un servidor remoto, ejecuta
git clone http://gitlab.com/<grupo-usuario>/<nombre-de-repositorio>
Esto creara una copia exacta del repositorio definido o que estaba en "ruta/path" o que estaba en "http://url" creando un directorio del msimo nombre del nombre de repositorio

add & commit (grabar los cambios)

Ojo esto significa que EN TU COPIA LOCAL se guardan, acometen y graban los cambios realizados, pero ojo, el resto de las personas no los tienen a menos realizes "push" que mas adelante explico:

edit pepe.c
git add pepe.c

git add .

Este es el primer paso en el flujo de trabajo básico. Para hacer commit a estos cambios usa

git commit -m "Commit o grabando cambios de pepe.c"

Ahora el archivo esta incluído en el HEAD, pero aún no en tu repositorio remoto. Para eso tenemos "push"

envío de cambios con "push" a otros

Tus cambios están ahora en el HEAD de tu copia local. Para enviar estos cambios a tu repositorio remoto ejecuta

git push origin master

Esto hace que cualqueira que tambien use el URL como clonado tenga tus cambio si ejecuta "pull" el cual explicare mas adelante, pull actualiza la copia local con los cambios de otros que hayan subido con push

actualiza & fusiona tu copia o repo local (pull):

Para actualizar tu repositorio local al commit más nuevo, ejecuta

git pull


en tu directorio de trabajo para bajar y fusionar los cambios remotos.
Para fusionar otra rama a tu rama activa (por ejemplo master), utiliza

git merge <branch>


en ambos casos git intentará fusionar automáticamente los cambios. Desafortunadamente, no siempre será posible y se podrán producir conflictos. Tú eres responsable de fusionar esos conflictos manualmente al editar los archivos mostrados por git. Después de modificarlos, necesitas marcarlos como fusionados con

git add <filename>


Antes de fusionar los cambios, puedes revisarlos usando ddiff el cual explicio a continuaciom:

Diferencias diff de un commit solo

muestra que cambio en un commit especifico y no en los cambios que tienes, util para cuando ya hicistes commit y el "git diff" no muestra nada porque ya fue acometido o hecho push
git diff ^<commit> # use the hash commit to see

git diff ^HEAD # Show diff of last commit

Generar git patch parche de commit especifico

Igual que el anterior pero este generaun archivo "diff" o "patch", que en resumen es tener esa diferencia en un archivo que se le aplica a otra copia de trabajo no actualizada:
git format-patch -1 <commit>

git format-patch -1 HEAD # Generate patch from last commit

Show history of a file

lo mismo que pulsar "history" en github/gitlab cuando vemos un archivo por web
git log -p -- path/to/file

Commit as a different author

Para hacer commit de otra persona en una computadora extraña pero sin dejar fijo tus datos, muy util si hay que hacer rapido algo en maquinas de otros
git commit --author <e-mail>

Editar ultimo commit (aun no pushed)

cuando ya metiste el comentario pero no has hecho aun push, puedes editarlo
git commit --amend

Remover ultimo commit (aun no pushed)

util si queres no hacer merge, deshaces el ultimo commit y como si nada
git reset --soft HEAD~1 # HEAD~2 for 2 commits, etc
 

Delete untracked files

borra los archivos que no se incluyeron en add y despues commit, es decir cualqueir cosa fuera de el ultimo commit sera descartado
git clean -f

Stash only some files

Para stash cuando hay que hacer merge y no te interesa los cambios tuyos
git stash --keep-index
 
EL ultimo comando stash es en realidad una especie de borrador virtual, sirve para mexclar o hacer merge de los actualizado sin perder lo realizado..
Un articulo aparte seria lo indicado, pero a groso modo stash crea una rama temporal, aparte, y solo valida localmente, deja tu ramas normales sin cambios, una vez despues puedes devover estos cambiados en "stash" al recuperarlos y decirles que "los mexcle" con las ramas normales.
En español muy claro: https://git-scm.com/book/es/v1/Las-herramientas-de-Git-Guardado-r%C3%A1pido-provisional
Basicamente, quiero emerger o mexclar la actualizacion, pero para no sobreescribir mis cambios los "guardo" , despues mexclo y despues devuelvo de este borrador mis cambios.. 

Comentarios

Entradas populares de este blog

canaimitas: modelos (info mas completa)

Boton parpadeante canaimitas EF10MI2 FALLAS comunes

Destripando el instalador debian para usuarios medios.