Error al purgar el archivo del repositorio de Git, no se puede crear una nueva copia de seguridad


Intenté eliminar un archivo de mi repositorio remoto ejecutando:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD

Pero Git se queja de que

No se puede crear una nueva copia de seguridad. Una copia de seguridad anterior ya existe en refs / original /
Forzar la sobreescritura de la copia de seguridad con-f
rm: no se puede quitar /.git-rewrite / backup-refs : Permiso denegado
rm: no se puede eliminar el directorio/.git-rewrite: Directorio no vacío

Esto fue después de que ya borré el.git-reescribir el directorio en Windows.

¿Cómo puede Puedo eliminar ese archivo? Es un archivo de 29Mb que se encuentra en mi repositorio, así que necesito eliminar el archivo.

Traté de eliminar la confirmación en git rebase -i, pero aparentemente debido a que la confirmación tocó muchos archivos diferentes, Git se queja de conflictos y aborté para estar seguro.

Author: Roberto Tyley, 2011-06-19

4 answers

Ya ha realizado una operación de rama de filtro. Después de filter-branch, Git mantiene referencias a las confirmaciones antiguas, en caso de que algo salga mal.

Puedes encontrarlos en .git/refs/original/…. Elimine ese directorio y todos los archivos que contiene, o use la bandera -f para forzar a Git a eliminar las referencias antiguas.

git filter-branch -f \
--index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD
 171
Author: knittl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-04 00:53:09

Utilice este comando para eliminar la copia de seguridad original:

git update-ref -d refs/original/refs/heads/master

Aquí está el gist que usé para filtrar mi repositorio git: https://gist.github.com/k06a/25a0214c98bc19fd6817

 11
Author: k06a,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-10 20:13:38

Tuve el mismo problema y la respuesta anterior no lo solucionó. No hubo.git/refs/ original / directorio izquierdo. La solución para mí era eliminar el .archivo git / packed-refs.

 4
Author: Yaron,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-23 23:39:33

Agregue una fuerza al comando filter branch.

 1
Author: Adam Dymitruk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-19 18:31:34