Tentei remover um arquivo do meu repo remoto executando:
git filter-branch --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD
Mas Git reclama que
Não é possível criar um novo backup. Já existe um backup anterior em refs / original /
Forçar a substituição do backup com -f
rm: não é possível remover /.git-rewrite/backup-refs: Permissão negada
rm: não é possível remover o diretório /.git-rewrite: Diretório não vazio
Isso foi depois que eu já excluí o diretório .git-rewrite no Windows.
Como posso remover esse arquivo? É um arquivo de 29 MB no meu repositório, então preciso remover o arquivo.
Eu tentei deletar o commit no git rebase -i
, mas aparentemente porque o commit tocou em muitos arquivos diferentes, Git reclama de conflitos e abortei por segurança.
.git-rewrite already exists, please remove it
.Respostas:
Você já executou uma operação de ramificação de filtro. Depois de filter-branch, Git mantém referências para os commits antigos, caso algo dê errado.
Você pode encontrar aqueles em
.git/refs/original/…
. Exclua esse diretório e todos os arquivos dentro dele ou use a-f
sinalização para forçar o Git a excluir as referências antigas.fonte
-f
) vão antes de refs (HEAD
). osgit add
. Estava recebendo o mesmo erro do autor da postagem original mesmo depois de excluir a.git/refs/original/
pasta e usar o-f
flag nogit filter-branch
comando. A solução, no meu caso, foi deletar o.git/packed-refs
arquivo.--ignore-unmatch
ao comandogit rm
e tudo correu bem!Use este comando para remover o backup original:
Aqui está a essência que usei para filtrar meu repositório git: https://gist.github.com/k06a/25a0214c98bc19fd6817
fonte
.git/refs/original/
não resolve o problema.git show-ref | awk '/ refs.original.refs/{print$2}'
para localizar todos os backups que seu repo possui.Eu tive o mesmo problema e a resposta acima não resolveu. Não havia mais diretório .git / refs / original /. A solução para mim foi excluir o arquivo .git / pack-refs.
fonte
.git/packed-refs
arquivo, entretanto, e nenhuma pastaoriginal
em.git/refs
. Qualquer um?-r
sinalizador ao comando.Adicione uma força ao comando de ramificação do filtro.
fonte