π§° ConfiguraciΓ³n Global de Git
Antes de usar Git, es importante configurarlo correctamente:
# Configura tu nombre de usuario
git config --global user.name "Tu Nombre"
# Configura tu correo (debe coincidir con GitHub si quieres firmar commits)
git config --global user.email "[email protected]"
# Verifica tu configuraciΓ³n actual
git config --list
# Edita la configuraciΓ³n globalentu editor
git config --global --edit
TambiΓ©n puedes configurar opciones por repositorio usando --local o a nivel de sistema con --system.
π§ Configuraciones ΓΊtiles
# Muestra los cambios con colores
git config --global color.ui auto# Usa rebase en lugar de merge por defecto al hacer pull
git config --global pull.rebase true# Define tu editor por defecto (ej: VSCode)
git config --global core.editor "code --wait"
πͺ** Alias para Comandos**
Β‘Puedes crear tus propios comandos cortos con alias!
# Historial simplificado
git config --globalalias.hist "log --oneline --graph --all --decorate"# Commit rΓ‘pido
git config --globalalias.cm "commit -m"# Status rΓ‘pido
git config --globalalias.st "status -s"# Push y pull
git config --globalalias.pu "push"
git config --globalalias.pl "pull"
Ejemplo de uso:
git cm "Agrega funciΓ³n de bΓΊsqueda"
git hist
π₯ Tips Avanzados para Usar Git
ββββββββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Tip β Comando / Idea β
ββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Comparar ramas β git diff rama1..rama2 β
β Ver commits entre ramas β git log rama1..rama2 β
β Ver ramas que contienen un commit β git branch --contains β
β Ramas ordenadas por ΓΊltimo commit β git for-each-ref--sort=-committerdate refs/heads/β
β Excluir archivos secretos β .gitignore / git update-index--assume-unchanged β
β Confirmar antes de push a main β Usa hooks: pre-push β
β Trabajar offline β Git no requiere internet para commit β
ββββββββββββββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Ubicaciones de ConfiguraciΓ³n
Nivel Archivo Afecta aβ¦
Local .git/config Solo ese repositorio
Global ~/.gitconfig Todos los repositorios del usuario
Sistema /etc/gitconfig Todos los usuarios del sistema
π Inicializar y Clonar Repositorios
ββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββ
β Comando β DescripciΓ³n β
ββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββ€
β git init β Inicia un repositorio Git vacΓo β
β git clone> β Clona un repositorio remoto β
ββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββ
π§ Comandos BΓ‘sicos
ββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββ
β Comando β DescripciΓ³n β
ββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββ€
β git status β Muestra el estado de los archivos β
β git add<archivo> β Agrega archivo al Γ‘rea de staging β
β git commit -m"mensaje" β Crea un commit β
β git push β EnvΓa commits al remoto β
β git pull β Trae y fusiona los cambios remotos β
ββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββ
πΏ Manejo de Ramas
ββββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ
β Tarea β Comando β
ββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββ€
β Crear nueva rama β git checkout -b nombre-rama β
β Cambiar de rama β git checkout nombre-rama β
β Ver ramas existentes β git branch β
β Eliminar una rama β git branch -d nombre-rama β
β Fusionar una rama β git merge nombre-rama β
ββββββββββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββ
βͺ Deshacer y Modificar Cambios
ββββββββββββββββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββ
β SituaciΓ³n β Comando β ExplicaciΓ³n β
ββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββ€
β Deshacer cambios no guardados β git checkout -- <archivo> β Restaura archivo al ΓΊltimo commit β
β Quitar archivo del staging β git reset <archivo> β Lo quita del Γ‘rea de staging β
β Deshacer ΓΊltimo commit (mantiene cambios) β git reset--soft HEAD~1 β Retrocede 1 commit, mantiene archivos β
β Deshacer ΓΊltimo commit y cambios β git reset--hard HEAD~1 β Borra commit y archivos modificados β οΈ β
β Borrar archivos no aΓ±adidos β git clean -fd β Elimina archivos/directorios no trackeadosβ
ββββββββββββββββββββββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββ
βοΈ Modificar Commits
ββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββ
β Tarea β Comando β Detalles β
ββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββ€
β Editar el ΓΊltimo commit β git commit --amend β Modifica mensaje o agrega archivos β
β Cambiar varios commits β git rebase -i HEAD~n β Reescribe los ΓΊltimos n commits β
β Cambiar autor del ΓΊltimo β git commit --amend --author="Nombre <mail>"β Cambia el autor del commit β
ββββββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββ
π΅οΈ Navegar el Historial
ββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββ
β Comando β DescripciΓ³n β
ββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββ€
β git log β Historial completo β
β git log --oneline β Historial simplificado β
β git diff β Diferencias entre cambios β
β git blame <archivo> β QuiΓ©n modificΓ³ quΓ© lΓnea β
ββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββ
π οΈ Repositorio Remoto
ββββββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββ
β Comando β DescripciΓ³n β
ββββββββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββ€
β git remote add origin <url> β Enlaza repo local con uno remoto β
β git push -u origin main β Sube tu rama principal β
β git remote -v β Muestra las URLs remotas β
ββββββββββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββ
π ** RecuperaciΓ³n y Seguridad**
ββββββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ
β Escenario β Comando β Uso β
ββββββββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββ€
β Ver commits borrados β git reflog β Muestra historial de HEAD β
β Recuperar un commit perdido β git checkout <hash> β Puedes crear rama desde ahΓ β
β Guardar cambios sin hacer commit β git stash β Guarda temporalmente los cambios β
β Recuperar cambios guardados β git stash pop β Aplica y elimina el ΓΊltimo stash β
ββββββββββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββ