Estou ciente de que existem problemas semelhantes sobre o git relacionados ao aviso 'não foi possível desvincular', mas não consegui usá-los.
A principal diferença é que isso acontecia quando eu não estava lidando com submódulos de forma alguma (nunca havia lidado com eles antes). Eu criei um branch chamado 'upgrade', apaguei meus arquivos antigos do framework e copiei os novos. Usei git add -A e depois comprometo tudo. Quando tentei verificar o ramal do tronco, ele respondeu com os seguintes erros:
warning: unable to unlink requirements/views/sk/index.php: Permission denied
warning: unable to unlink requirements/views/sv/index.php: Permission denied
warning: unable to unlink requirements/views/zh/index.php: Permission denied
warning: unable to unlink requirements/views/zh_cn/index.php: Permission denied
warning: unable to unlink requirements/views/zh_tw/index.php: Permission denied
... etc. Há centenas deles.
No início, pensei que era apenas um problema de permissões, então adicionei as permissões de gravação de grupo a todo o diretório de requisitos recursivamente, mas não houve nenhuma mudança.
Edit: Como sugerido em uma resposta abaixo, tentei fazer a mesma coisa, mas com todo o resto fechado. Não tive mais sorte do que antes.
Esse problema é particularmente debilitante, pois não consigo passar para o tronco para voltar ao desenvolvimento normal.
sudo chown -R username directory
Respostas:
Normalmente vejo esse tipo de erro quando há um processo que não libera o identificador desses arquivos.
Certifique-se de que nada está funcionando e tente finalizar a compra novamente.
Nota: também pode estar relacionado com a forma como o Git foi instalado (no Windows, o UAC pode gerar problemas se msysgit estiver instalado em
C:\Program
ouC:\Program Files
, consulte " msysgit - sh.exe - fork: Permissão negada - Vista 64 bits " e comentário 2 de edição 437 )Observação: conforme ilustrado abaixo , uma outra causa comum do problema é a emissão de direitos no diretório (proprietário incorreto), não necessariamente no arquivo que não pode ser desvinculado.
fonte
git checkout -f master
Em meu primeiro encontro com esse erro, meu usuário tinha direitos para "escrever" no arquivo, mas não no diretório que o continha. Verifique as permissões do diretório que contém o arquivo.
fonte
"Desvincular" significa essencialmente "excluir arquivo" neste caso.
Este erro não é causado pelo próprio git. Você deve ter erros semelhantes ao excluir esses arquivos manualmente, em uma linha de comando ou explorador de arquivos.
fonte
Você não tem permissão de acesso, talvez porque não seja o proprietário.
Corrija mudando o proprietário para você:
fonte
Eu estava tendo o problema com um arquivo default-settings.php no drupal 7. Nesse caso, não consegui excluí-lo ou revertê-lo como disse @rtconner. Não tinha um aplicativo nem nada usando esse arquivo e acabou sendo um erro de permissão.
Eu adicionei
chmod 777 *
à pasta e depois fui capaz de reverter sem problemas.fonte
777
em nenhuma pasta. Isso resolveu meu problema, mas eu rapidamente mudei de volta para o padrão depois que foi resolvido. Obrigado!Você pode alterar as permissões de gravação para fazer isso.
Este comando dará
'w'
permissões a todas as pastas no diretório atual.fonte
Eu tive esse problema sempre que rodava "git repack" ou "git gc" em minhas máquinas OS X, mesmo quando rodava git com privilégios de administrador, e finalmente resolvi isso depois de encontrar esta página: http://hints.macworld.com /comment.php?mode=view&cid=1734
A solução é abrir um terminal, ir para o repositório git, fazer cd na pasta .git e fazer:
Se esse era o problema, depois disso, seus comandos git funcionarão normalmente.
fonte
Isso também pode ocorrer quando:
Você executou um processo dentro de um contêiner do Docker e:
Alguns arquivos foram gerados por esse processo e:
O destino dos arquivos é montado como um volume no host Docker e:
Você está executando
git
no host Docker.Se for este o caso, prepare os arquivos que deseja confirmar e execute:
Os arquivos que atendem aos critérios acima serão prefixados com:
Eles são de propriedade
root
e não podem ser gravados, o que não é bom. Para consertar essa corrida:Uma solução mais limpa provavelmente seria usar a
--user
opção, veja isto para Docker e isto para Docker compose .fonte
Para aqueles que estão usando o Intellij , como @rtconner disse que esse problema não é causado pelo git. Uma vez que seu IDE está bloqueado, o (s) arquivo (s) git não pode desassociar. Portanto, você precisa fechar seu IDE e tentar mesclá-lo (ou o que quiser) via linha de comando.
fonte
No meu caso, era um caractere ":" em um nome de pasta evitando que o repositório git fizesse check-out no windows.
fonte
no terminal no mac eu só faço isso
e depois
fonte
Tive este erro dentro de uma máquina virtual (rodando Ubuntu), quando tentei fazer
git reset --hard
.A correção foi simplesmente executar a
git reset --hard
partir da máquina host OS X em vez disso.fonte
Nenhuma das outras sugestões funcionou para mim, mas esta funcionou:
sudo git reflog expire --expire=now --all && sudo git gc --prune=now --aggressive
fonte
No meu caso, meu diretório do Windows está na pasta Dropbox. Não é um problema específico do Git. Quando um arquivo (neste caso, o arquivo de bloqueio) acaba de ser criado, o Dropbox leva mais um segundo para fazer a sincronização. Durante esse tempo, o arquivo está em uso pelo Dropbox e qualquer programa de terceiros (neste caso, Git) não pode excluir o arquivo.
Minha solução é encerrar o Dropbox e, portanto, evitar a mágica dos bastidores da sincronização de arquivos do Dropbox.
fonte
Eu encontrei este erro e ele é causado pelo "proprietário / grupo" errado do arquivo / pasta . Você deve procurar assistência ao administrador do servidor para alterar o "proprietário / grupo" deste arquivo / pasta e tentar novamente usando "git pull". Ou se você for um sudoer, apenas sudo chown "seu nome de proprietário / nome de seu grupo" e tente novamente puxar seu repositório. Experimente, funciona 100% para mim!
fonte
Certifique-se de que quaisquer processos ou threads associados não estejam em execução e execute a tarefa de encerramento ou force o encerramento, conforme necessário.
Certifique-se de alterar a permissão de propriedade.
fonte
Em geral, se isso acontecer no Windows , e você estiver usando o tortoisegit , é o cache de status do tortoisegit . Mate esse processo e ele será liberado.
fonte
git status
partir da linha de comando.Eu apenas tive que mudar o usuário do Ubuntu para o meu nome de usuário real, sob o qual fiz as coisas primeiro. Isso resolveu.
fonte
Resolvido para mim configurando meu cliente git (GitExtensions) para sempre executar no modo de administrador.
fonte
Tive esse problema ao usar
IntelliJ
(14.1.3 Ultimate), queria reverter as alterações em algum arquivo.Resolvido com o fechamento
Git Bash
aberto em outra janela - outro teste de reversãoIntelliJ
funcionou.fonte
Encontrei esse erro e acho que o problema era que eu tinha 'executado como admin' quando iniciei o Eclipse e criei os arquivos, portanto, eles eram de propriedade do Admin (notado ao executar 'ls -la' na pasta). Mais tarde, quando tentei esconder os arquivos, não consegui ('não foi possível desvincular os arquivos' e tudo mais). Fazer um chmod nos arquivos foi a solução para mim.
fonte
git gc funcionou para mim (em uma nova guia). Estava conseguindo isso com cada rebase. Obrigado http://www.saintsatplay.com/blog/2016/02/dealing-with-git-unlink-file-errors#.W4WWNZMzZZJ
fonte
Tudo que você precisa fazer é fornecer permissões, execute o comando abaixo a partir da raiz do seu projeto:
fonte
Eu tive o mesmo problema, tentei algumas alternativas como outros sugeriram.
Mas, finalmente, dar a permissão correta para a pasta .git resolverá os problemas.
fonte
No meu caso, o problema de permissão foi resolvido definindo
www-data
como proprietário:fonte
Acho que é sobre sua permissão de arquivo:
fonte