Hoja de Referencia de Comandos Git
Git es un sistema de control de versiones distribuido de código abierto que puede manejar la gestión de versiones de proyectos desde muy pequeños hasta muy grandes de manera eficiente y a alta velocidad. Git es un software de control de versiones de código abierto desarrollado por Linus Torvalds para ayudar a gestionar el desarrollo del núcleo de Linux.
Conceptos Básicos de Git
git init <directory>Crea un repositorio Git vacío en el directorio especificado. Si se ejecuta sin parámetros, inicializa el directorio actual como un repositorio Git.
git clone <repo>Clona el repositorio ubicado en <repo> en la máquina local. El repositorio original puede estar en el sistema de archivos local o en una máquina remota a través de HTTP o SSH.
git config user.name <name>Define el nombre del autor que se utilizará para todos los commits en el repositorio actual.
git add <directory>Añade los cambios en <directory> para el próximo commit.
git commit -m "<message>"Confirma la instantánea del área de preparación (staging area), utilizando <message> como mensaje de confirmación.
git statusLista qué archivos están preparados, no preparados y sin seguimiento.
git logMuestra todo el historial de commits utilizando el formato predeterminado.
git diffCompara las diferencias entre el directorio de trabajo (aún no añadido con git add) y el área de preparación (después de git add).
Deshacer Cambios
git revert <commit>Crea un nuevo commit que deshace todos los cambios realizados en <commit> y lo aplica a la rama actual.
git reset <file>Elimina <file> del área de preparación pero mantiene el directorio de trabajo sin cambios. Esto quita un archivo de preparación sin sobrescribir ningún cambio.
git clean -nMuestra qué archivos se eliminarán del directorio de trabajo. Use la bandera -f en lugar de la bandera -n para realizar la limpieza.
Reescribir el Historial
git commit --amendModifica el evento de commit de Git más reciente. Si el directorio de trabajo tiene cambios para confirmar, esos cambios también se confirmarán al usar el comando git commit –amend.
git rebase <base>Restablece la rama actual a <base>. <base> puede ser un ID de commit, nombre de rama, etiqueta o HEAD.
git reflogPermite ver todos los registros de operaciones de todas las ramas (incluidos los registros de commit eliminados y las operaciones de reset).
Ramas Git
git branchLista todas las ramas. Añada un parámetro <branch> para crear una nueva rama llamada <branch>.
git checkout -b <branch>Crea y se mueve a una nueva rama llamada <branch>. Omita -b para moverse a una rama existente.
git merge <branch>Fusiona la rama <branch> en la rama actual.
Repositorios Remotos
git remote add <name> <url>Añade un nuevo repositorio remoto. Después de añadir el remoto, puede usar <name> como atajo para <url> en otros comandos.
git fetch <remote> <branch>Obtiene todas las actualizaciones de la <rama> especificada desde el repositorio, pero no fusiona con la rama local.
git pull <remote>Obtiene la copia remota especificada de la rama actual y la fusiona inmediatamente en la copia local.
git push <remote> <branch>Envía la rama a <remote>, junto con los commits y objetos necesarios. Si el repositorio remoto no existe, se crea una rama con nombre en el repositorio remoto.
git config
git config --global user.name <name>Define el nombre del autor para todos los commits del usuario actual.
git config --global user.email <email>Define el correo electrónico del autor para todos los commits del usuario actual.
git config --global alias.<alias-name> <git-command>Crea un atajo (alias) para un comando de Git.
git config --system core.editor <editor>Establece el editor de texto utilizado por los comandos para todos los usuarios del ordenador.
git config --global --editAbre el archivo de configuración global en un editor de texto para su edición manual.
git log
git log -<limit>Muestra los últimos <limit> registros del historial de commits.
git log --onelineMuestra el historial de commits, comprimiendo cada commit en una sola línea.
git log -pMuestra el historial de commits y el diff completo de cada commit.
git log --statMuestra el historial de commits, incluyendo qué archivos fueron modificados y el número relativo de líneas añadidas o eliminadas de cada archivo.
git log --author="<pattern>"Busca commits de un autor específico.
git log --grep="<pattern>"Busca en el historial de commits utilizando coincidencia de expresiones regulares.
git log <since>..<until>Muestra los commits que ocurrieron entre <since> y <until>.
git log -- <file>Muestra solo los registros de commit que contienen el archivo especificado.
git diff
git diff HEADCompara las diferencias entre el directorio de trabajo (aún no añadido con git add) y el repositorio (después de git commit).
git diff --cachedCompara las diferencias entre el área de preparación (después de git add) y el repositorio (después de git commit).
git reset
git resetRestablece el área de preparación para que coincida con el commit más reciente, pero mantiene el directorio de trabajo sin cambios.
git reset --hardRestablece tanto el área de preparación como el directorio de trabajo al commit más reciente, sobrescribiendo todos los cambios en el directorio de trabajo.
git reset <commit>Mueve el puntero de la rama actual de vuelta a <commit> y restablece el área de preparación, pero no cambia el directorio de trabajo.
git reset --hard <commit>Igual que el anterior, pero restablece tanto el área de preparación como el directorio de trabajo. Elimina los cambios no confirmados y todos los commits posteriores a <commit>.
git pull
git pull --rebase <remote>Obtiene la copia remota de la rama actual y la reescribe (rebase) sobre la copia local. Utiliza git rebase en lugar de merge para integrar ramas.
git push
git push <remote> --forceEmpuje forzado (Force push).
git push <remote> --allEnvía todas las ramas locales al remoto especificado.
git push <remote> --tagsEnvía todas las etiquetas locales al repositorio remoto.