GIT – Guía rápida
Las zonas de Git
WORKING DIRECTORY: Es el directorio de trabajo , lo q aun no se ha subido
STAGING AREA: Es donde se agregan temporalmente archivos persistentes.
REPOSITORY (localrepo): Cuando ya se realiza un commit los archivos pasan del staging a repository
Inicializar repositorio
$ git init # Iniciar un nuevo proyecto de git (.git)
$ git status # Estado actual del repositorio
$ git add . # Marca todos los ficheros para el próximo commit.
$ git commit -m "Commit inicial" # Crea un nuevo commit con los ficheros marcados.
$ git commit -am "Commit inicial" # add y commit
Manejo de Ramas en Git
Creación de ramas
$ git branch <nombre> # Crear la rama en el punto actual. Es necesario hacer checkout a la misma.
$ git checkout -b <nombre> # Crear rama en el punto actual y hacerle checkout.
Actualización de ramas
$ git branch -m <actual> <nuevo> # Renombrar la rama
$ git branch -d <nombre> # Borrar la rama
Listar ramas
$ git branch # Listar todas las ramas
$ git branch -v # Mostrar último commit en cada rama y su situación respecto a su rama remota (si hay)
$ git branch --merged # Mostrar ramas que se han fusionado con la actual, y por tanto pueden borrarse
$ git branch --no-merged # Mostrar ramas con trabajos sin funsionar. Intentar borrarlas dará un error.
Moverse a una rama o a un commit específico
$ git checkout <COMMIT> # No toca los cambios locales
$ git checkout -f <COMMIT> # Sobreescribe los cambios locales
Fusionar ramas (merge)
$ git merge <nombre> # Fusiona la rama indicada en la rama actual
Manejo de Commits
Deshacer cambios
$ git revert <COMMIT> # Deshacer de forma segura los cambios introducidos por un commit cualquiera
$ git reset --hard # Deshace los cambios locales
$ git reset --hard HEAD~1 # Elimina el último commit
Editar ultimo commit (aun no pushed)
# Realizar el add previamente
$ git commit --amend # cuando ya metiste el comentario pero no has hecho aun push, puedes editarlo
Manejo de Tags de git
tags
$ git tag # Lista los tags locales mas -n para descripcion
$ git ls-remote --tags # Listar los tags remotos
$ git tag -d <nombre> # Eliminar Tag Local
$ git push -d origin <nombre> # Eliminar Tag Remoto
$ git push --tags # Subir Tags al repositorio remoto
Guardar cambios actuales para recuperarlos después
$ git stash # Guarda cambios hechos desde el ultimo commit
$ git stash save "descrip" # Guarda cambios hechos desde el ultimo commit
$ git stash pop # Recupera los cambios guardados
$ git stash list # Lista los estados guardados
$ git stash apply # Aplica cambios guardados sin borrarlos de la lista
$ git stash clear # Para limpiar todo el stash
Configuraciones
Configurar el usuario y dirección de correo en git global
git config --global user.name "username"
git config --global user.email "name@domain.com"
git config --global color.diff true
Configurar el usuario y dirección de correo para un repo
git config user.name "username"
git config user.email "name@domain.com"
Configurar repositorios remotos
git remote -v #ver ramas remotas
git remote set-url origin https://github.com/USERNAME/REPOSITORY.git #Cambiar url remota
git remote add origin https://github.com/user/repo.git #Setear una nueva url remota
git remote rm $name #Eliminar url remota