Skip to content

viktorKhan/apuntes-curso-GIT-CTA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 

Repository files navigation

prueba

#Repositorio de prueba

##Comandos útiles

  • git -h, muestra las opciones del comando indicado
  • git config --list (mostrar configuración global)
  • git config propiedad "valor" (guarda en la propiedad en la configuración del proyecto)
  • git config --global user.name "me"
  • git config --global user.email "me@email.com"
  • git init (creado proyecto "curso")
  • git status
  • git clone
  • git log (histórico commits)
  • git log --oneline (formato bonito)
  • git show (mostrar info del commit)

##Alias

  • git config --unset alias.aliasname, elimina un alias

  • git config alias.co commit, crea el alias "co" parar hacer commit

  • git config alias.ch checkout, crea el alias "ch" parar hacer checkout

  • git rm --cached para mover de la zona de staging/index cuando NO HAY COMMITs todavía

  • git reset HEAD para mover de la zona de staging/index cuando HAY COMMITS

  • git rm para añadir el fichero borrado a la zona de staging/index

  • git add para añadir ficheros añadidos o modificados a la zona de staging/index

  • git checkout <revision|nombre de la rama> mueve el puntero a la revisión o rama indicada

  • git stash, sólo funciona con ficheros que están en la zona de staging/index

  • git stash list, para ver todos los commits que hay en la zona de stash

  • git stash apply, recupera el último commit de la zona de stash

  • git stash apply <identificador, stash@{n}>, recupera el commit indicado por el identificador

  • git stash save "mensaje", guarda en la zona de stash con un mensaje personalizado

  • git stash pop, recupera el commit y lo borra de la zona de stash

  • git stash drop , elimina el commit de la zona de stash indicado por el identificador

  • git stash clear, borra toda la zona de stash

  • git show <id_stash>, muestra la información básica sobre el commit realizado en la zona de stash

  • git log --oneline -- , busca todos los commits que contengan un fichero

  • git checkout -- , trae la versión del fichero correspondiente a la revisión.

  • git commit -am "message", comitea los ficheros trakeados de una vez, suma de add + commit.

  • git commit -m "message" , solo hace commit del fichero indicado

  • git commit --amend, los cambios se añaden al último commit

  • git checkout master^, vuelve al commit anterior

  • git checkout master^^, vuelve al penúltimo commit

  • git checkout master~2, vuelve al penúltimo commit

  • git checkout -- ,

  • git diff -w master origin -- , compara un fichero entre dos ramas

  • git log master12..master10, muestra los commits que van del doceavo al décimo

  • git log --grep='reg-exp', obtiene los commits que coinciden con la expresión regular 'reg-exp'

  • git log --no-merges, mustra todos los commits salvo los que son de mergeo

  • git log [--since|--before|--after]={2014-04-18}, muestra los commits desde, anteriores o posteriores a la fecha indicada

  • git log --abbrev-commit, muestra el ID de commit abreviados

  • git log --stat, muestra los ficheros cambiados en cada commit

  • git --decorate --graph --oneline --all, el --all incluye las ramas en el gráfico

##Deshacer cambios

  • git checkout -- , descarta los cambios realizados en la zona de trabajo y recupera los del último commit

##Deshacer commits

  • git reset --hard , elimina los cambios posteriores al commit indicado
  • git reset --soft , descarta los commits posteriores al commit indicado pero mueve los cambios a la zona de stagging/index
  • git reset --mixed , descarta los commits posteriores al commit indicado pero mueve los cambios a la zona de working
  • git gc --force, purga los commits eliminados
  • git revert , crea un nuevo commit con lo contrario del commit especificado
  • git branch -a, mustra todas las ramas, incluso las remotas
  • git branch -d , borra ramas que ya han sido mergeadas
  • git branch -D , borra ramas aunque no hayan sido mergeadas
  • git push :, borrar una rama remota
  • git branch /, me crea una rama trayéndome lo que hay en la rama remota
  • git checkout -b /, me crea una rama trayéndome lo que hay en la rama remota y me posiciona
  • git reset --hard orig_head, hace el reset y vuelve al commit donde anteriormente estaba HEAD, sea en la rama que sea.

