Git prune es un comando que elimina todos los archivos a los que no se puede acceder desde la rama actual. El comando prune es útil cuando tiene muchos archivos en su directorio de trabajo que no desea conservar. El uso principal de git prune es limpiar su directorio de trabajo una vez que haya terminado de trabajar en un proyecto. Lo que realmente hace git prune es, supongamos que tiene un objeto o confirmación que ya no es accesible desde la rama actual. Luego, git prune eliminará ese objeto o confirmará. La idea básica es que git prune es una forma de limpiar tu directorio de trabajo para que sea más fácil y ligero trabajar en un proyecto.
Dominio:
git fetch –prune <remoto>
El comando git fetch –prune <remote> es una forma de eliminar todos los objetos a los que no se puede acceder desde el repositorio remoto. Y si solo desea podar el repositorio remoto y no recuperarlo, puede usar:
origen de ciruela remota de git
Esto dará como resultado que se elimine el repositorio remoto. Si desea configurar git para eliminar el repositorio remoto cuando lo recupera, puede usar:
git config –global fetch.prune verdadero
Comprendamos el comando git prune con un poco más de detalle.
Considere este escenario, suponga que tiene un proyecto en el que está trabajando. Tiene un montón de archivos en su directorio de trabajo y no se puede acceder a una confirmación desde la rama actual. Luego, desea eliminar todos los objetos o confirmar que no son accesibles desde la rama actual.
1. crear un nuevo repositorio e inicializarlo
mkdir git-prune-demo-geeks
cd git-prune-demo-geeks
git inicializar
echo “Hola mundo” > hola.txt
git agregar hola.txt
git commit -m “primera confirmación”
La secuencia de comandos anterior:
- crea un nuevo repositorio llamado git-prune-demo-geeks
- cambie el directorio actual a git-prune-demo-geeks
- inicializar el repositorio
- crea un archivo hello.txt con el contenido “Hello World”
- agregue el archivo hello.txt al área de ensayo
- confirme el archivo hello.txt con el mensaje «first commit»
Producción:
2. Modifique el archivo hello.txt y cree una nueva confirmación
echo “Hola desde el otro lado” > hola.txt
git agregar hola.txt
git commit -m «segundo compromiso»
Producción:
Esto agregará la línea «Hola desde el otro lado» al archivo hello.txt y lo confirmará con el mensaje «segundo compromiso». Para verificar la secuencia de comandos anterior, podemos usar el siguiente comando:
registro de git
Producción:
Aquí, el registro de git mostrará el historial de confirmaciones del repositorio.
3. Hacer que la confirmación sea inalcanzable desde la rama actual
git reset –HEAD duro~1
Producción:
Aquí, HEAD~1 es la confirmación a la que no se puede acceder desde la rama actual. Y ahora, si tratamos de ver la salida del registro de git nuevamente, veremos que ya no se puede acceder a la confirmación desde la rama actual, solo mostrará la confirmación a la que se puede acceder desde la rama actual.
registro de git
Producción:
Este repositorio ahora tiene una confirmación que es una confirmación separada. Entonces, si intenta verificar la confirmación, no verificará la confirmación pero creará una rama separada. La segunda confirmación es una confirmación separada y ya no se muestra en la salida del registro de git.
git pago CABEZA ~ 1
Producción:
HEAD~1 es la confirmación que se separa de la rama actual.
4. Ejecutando git prune
Después de verificar la confirmación separada, debemos regresar al maestro a través del comando git checkout y luego ejecutar el comando git prune. Tenemos que pasar ciertas opciones al comando git prune para que la salida del comando muestre lo que está configurado para ser podado.
git prune –ejecución en seco –verbose
Producción:
Aquí, la salida vacía significa que no se elimina nada. Porque en algún lugar del repositorio, git mantiene la referencia de confirmación que está separada de la rama actual. Entonces, git prune no eliminará la confirmación. Y para concluir nuestro escenario, primero debemos borrar reflog .
git reflog expire –expire=now –expire-unreachable=now –all
Esto forzará la expiración del reflog. Después de eliminar el registro de referencia, podemos ejecutar el comando git prune nuevamente.
git prune –dry-run –verbose –expire=ahora
Producción:
Esto dará como resultado la visualización de referencias de objetos SHA de git de objetos de árbol y confirmación a los que ya no se puede acceder desde la rama actual.
Publicación traducida automáticamente
Artículo escrito por amnindersingh1414 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA