Usando o git 1.6.4.2, quando tentei um git pull
, recebo este erro:
error: unable to resolve reference refs/remotes/origin/LT558-optimize-sql: No such file or directory
From git+ssh://remoteserver/~/misk5
! [new branch] LT558-optimize-sql -> origin/LT558-optimize-sql (unable to update local ref)
error: unable to resolve reference refs/remotes/origin/split-css: No such file or directory
! [new branch] split-css -> origin/split-css (unable to update local ref)
Eu tentei git remote prune origin
, mas não ajudou.
Respostas:
Tente limpar seu repositório local com:
man git-gc (1):
man git-remote (1):
fonte
git remote prune origin
comando será executado na minha cópia de trabalho local ou no repositório remoto?Isso também aconteceu comigo. No meu caso, o juiz ruim era o mestre, e eu fiz o seguinte:
Isso fez o git restaurar o arquivo ref. Depois disso tudo funcionou como esperado novamente.
fonte
.git
existe uma pasta,ls -la
caso contrário, consulte o conteúdo do.git
arquivo para encontrar a pasta .git real na qual as referências estão..git
conteúdo do arquivo no meu caso:gitdir: ../.git/modules/my-submodule-name
Isso fez o trabalho para mim:
fonte
git remote prune origin
Para mim, funcionou para remover os arquivos que estão gerando erros da pasta
.git/refs/remotes/origin/
.fonte
NULL
s.Tente:
fonte
Execute os seguintes comandos:
fonte
Gostaria apenas de acrescentar como pode acontecer uma quebra de referência.
Possível causa raiz
No meu sistema (Windows 7 de 64 bits), quando ocorre um BSOD , alguns dos arquivos de referência armazenados (provavelmente abertos / gravados no momento em que o BSOD aconteceu) são substituídos por
NULL
caracteres (ASCII 0).Como outros mencionados, para corrigi-lo, basta excluir esses arquivos de referência inválidos e buscar novamente ou puxar novamente o repositório.
Exemplo
Erro:
cannot lock ref 'refs/remotes/origin/some/branch': unable to resolve reference 'refs/remotes/origin/some/branch': reference broken
Solução: exclua o arquivo
%repo_root%/.git/refs/remotes/origin/some/branch
fonte
error: cannot lock ref 'refs/remotes/origin/master': unable to resolve reference 'refs/remotes/origin/master': reference broken
. Tentandogit pull
depois de excluir o primeiro arquivo retornadofatal: update_ref failed for ref 'HEAD': cannot lock ref 'HEAD': unable to resolve reference 'refs/heads/master': reference broken
. Depois de excluir o segundo arquivogit pull origin master
foi bem-sucedido.Eu tive esse mesmo problema e o resolvi indo para o arquivo em que estava com erro:
Este arquivo estava cheio de nulos, substituí-o pela última referência do github.
fonte
.git/refs/remotes/origin/master
estava vazio. Resolvido o problema removendo-o.No meu caso, o problema foi resolvido após a exclusão de todos os arquivos de referência de remoção no diretório
.git
.Se você olhar para a mensagem, ela informará quais arquivos você precisa excluir (especificamente).
Os arquivos a serem excluídos estão abaixo
.git/refs/remotes
.Acabei de excluir todos os arquivos de lá e executei o gc ameixa
Depois disso, tudo funciona muito bem.
fonte
Explicação : Parece que suas ramificações de repositório remoto (no Github / bitbucket) foram removidas, embora suas referências locais não tenham sido atualizadas e apontando para referências inexistentes.
Para resolver este problema:
Para leitura extra - Referência da documentação do Github :
fonte
git fetch --prune
Corrigido este erro para mim:Isso pressupõe que a ramificação incorreta foi excluída no controle remoto.
fonte
--prune
que eu posso ver. Também proTip: remova prompts de senha inúteis após colar exemplos.Se esse erro "incapaz de atualizar a ref local" for recorrente, mesmo após aplicar a resposta de Vojtech Vitek ou Michel Krämer, você pode ter uma má ref no seu repositório local e mestre.
Nesse caso, você deve aplicar as duas correções sem puxar ou empurrar entre ...
Uma resolução permanente para mim só foi alcançada após a aplicação de ambas as correções antes do push / pull.
fonte
Para responder a isso muito brevemente, esse problema ocorre quando o seu local possui algumas informações sobre o controle remoto e alguém altera algo que torna o controle remoto e suas alterações não sincronizadas.
Eu estava recebendo esse problema porque alguém excluiu a ramificação remota e criou novamente com o mesmo nome.
Para lidar com esses problemas, puxe ou busque no controle remoto.
ou se você estiver usando qualquer GUI, faça uma busca a partir do controle remoto.
fonte
Eu pude trabalhar com
fonte
Tente o seguinte:
Branch_Name
, o ramo em que você está atualmente.Se você fizer apenas um
git pull
, ele puxará todos os outros nomes de ramificações criados também.Então é a razão pela qual você está recebendo isso:
fonte
Para mim, eu tinha um ramo local chamado
feature/phase2
e o ramo remoto foi nomeadofeature/phase2/data-model
. O conflito de nomenclatura foi a causa do problema; por isso, excluí minha ramificação local (você pode renomeá-la se houver algo que precise manter)fonte
E se
git gc --prune=now
não ajudar você. (azar como eu)O que fiz foi remover o projeto no local e clonar novamente o projeto inteiro.
fonte
Estou usando o Tower e, por algum motivo, meu nome de pasta era
.git/refs/remotes/origin/Github
. Mudar para minúsculas.git/refs/remotes/origin/github
resolveu o problema.fonte
Eu tive o mesmo problema. sigo os seguintes passos
1) mude sua filial que tem problema para outra filial
2) excluir esse ramo
3) finalize a compra novamente.
Nota: - Você pode ocultar as alterações não confirmadas e colocá-las novamente.
fonte
Eu usei
git prune origin
e isso fez o trabalho.fonte
Eu tive o mesmo problema com a atualização do compositor. Mas, para mim, só funcionou depois de limpar o cache do compositor e excluir o conteúdo da pasta do fornecedor:
fonte
Esse problema ocorreu ao tentar clonar a partir de um
git bundle
arquivo criado, nenhuma das outras respostas funcionou porque não consegui clonar o repositório (por isso,git gc
remover / editar arquivos estava fora de questão).No entanto, havia outra maneira de corrigir isso - o arquivo de origem de um
.bundle
arquivo estava começando com:Simplesmente remover a quarta linha com o vim corrigiu o problema.
fonte
Eu tive esse problema ao usar o SourceTree. Eu tentei puxar novamente e funcionou. Eu acho que estava trabalhando nos galhos (checkout) muito rápido :).
Minha situação é um pouco diferente da do pôster, porque meu repositório tem sido relativamente cooperativo, sem nenhuma corrupção aparente.
fonte
fonte
Enfrentou o mesmo problema quando o repositório foi excluído e criado com o mesmo nome. Funcionou apenas quando reconfigurei o URL remoto como abaixo;
Verifique o URL remoto:
Agora, todos os comandos devem funcionar como de costume.
fonte
Acabei de encontrar o problema hoje.
Método de solução de problemas: Com o SourceTree nos servidores Windows, você pode tentar executá-lo como administrador. Isso corrige meu problema de "não é possível atualizar a ref local" na Atlassian Source Tree 2.1.2.5 em um Windows Server 2012 R2 no domínio.
Se você também pode replicar essa situação, isso prova que o problema é causado por um problema de permissão. É melhor detalhar e encontrar a causa raiz - provavelmente alguns arquivos específicos pertencem a outros usuários e outros - caso contrário, há um efeito colateral indesejável: você precisará executar o SourceTree como administrador pelo resto da eternidade.
fonte
Anote um caso específico que possa causar esse problema.
Um dia, empurrei uma ramificação chamada "feature / subfeature", enquanto mantinha a ramificação "feature" no controle remoto.
Essa operação funcionou bem, sem nenhum erro do meu lado, mas quando meus colegas de trabalho buscaram e / ou puxaram qualquer filial, todos eles tiveram exatamente a mesma mensagem de erro
unable to update local ref
,cannot lock ref 'refs/remotes/origin/feature/subfeature
.Isso foi resolvido excluindo
feature
branch no remote (git push --delete origin feature
) e executandogit remote prune origin
no repo dos meus colegas de trabalho, que gerava mensagens incluindo* [pruned] origin/feature
.Então, meu palpite é que
git fetch
estava tentando criarsubfeature
ref nafeature
pasta no git internamente (.git / ...), mas a criação da pasta falhou porque já haviafeature
ref.fonte
Temos esse problema quando um desenvolvedor no Mac criou uma ramificação com um símbolo maior que ">" no nome da ramificação.
Isso causou problemas no TeamCity e em computadores locais baseados no Windows executando o SourceTree. O BitBucket deixou passar sem problemas.
Para resolver, o usuário removeu a ramificação e a recriou. O que foi legal e fácil.
fonte
Tinha a mesma mensagem, mas com um diretório, recebia uma mensagem com falha na recepção.
O git --prone também não me ajudou. Acontece que havia um arquivo com o mesmo nome que um diretório criado remotamente.
Tinha que ir para .git \ logs \ refs \ remotes \ origin e apagar o arquivo de localidade - depois puxe novamente, tudo de bom.
fonte