##Ramas git rebase master, añade los commits de master a mi rama git rebase -continue, continua con el rebase si ha dado conflictos

##Mergeos

  • git merge rama1 --no-ff, si hay posibilidad de hacer Fast Forward, no lo hace y crea un commit de mergeo
  • git config branch.mergeoptions "--no-ff", configuramos a nivel de proyecto que al mergear cualquier rama no se haga un Fast Forward.

##Remotos

  • git remote add <url_repo>, enlazamos con un repo remoto distinto a origin (se suele llamar upstream)
  • git pull upstream master, nos traemos el código del repo remoto al que hemos enlazado
  • git fetch origin master, te trae los cambios de la rama master de remoto y los guarda en origin/master, pero NO los mergea
  • git push -f , machacas lo que hay en el remoto con mi local

##Tags

  • git tag -a <tag_name> -m "message", Crear un tag anotado
  • git tag <tag_name>, Crear un tag ligero
  • git push --tags, sube todos los tags al remoto

##Comparaciones

  • git diff , me muestra las diferencias entre mi área de trabajo y un commit
  • git diff --cached , me muestra las diferencias entre la zona index/stagging y un commit
  • git diff , saca las diferencias entre dos commits
  • git diff .., saca las diferencias entre dos commits
  • git diff , saca las diferencias entre dos commits de un fichero
  • git diff .. , saca las diferencias entre dos commits de un fichero

##Alterando commits

  • git checkout && git cherry-pick master^2, compia el penúltimo commit de de master a mi rama
  • git pull --rebase

##Rebase interactivo

  • git rebase -i , ("squasing")

#Tips:

  • Para salir de git log, pulsar "q"
  • Crear siempre un primero commit tonto, por ejemplo con un fichero readme.txt
  • Para obtener el caracter ~, pulsar AltGr-4-espacio
  • User DiffMerge como utilidad para comparar merges en GIT
  • Hacer "squashing", aplanar commits, juntar varios commits en uno (https://ariejan.net/2011/07/05/git-squash-your-latests-commits-into-one/)
  • Hacer "spliting", dividir un commit en n commits
  • ¿Hacer rebase o mergeos?
  • Merge de tipo "Fast Forward", avanzar n commits
  • Al crear una rama llamada "gh-pages", todo lo que suba a esa rama lo publicará en una URL (nombreUsuario.github.io.nombreProyecto). Motor de plantillas de Jekyll para darle estilos a la página (http://jekyllthemes.org/).

#Revisar:

#Ejercicios:

  1. En un repo nuevo o existente, crear un fichero "nombre.txt", borrar fichero y hagamos un commit. Recuperar el fichero.
  • touch prueba.txt
  • git add prueba.txt
  • git commit -m "Añadimos el fichero prueba.txt"
  • rm prueba.txt
  • git add prueba.txt
  • git commit -m "Eliminamos el fichero prueba.txt"
  • git reset master^
  1. Borrar dos ficheros y hacmos commit con los dos y recuperar sólo uno de ellos.
  • touch prueba.txt
  • touch hola.txt
  • git add .
  • git commit -m "Añadimos los ficheros prueba.txt y hola.txt"
  • rm prueba.txt
  • rm hola.txt
  • git commit -am "Borramos los ficheros prueba.txt y hola.txt"
  • git reset master^
  • git add prueba.txt
  • git commit -m "Añadimos el fichero prueba.txt"
  1. Avanzar master dos commits, crear una rama con esos dos commits y dejar master sin esos dos commits
  • git branch rama1
  • git reset master~2 --hard
  • Como se te queda el cuerpo

About

Repositorio de prueba

Resources

Stars

Watchers

Forks

Packages

No packages published