Cómo eliminar una confirmación protegida usando BFG

2 minutos de lectura

avatar de usuario
rcde0

Al limpiar el repositorio con BFG (https://rtyley.github.io/bfg-repo-cleaner/), se encontró con lo siguiente:

Protected commits
-----------------

These are your protected commits, and so their contents will NOT be altered:

 * commit ******* (protected by 'HEAD')

Ejecutando BFG con: --no-blob-protection me lo arregló.

Los documentos están aquí: https://rtyley.github.io/bfg-repo-cleaner/pero no vi dónde lo mencionan realmente como un medio para superar el error.

Nota: En mi caso, ya había intentado eliminar archivos manualmente, sin usar BFG, lo que me llevó a un estado en el que tuve que usar --no-blob-protection.

Si va a utilizar una herramienta tan potente como BFG, le recomiendo encarecidamente que lea su documentación (que explica esto), pero que responda a su pregunta:

BFG por defecto deja las confirmaciones “actuales” sin cambios. Su autor cree que el único flujo de trabajo seguro es limpiar el estado actual de su repositorio manualmente, probar que todo sigue funcionando, luego usar BFG para limpiar el historial y dejar el estado actual (que ya arregló manualmente) solo.

Hay opciones disponibles para cambiar la protección predeterminada (o desactivarla) si tiene casos de uso en los que cree que es innecesario (como lo hago la mayoría de las veces); pero si quieres usar aquellosdefinitivamente necesitas leer los documentos.

  • @ mike23 – ‘git rm archivos-que-no-quiero && agregar git. && git confirmar`

    –Mark Adelsberger

    7 mayo 2019 a las 12:55

Esta es una respuesta muy tardía, pero encontré un problema similar.

¿Estabas tratando de eliminar un archivo de un repositorio de git y su historial? ¿Tenía prisa y no se dio cuenta de que el archivo está presente en el estado de la confirmación más reciente, que BFG por defecto trata como protegido? Este fue un error que ocurrió hoy entre mi teclado y mi silla.

Si desea limpiar un repositorio: (1) elimine el archivo no deseado con los comandos habituales de git, por ejemplo, git rm file; git commit(2) pruebe que todo sigue funcionando sin ese archivo, (3) use bfg para reescribir el historial del repositorio sin ese archivo.

¿Ha sido útil esta solución?