Git
Tutorial Git: Comandos avanzados
Git comandos avanzados: uso y ejemplos. Aprende a usar comandos avanzados en Git con ejemplos prácticos y detallados.
Aprende Git GRATIS y certifícateLos comandos avanzados de Git permiten tener un control más preciso y detallado sobre el historial de cambios, las ramas y otras funcionalidades del sistema de control de versiones.
A continuación, se describen algunos de los comandos avanzados de Git:
1. git cherry-pick
El comando git cherry-pick
permite aplicar un único commit de una rama a otra rama.
Esto puede ser útil cuando se necesita incorporar un cambio específico sin fusionar toda la rama.
Ejemplo de uso
Supongamos que se encuentra en la rama 'master' y desea aplicar un commit de la rama 'feature' llamado 'abc123':
Cambiar a la rama 'master':
git checkout master
Usar
git cherry-pick
para aplicar el commit deseado:git cherry-pick abc123
2. git rebase
El comando git rebase
se utiliza para reorganizar y combinar commits en la historia de una rama.
Puede ayudar a mantener una historia de cambios más limpia y ordenada.
Ejemplo de uso
Supongamos que se desea reorganizar los últimos 3 commits en la rama 'feature' antes de fusionarlos en 'master':
Cambiar a la rama 'feature':
git checkout feature
Usar
git rebase
interactivo para reorganizar los commits:git rebase -i HEAD~3
La opción
-i
indica que se utilizará el modo interactivo, yHEAD~3
indica que se reorganizarán los últimos 3 commits antes del commit actual en la rama 'feature'.En el editor que se abre, reordenar los commits o elegir las acciones que se desean realizar.
Continuar con el proceso de rebase:
git rebase --continue
Finalmente, cambiar a la rama 'master' y fusionar los cambios:
git checkout master git merge feature
3. git stash
El comando git stash
se utiliza para almacenar temporalmente cambios sin comprometerlos (commit).
Puede ser útil cuando se necesita cambiar de rama o resolver conflictos antes de volver a aplicar los cambios.
Ejemplo de uso
Supongamos que está trabajando en una rama 'bugfix' y necesita cambiar a 'develop' para resolver un conflicto:
Almacenar los cambios sin comprometerlos (commit):
git stash save "Cambios temporales en bugfix"
Cambiar a la rama 'develop' y resolver el conflicto.
Volver a la rama 'bugfix' y aplicar los cambios almacenados:
git checkout bugfix git stash pop
4. git revert
El comando git revert
se utiliza para deshacer cambios en Git al crear un nuevo commit que deshace los cambios introducidos por un commit específico.
Esto es útil cuando se necesita corregir un error o retroceder en la historia sin eliminar la existencia del commit original.
Ejemplo de uso
Supongamos que se desea deshacer los cambios introducidos por el commit 'xyz789':
Utilizar
git revert
para crear un nuevo commit que deshace los cambios:git revert xyz789
Git creará un nuevo commit que deshace los cambios introducidos por 'xyz789'.
El historial de cambios reflejará la reversión sin eliminar el commit original.
5. git fetch
El comando git fetch
se utiliza para descargar cambios desde un repositorio remoto sin fusionarlos con la rama actual.
Actualiza las referencias locales a las ramas remotas, lo que permite ver los cambios antes de fusionarlos.
Ejemplo de uso
Supongamos que se desea verificar los cambios en la rama remota 'origin/main' antes de fusionarlos en la rama local 'main':
Ejecutar
git fetch
para descargar los cambios del repositorio remoto:git fetch origin
Los cambios de 'origin/main' ahora están disponibles localmente, pero aún no se han fusionado.
Para ver los cambios sin fusionar, se puede comparar 'main' con 'origin/main' usando
git diff
o revisar el historial de cambios congit log
.Si se decide fusionar los cambios, se puede realizar mediante
git merge
ogit pull
.
6. git bisect
El comando git bisect
se utiliza para encontrar el commit que introdujo un error, realizando una búsqueda binaria en el historial de commits.
Ejemplo de uso
Supongamos que se encontró un error en el proyecto y se desea encontrar el commit que lo introdujo:
Iniciar el proceso de búsqueda binaria con
git bisect
:git bisect start
Marcar el commit actual como "bueno" o "malo" según corresponda:
git bisect good <commit-hash> git bisect bad <commit-hash>
Git seleccionará automáticamente el próximo commit para verificar.
Repetir los pasos 2 y 3 hasta que se encuentre el commit problemático.
Finalizar el proceso de búsqueda binaria:
git bisect reset
7. git reflog
El comando git reflog
muestra un registro detallado de todas las operaciones que se han realizado en un repositorio, incluyendo cambios de rama y acciones de rebase.
Puede ser útil para recuperar commits perdidos o deshacer cambios.
Para ver el registro de reflog:
Ejecutar el comando
git reflog
:git reflog
Este comando muestra una lista de registros con las operaciones realizadas junto con los identificadores de los commits asociados.
Se puede usar esta información para recuperar commits perdidos o realizar otras acciones según sea necesario.
8. git filter-branch
El comando git filter-branch
permite reescribir la historia de un repositorio, filtrando commits o realizando otras modificaciones en el historial.
Esto es útil cuando necesita realizar cambios significativos en el historial de un proyecto.
Ejemplo de uso
Supongamos que necesita eliminar un archivo en todos los commits de la rama 'master':
Utilizar
git filter-branch
para realizar la operación deseada:git filter-branch --tree-filter 'rm -f path/to/file' master
En el comando anterior
git filter-branch
permite realizar operaciones personalizadas en cada commit de una rama.tree-filter
indica que se realizará una operación en el árbol de trabajo.rm
es el comando para eliminar archivos, y-f
indica que se eliminará el archivo especificado.path/to/file
es la ruta del archivo que se eliminará, ymaster
es la rama en la que se realizará la operación.Esto eliminará el archivo en cada commit de la rama 'master'.
Se debe tener en cuenta que este comando reescribirá la historia, por lo que se debe tener cuidado al usarlo en repositorios compartidos.
9. git submodule
El comando git submodule
se utiliza para administrar submódulos en un repositorio Git. Los submódulos son repositorios Git independientes que se pueden incluir dentro de otro repositorio.
Para agregar un submódulo a un repositorio existente:
Ejecutar el comando
git submodule add
con la URL del repositorio del submódulo y la ruta donde se almacenará:git submodule add https://github.com/ejemplo/repo-submodulo path/to/submodule
Confirmar los cambios en el repositorio principal.
Otros colaboradores pueden inicializar y actualizar los submódulos con:
git submodule init git submodule update
Para clonar un repositorio con submódulos, se debe usar el comando
--recurse-submodules
:git clone --recurse-submodules https://github.com/ejemplo/repo-principal
Conclusión
Estos son algunos comandos avanzados de Git que permiten a los desarrolladores tener un mayor control sobre su historial de cambios y su flujo de trabajo. Es importante comprender bien estos comandos y su impacto en el repositorio antes de utilizarlos en proyectos reales.
Ejercicios de esta lección Comandos avanzados
Evalúa tus conocimientos de esta lección Comandos avanzados con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Introducción a Git
Comandos avanzados
Comandos básicos
GitHub como remoto
Comandos básicos
Comandos avanzados
Git con GitHub Desktop
Ramas
Instalación y configuración
Resolución de conflictos
Git con Intellij IDEA
Git con Visual Studio Code
Todas las lecciones de Git
Accede a todas las lecciones de Git y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Introducción A Git
Introducción Y Entorno
Instalación Y Configuración
Introducción Y Entorno
Comandos Básicos
Comandos
Comandos Avanzados
Comandos
Ramas
Ramas
Github Como Remoto
Trabajo Remoto Y Colaboración
Git Con Github Desktop
Trabajo Remoto Y Colaboración
Git Con Visual Studio Code
Trabajo Remoto Y Colaboración
Git Con Intellij Idea
Trabajo Remoto Y Colaboración
Resolución De Conflictos
Trabajo Remoto Y Colaboración
Certificados de superación de Git
Supera todos los ejercicios de programación del curso de Git y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.
En esta lección
Objetivos de aprendizaje de esta lección
- Comprender la utilidad de los comandos avanzados de Git.
- Aprender a utilizar comandos avanzados de Git para mejorar la eficiencia en el desarrollo de software.
- Familiarizarse con los comandos
git cherry-pick
,git rebase
,git stash
,git revert
,git fetch
,git bisect
,git reflog
,git filter-branch
ygit submodule
.