Cheatsheet para trabajar con Git
Comando
Descripción
git init
Crear un nuevo repositorio
git clone ruta/repositorio
Clonar un repositorio local
git clone usuario@password@host:repositorio
Clonar un repositorio remoto
git add fichero
Agrega cambios al INDEX
git add *
Agrega todos los cambios realizados al INDEX
git rm fichero
Borra los cambios realizados
git commit -m "Mensaje"
Comitea los cambios agregando un mensaje
git commit --amend -m "Nuevo mensaje"
Modifica el comentario del commit antes de subirlo
git push origin master
Pushea los cambios a un repositorio remoto
git remote add origin server
Conecta un repositorio local a un repositorio remoto
git pull
Actualiza el repositorio local con los cambios remotos
git checkout -b rama
Crea una nueva rama
git checkout master
Cambia a la rama master
git branch -d rama
Borra una rama
git push origin rama
Pushea la rama al repositorio remoto
git merge rama
Mergea los cambios de otra rama
git diff rama_fuente rama_objetivo
Compara los cambios entre dos ramas
git tag tag commitID
Crea una etiqueta
git log
Obtiene los ID de los commits
git checkout --fichero
Remplaza la copia actual con la última copia de HEAD
Cambiar la información del autor de varios commits
git clone --bare URL_REPOSITORIO
Copiar el siguiente script configurando las siguientes variables:
OLD_EMAIL Correo electrónico antiguo
CORRECT_NAME Nombre del autor correcto
CORRECT_EMAIL Correo electrónico correcto
#!/bin/sh
git filter-branch --env-filter '
OLD_EMAIL="your-old-email@example.com"
CORRECT_NAME="Your Correct Name"
CORRECT_EMAIL="your-correct-email@example.com"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_AUTHOR_NAME="$CORRECT_NAME"
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags
Pulsa ENTER para lanzar el script
Revisa el histórico de GIT para detectar errores
Pushea los cambios con: git push --force --tags origin 'refs/heads/*'
Borra el clon temporal:
cd .. rm -rf REPO.git