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. Ya existe una copia de seguridad anterior en refs / original /
Forzar la sobrescritura de la copia de seguridad con -f
rm: no se puede eliminar /.git-rewrite/backup-refs: Permiso denegado
rm: no se puede eliminar el directorio /.git-rewrite: El directorio no está vacío
Esto fue después de que ya borré el directorio .git-rewrite en Windows.
¿Cómo puedo eliminar ese archivo? Es un archivo de 29 Mb que se encuentra en mi repositorio, por lo que necesito eliminar el archivo.
Intenté eliminar la confirmación git rebase -i
, pero aparentemente debido a que la confirmación tocó muchos archivos diferentes, Git se queja de los conflictos y aborté para estar seguro.
.git-rewrite already exists, please remove it
.Respuestas:
Ya ha realizado una operación de rama de filtro. Después de la rama de filtro, Git mantiene las referencias a las confirmaciones anteriores, en caso de que algo salga mal.
Puedes encontrarlos en
.git/refs/original/…
. Elimina ese directorio y todos los archivos que contiene, o usa la-f
bandera para obligar a Git a eliminar las referencias antiguas.fuente
-f
) van antes de las refs (HEAD
). losgit add
. Recibí el mismo error que el póster original incluso después de eliminar la.git/refs/original/
carpeta y usar la-f
bandera en elgit filter-branch
comando. La solución, en mi caso, fue borrar el.git/packed-refs
archivo.--ignore-unmatch
al comandogit rm
y fue sin problemas.Utilice este comando para eliminar la copia de seguridad original:
Aquí está la esencia que solía filtrar y ramificar mi repositorio git: https://gist.github.com/k06a/25a0214c98bc19fd6817
fuente
.git/refs/original/
no resuelve el problema.git show-ref | awk '/ refs.original.refs/{print$2}'
para encontrar todas las copias de seguridad que tiene su repositorio.Tuve el mismo problema y la respuesta anterior no lo solucionó. No quedaba ningún directorio .git / refs / original /. La solución para mí fue eliminar el archivo .git / pack-refs.
fuente
.git/packed-refs
embargo, no hay archivo ni carpetaoriginal
en.git/refs
. ¿Nadie?-r
bandera al comando.Agregue una fuerza al comando de rama de filtro.
fuente