Mantenimiento y limpieza de repositorios
Aprenda comandos como `git gc` y `git prune` para limpiar y optimizar su repositorio local de Git.
Mantenimiento y limpieza de repositorios es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.
Bienvenido al mantenimiento de Git
Con el tiempo, sus repositorios locales de Git pueden acumular archivos innecesarios y volverse menos eficientes. ¡Piense en ello como en una habitación desordenada!
En esta lección aprenderá a limpiar y optimizar sus repositorios de Git mediante comandos potentes como git gc y git prune. Esto permite que sus proyectos funcionen correctamente.
Explicación del almacén de objetos de Git
Primero, entendamos cómo almacena Git los datos. Git guarda el historial de su proyecto como una serie de «objetos»:
- Blobs: Contenido de los archivos
- Trees: Directorios y su contenido
- Commits: Instantáneas del proyecto en un momento determinado
- Tags: Punteros a commits específicos
Estos objetos pueden almacenarse como «objetos sueltos» o comprimirse en «packfiles» para mejorar la eficiencia.
Introducción a `git gc` (recolección de basura)
El comando git gc significa «garbage collect» (recolección de basura). Es la herramienta integrada de Git para limpiar y optimizar el repositorio.
Entre sus tareas principales se incluyen:
- Empaquetar objetos sueltos: Comprimir objetos individuales en un único packfile.
- Depurar objetos inalcanzables: Eliminar objetos a los que ya no hace referencia ningún commit, rama o etiqueta (después de cierto tiempo).
- Eliminar packfiles antiguos: Deshacerse de archivos de objetos comprimidos obsoletos.
Este proceso hace que el repositorio sea más pequeño y rápido.
Ejecutar `git gc` (uso general)
Puede ejecutar git gc manualmente en cualquier momento. Git también lo ejecuta automáticamente en segundo plano al realizar determinadas operaciones, como enviar o descargar cambios.
Por lo general, es seguro ejecutarlo, pero es recomendable asegurarse de no tener trabajo sin confirmar que pudiera necesitar recuperar antes de una limpieza importante.
Intente ejecutarlo en su terminal:
git gcComprender el resultado de `git gc`
Al ejecutar git gc, verá un resultado similar a este:
Counting objects: 1234, done.
Compressing objects: 100% (987/987), done.
Writing objects: 100% (1234/1234), done.
Total 1234 (delta 567), reused 0 (delta 0)
Removing duplicate objects: 100% (256/256), done.
Pruning objects: 100% (123/123), done.Esto muestra que Git está empaquetando objetos, escribiendo nuevos packfiles y depurando (eliminando) objetos antiguos e inalcanzables. Los números variarán según el estado de su repositorio.
Concéntrese en `git prune`
Si bien git gc se encarga de muchas tareas de limpieza, git prune se ocupa específicamente de eliminar objetos «colgantes» o «inalcanzables».
- Objetos colgantes: Son objetos que existen en su repositorio, pero que ya no están referenciados por ningún commit, rama ni etiqueta, y tampoco forman parte de un packfile.
- Objetos inalcanzables: Es un término similar a «colgantes», pero más amplio. Pueden existir por diversos motivos, como después de un rebase o un reset que reescribe el historial.
git prune elimina estos objetos si son anteriores al tiempo de caducidad predeterminado, que normalmente es de 2 semanas.
Ejecutar `git prune` directamente
Por lo general, no necesita ejecutar git prune directamente, ya que git gc lo invoca. Sin embargo, puede utilizarlo para realizar una limpieza más específica.
Para ver qué haría git prune sin eliminar nada realmente, use la opción --dry-run:
git prune --dry-runPoda con caducidad
De forma predeterminada, git prune (y el paso de poda de git gc) solo elimina objetos que tienen más de dos semanas. Puede anular este comportamiento mediante la opción --expire.
Esto resulta útil si desea limpiar de forma más agresiva objetos colgantes creados muy recientemente, por ejemplo, después de un rebase experimental que está seguro de que no necesitará revertir.
Por ejemplo, para podar objetos con más de 1 día:
git prune --expire=1.dayDiferencias con `git reflog expire`
Es importante no confundir git prune con git reflog expire. Aunque ambos están relacionados con la limpieza, tienen propósitos diferentes:
git prune: Elimina objetos de Git reales (blobs, árboles y commits) de la base de datos de objetos.git reflog expire: Limpia las entradas del reflog (un historial local de las ubicaciones en las que ha estado su HEAD), lo que dificulta encontrar ciertos commits, pero no elimina los objetos en sí.
¡Tenga siempre cuidado al modificar el historial o ejecutar comandos de limpieza!
Comprobación del mantenimiento
¿Cuál de las siguientes opciones describe mejor la función principal de git gc?
Recapitulación y próximos pasos
¡Enhorabuena! Ha aprendido a mantener sus repositorios de Git ordenados y eficientes.
git gc: El comando integral para la recolección de basura, el empaquetado de objetos y la poda.git prune: Se dirige específicamente a los objetos inalcanzables y colgantes que superan un plazo de caducidad determinado, y los elimina.
El mantenimiento periódico ayuda a garantizar que su flujo de trabajo con Git siga siendo fluido y que sus repositorios no consuman demasiado espacio en disco. ¡Siga así!
Preguntas frecuentes
¿La lección «Mantenimiento y limpieza de repositorios» es gratis?
Sí — el texto completo de «Mantenimiento y limpieza de repositorios» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.
¿Qué aprenderé en «Mantenimiento y limpieza de repositorios»?
Aprenda comandos como `git gc` y `git prune` para limpiar y optimizar su repositorio local de Git. Practicas DevOps Bootcamp con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar DevOps Bootcamp?
No se requiere experiencia previa. DevOps Bootcamp en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Mantenimiento y limpieza de repositorios»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de DevOps Bootcamp?
Sí. Cada lección de DevOps Bootcamp incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Git Reflog y recuperación del historial
- Git Bisect para depuración
- Mantenimiento y limpieza de repositorios
- Reescritura del historial con git filter-repo