Comandos esenciales de Git
Date published: 11-Feb-2022
1 min read / 41 words
Autor: Anderson Pozo
Git
GitHub
repositorios
Índice
- Configuración
- Comandos básicos
- Historial de cambios
- Ramas
- Repositorios remotos
- Etiquetas
- Git stash
- Git reset y revert
- Git bisect
- Recuperar commits
Configuración
# Editar configuracion del repositoriogit config --edit# Configurar email del usuariogit config --global user.email "email"# Configurar nombre del usuariogit config --global user.name "nombre"# Ver informacion del usuariogit config --global -l# Indicar alias de un comandogit config --global alias.l "log"# Editar configuracion global de usuariogit config --global --edit[alias]st = status[credential]interactive = never | always
Comandos básicos
# Documentacion de comandosgit help# Inicializar un repositorio de gitgit init# Pasar un archivo específico al staging areagit add <file># Pasar todos los archivos al staging areagit add .# Pasar solo los archivos con la extension especificadagit *.css# Pasar los ficheros de staging area a repository (Después de esto se abre el editor de código en donde se escribe un comentario)git commit# Realizar un commit y le agrega un comentariogit commit -m "comentario"# Agregar al stage area y hace el commit cuando sea modificado el archivo, NO creadogit commit -am "comentario"# Permite rectificar el mensaje de commitgit commit --amend -m "nuevo_comentario"# Guarda los cambios en el ultimo commit realizadogit commit --amend --no-edit# Ver en que status están los ficherosgit status# Ver las diferencias hechas en los archivosgit diff <file>git diff# Cambiar el nombre de un archivogit mv nombre_archivo nuevo_nombre# Borrar un archivogit rm nombre_archivo# Revertir los cambios de un archivogit checkout -- <file># Revertir todos los cambiosgit checkout .
Historial de cambios
# Ver historial de commitsgit log# Buscar los commits por nombregit log -i --grep "string_busqueda"# Ver historial en modo gráficogit log --graph --abbrev-commit --oneline# Forma resumida de ver la ubicacion de las ramasgit log --oneline --decorate --all --graph# Muestra el commit y el autor de cada linea del ficherogit blame nombre_fichero# Ver el historial completo de cambiosgit reflog
Ramas
# Listar las ramas que hay ("main" es la rama default)git branch# Crear una nueva ramagit branch nombre_rama# Borrar ramagit branch -d nombre_rama# Renombrar rama master a maingit branch -M main# Listar todas las ramas(local y remota)git branch -a# Listar las ramas remotas* git branch -r# Crear la rama y moverse directamente a ellagit checkout -b nombre_rama# Ir a una rama en especificogit checkout nombre_rama# Unir ramas, se debe estar en la rama en la que se desea hacer el mergegit merge nombre_rama# Reescribir en la línea de tiempo (alternativa a merge)git rebase nombre_rama# Reescribir varios commits a la vezgit rebase -i HEAD~3# Trae SOLO el ultimo commit a la rama principalgit cherry-pick numero_commit
Repositorios remotos
# Clonar repositorio desde GitHub a localgit clone https://github.com/usuario/repo# Agregar rama remotagit remote add origin https://github.com/usuario/repo# Subir los ficheros a Githubgit pushgit push -u origin main# Traer los commits desde Githubgit pull# Traer los cambios desde el repo remoto y los unegit fetch origin master# Traer los cambios y ramas nuevas que se han creado en remotogit fetch origin# Limpia todas las referencias de ramas que ya no existangit fetch -ap# Crear rama develop en el repositorio remotogit push --set-upstream origin develop# Listar ramas de repositorio remotogit remove -v# Trae actualizaciones de un repositorio forkedgit add remote upstream# Borra destino de repositorio remotogit remote rm origin
Etiquetas
# Crear una nueva etiquetagit tag nombre_etiqueta(v0.0.1)# Etiquetar a un commit en especificogit tag tag_name numero_commit# Eliminar una etiquetagit tag -d nombre_etiqueta# Poner mensajes a la etiqueta (ejem. git tag -a v1.0.0 -m "Version inicial")git tag -a nombre_version -m "mensaje"# Mostrar los cambios y archivos del ultimo commit etiquetadogit show nombre_etiqueta# Etiquetar commit anterior a version inicialgit tag -a Nombre_version codigo_commit -m "mensaje"# Enviar al servidor remoto la etiquetagit push origin nombre_etiqueta# Enviar al servidor remoto todas las etiquetasgit push origin --tags
Git stash
# Pasar al stash archivos que no están en el staging areagit stash -u#Agregar los archivos al staging area para luego hacer el stashgit add -A# Guardar cambios de manera temporalgit stash# Listar cambios temporalesgit stash list# Sacar de la lista del stash al staging areagit stash pop# Sacar del stash un add por por posicióngit stash pop 1
Git reset y revert
# Quita el archivo del stage areagit reset <file># Quita un commit del repositoriogit reset --mixed numero_commit# Permite moverse entre versiones del codigogit reset --soft numero_commit# Permite recuperar los archivos de una version especificagit reset --hard numero_commit# Deshace el último commit sin crear uno nuevogit reset HEAD~1 --mixed# Borrar el commitgit revert numero_commit# Revierte el ultimo commitgit revert @# Revierte el commit 4 en el historialgit revert HEAD~4
Git bisect
# Realiza una busqueda binaria para inspeccionar los commits en busca de bugsgit bisect start commit_inicio commit_final# Etiqueta a un commit como buenogit bisect good# Etiqueta a un commit como malo o que contiene un buggit bisect bad# Sale del modo de inspección de bisectgit bisect reset# Cerrar un issue con un commitcommit fixes #2
Recuperar commits
cat .git/logs/refs/heads/master# Identificar el numero del commitgit reset --hard id_commit_recuperar# Listar los cambios que se han hecho sin haber hecho el commit, es decir solo agregado al staging area# !Identificar el número del blobgit fsck --unreachable --no-reflogs# Mostrar el contenido del fichero perdido, mas no todo el directoriogit cat-file -p numero_blob
Anderson Pozo © 2020 | Hecho en