GIT – Guía rápida

Las zonas de Git

alt 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