Git – git-prune

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:

Output

creando repositorio

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:

Output

Agregar confirmació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:

Output

salida de registro de git

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:

Output

reiniciar

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:

Output

registro de git

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:

Output

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:

Output

ciruela pasa

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:

Output

Podado el compromiso inalcanzable

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *