Eu só tenho o branch master e recebo este erro toda vez que tento "git pull":
error: Couldn't set refs/remotes/origin/master
From /var/lib/git/xxx/project
! a0f80ea..49177a3 master -> origin/master (unable to update local ref)
e quando eu faço "git pull origin master" eu obtenho:
error: Couldn't set ORIG_HEAD
fatal: Cannot update the ref 'ORIG_HEAD'.
Eu tenho procurado, mas não consigo encontrar o porquê
git
command-line-interface
user115561
fonte
fonte
Respostas:
Minha equipe e eu encontramos este erro, incapaz de atualizar a referência local , ao fazer um pull no SourceTree.
Nós costumavamos :
Isso remove todos os objetos de referência duplicados que devem corrigir o problema.
Aqui estão alguns links onde você pode aprender mais sobre referências e remoção de git :
dica da semana
documentação do git-prune
referências git
fonte
git gc --prune=now
git remote prune origin
from stackoverflow.com/questions/2998832/…git remote prune origin
e não funcionou para mim. Mas depois disso tenteigit gc --prune=now
, e funcionou! Não tenho certeza se os dois eram necessários nessa ordem ou apenas este.git
isso leva a uma postagem útil do StackOverflow com uma solução concisa.Resolvi como abaixo:
git remote prune origin
fonte
git gc --prune=now
não fez nadacom gitbach line commande, use
git update-ref
para atualizar a referência do seu branch local:então puxe usando
$ git pull
[locked branch name]
é o nome do branch em que o erro está ocorrendo devido à incompatibilidade de IDs de confirmação.fonte
Tente usar este comando na pasta raiz do repositório git:
fonte
Eu descobri a mesma mensagem de erro ao tentar puxar de um Bitbuck Repo para minha cópia local. Também há apenas um Branche Master e o comando
git pull origin master
para esta mensagem de erroSolução como segue
git reflog
encontre o número do último commitgit reset --hard <numnber>
redefinir para o último commitgit pull origin master
puxe novamente sem errofonte
rm .git/refs/remotes/origin/master
Funciona para mim!
fonte
Certifique-se de que o usuário que está executando o
git pull
seja o mesmo usuário que criou o repositório. As permissões do arquivo estão incorretas.fonte
Clone o repositório novamente e copie a pasta .git em seu projeto quebrado.
fonte
Isso aconteceu comigo no OSX, onde uso um sistema de arquivos que não diferencia maiúsculas de minúsculas. De alguma forma, outro desenvolvedor empurrou um ramo com o mesmo nome mas caso diferente:
My-Branch
vsmy-branch
.Eu já fiz
My-Branch
check-out e recebi o erro "não foi possível atualizar o ref local" quando fiz um pull, provavelmente porque o sistema de arquivos pensaMy-Branch
==my-branch
.Como usamos o Github, eu poderia resolver o problema excluindo um dos ramos por meio da GUI do Github.
fonte
Este erro com (não é possível atualizar a referência local) também pode ocorrer se você tiver alterado suas senhas recentemente e houver algumas coisas sofisticadas integrando seus logins do Windows e do Linux.
fonte
Falando de um usuário de PC - Reinicialize.
Honestamente, funcionou para mim. Resolvi dois problemas estranhos do git que pensei serem corrupções dessa forma.
fonte
Esta é provavelmente uma situação de nicho, mas: Eu executo o Windows em uma VM Parallels no meu MacBook Pro, com meus repos locais armazenados no disco da VM, que é compartilhado com o macOS.
Se eu tiver um arquivo aberto em um aplicativo Mac de um repositório localizado na VM do Windows, às vezes recebo o erro "não foi possível atualizar o ref local". A solução quando isso acontecer é simplesmente fechar o arquivo ou sair do aplicativo Mac.
fonte
O que aconteceu aqui? As referências locais para seus branches remotos foram alteradas e, portanto, quando você executa
git pull
, git não encontra nenhum branch remoto correspondente e, portanto, falha.realmente limpa essas referências locais e, em seguida, executa
git pull
novamente.Sugestão - execute com
--dry-run
opção de segurançafonte
Eu tive o mesmo problema no meu servidor debian porque o disco está cheio. Nenhum arquivo temporário pode ser criado porque não há espaço restante no dispositivo. Depois de limpar alguns arquivos, funcionou bem.
fonte
Este trabalho para mim
fonte
Eu tive o mesmo erro, estava atualizando de dentro do Eclipse e recebi muitos erros. Tentei atualizar a partir de uma janela de comando do DOS e tive o mesmo problema.
Então tentei a solução "git gc --prune = now" Isso deu mensagens de que os arquivos estavam bloqueados no diretório refs.
O Eclipse deve ter travado em algo no diretório "refs".
A solução que encontrei foi simplesmente fechar o Eclipse. Então eu atualizei o repositório do DOS com um comando "git PULL" e tudo funcionou bem.
fonte
Remova o arquivo .git / logs / refs / remotes / origin / [Nome da filial bloqueada]
fonte