# Comandos importantes de Git **git --version**: Muestra la versión de Git. **git help**: Información general de Git. **git help log**: Información de un comando en específico. **git init**: Crea un repositorio local. **git config --global user.name "name"**: Configurar nombre de usuario. **git config --global user.email "e@m.com"**: Configurar email de usuario. **git config --global -e**: Editar la configuración global de Git. **git status**: Muestra el estado del repositorio, seguimientos y stage. **git add .**: Añadir todo al stage. **git commit -m "message"**: Crear snapshot del stage. **git remote add origin url**: Acceso remoto al repositorio indicado. **git remote -v**: Verbal del git remote. **git remote add upstream url**: Crea una nueva fuente llamada upstream la cual está vinculada con la url indicada. **git pull upstream master**: Traemos todos los cambios de la rama upstream (fuente) a la master. **git fetch**: Trae los cambios del repositorio remoto, por ejemplo las ramas que alguien más creó. **git push origin master**: Subimos los cambios de master al repositorio remoto origin. **git checkout -- .** Reconstruye el repositorio a como se encontraba en el último commit. **git log** Información de la línea del tiempo. **git log -S "asterdots"**: Busca la palabra asterdots en los commits de la rama en la que nos encontramos. **git shortlog**: Muestra los commits que ha realizado cada persona. **git log file.txt**: Información de la línea del tiempo de un archivo en particular. **git reset archivo**: Remover archivo del stage. **git add "*.txt"**: Agrega al stage todos los txt encontrados en TODO el repositorio. **git add \*.txt**: Agrega al stage todos los txt del directorio actual. **git config --global alias.lg "log --oneline --decorate --all --graph"**: Crea alias con el nombre de *lg*. **git diff**: Muestra todas las modificaciones entre lo que está en el stage y lo que no. **git diff hash1 hash2**: Compara los cambios de los dos commits (primero anterior, segundo nuevo). **git diff --staged**: Verifica también los archivos que se encuentran en el stage. **git checkout -- README.md**: Restaura el archivo a como se encontraba en el último commit. **git commit --amend -m "Se corrigió el mensaje del commit"**: Fusiona los cambios actuales con los del commit anterior. **git reflog**: Historial completo del repositorio. **git branch**: Muestra las ramas y señala en la que estamos ubicados. **git branch -r**: Muestra las ramas remotas. **git branch -a**: Muestrea todas las ramas, locales y remotas. **git branch branch-name**: Crea una nueva rama. **git checkout branch-name**: Nos cambia a la rama indicada. **git diff branch1 branch2**: Diferencias entre branch1 y branch2. **git merge branch1**: Une branch1 a la rama en la que nos encontramos actualmente. Es necesario poner un mensaje explicando porque hicimos este merge. **git branch -d branch1**: Borra la branch1. **git checkout -b branch1**: Crea una nueva rama y nos cambia a ella. **git show-branch --all**: Muestra información importante de las ramas. **git push origin branch**: origin hace referencia al repositorio remoto y branch al nombre de la rama que se le va hacer push. **git show file.txt**: Información útil de los cambios realizados.