Algo errado está acontecendo com um dos arquivos no meu repositório git local. Quando estou tentando alterar o ramo, ele diz:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
O que isso poderia significar?
Algo errado está acontecendo com um dos arquivos no meu repositório git local. Quando estou tentando alterar o ramo, ele diz:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
O que isso poderia significar?
Respostas:
Isso pode significar que outro programa está usando o arquivo, o que impede o git de "mover" o arquivo para dentro ou fora do diretório de trabalho quando você está tentando alterar ramificações.
Eu tive isso acontecer no Windows Vista, onde eclipse é o programa "usando" o arquivo. O arquivo pode não estar realmente aberto no eclipse, mas pode ter sido aberto por um processo executado pelo eclipse.
Nesse caso, tente fechar o arquivo em qualquer aplicativo que possa ter usado. Se isso não funcionar, saia completamente de todos os aplicativos que possam ter aberto o arquivo.
GitKrakenpoderá obtê-lo se executar comandos como um rebase.
Eu tive esse problema e resolvi-o pelo comando: git gc
O comando acima remove temp e arquivos desnecessários. (Coletor de lixo.)
git pulliniciado git gcautomaticamente e o gc tentou acessar alguns arquivos .pack e .inx. Eles foram mantidos pelo processo "windows git", que possuía o git pullcomando. Executando git gcmanualmente e depois - git pullrealmente resolve o problema.
git gceu tenho o mesmo erro novamente quando gcestava em andamento
esta solução daqui funcionou para mim:
Esta é uma resposta específica do Windows, por isso estou ciente de que não é relevante para você ... Estou apenas incluindo-a para o benefício de futuros pesquisadores.
No meu caso, foi porque eu estava executando o Git a partir de uma linha de comando não elevada. "Executar como administrador" corrigiu para mim.
Ctrl+Cpara finalizar a longa lista de arquivos não vinculáveis; saiu do gitbash, do meu IDE e do aplicativo GitHub para Windows; gitbash reiniciado no modo "Executar como Administrador" elevado; e correu git gc --aggressive. Demorou um pouco para concluir, mas conseguiu passar sem erros.
Encontrei esse problema ao fazer um git pull.
Eu tentei git gce resolveu o meu problema.
No meu caso, não há processos tocando o arquivo ou diretório. Talvez isso aconteça se o caminho for muito longo, devido a uma restrição do sistema operacional (windows). Tente ativar o sinalizador de suporte de caminho longo na configuração global do git, conforme indicado abaixo:
git config --global core.longpaths true
ou tente definir o sinalizador de resposta sim / não, se não for conflitante para você
set GIT_ASK_YESNO=false
Se o caminho for muito longo, não encontrei uma solução bem-sucedida.
GIT_ASK_YESNO, não consegue encontrar informações sobre este. De onde isso vem ?
core.longpathscom adicional: redefinição --hard ameixa gc funcionou para mim - mas teve que fechar AndroidStudio para não mexer com a sua construção em ferramentas
Eu tentei git gce resolveu o meu problema.
Isso pode ser útil para alguém; se todas as opções acima não funcionarem para você, siga estas etapas:
Feche seu IDE (o meu era o Eclipse, não tenho certeza se ele se aplica ao Intellij e outros) ou a qualquer outro aplicativo que possa estar usando o git.
Abra o git na linha de comando (no meu caso, eu tinha o git bash) e execute git gccomo mencionado por outros.
Isso fez a mágica para mim.
Como eu estou usando gitkraken e prompt de comando, eu corri para o mesmo problema. E então eu corro git gccomando que resolveu o meu problema. Então, eu estou feliz e quero compartilhar alguns dos pontos que podem ser úteis.
O que git gcvai fazer?
git gc removendo objetos inacessíveis que podem ter sido criados a partir de invocações anteriores do git add.
Quando correr git gc?
No documento , os usuários são incentivados a executar esta tarefa regularmente em cada repositório para manter uma boa utilização do espaço em disco e um bom desempenho operacional.
Como torná-lo auto-configurável?
Alguns comandos git podem executar automaticamente o git gc; veja a bandeira --auto abaixo para obter detalhes. Se você sabe o que está fazendo e tudo o que deseja é desativar esse comportamento permanentemente, sem mais considerações, basta
git config --global gc.auto 0
No meu caso (Win8.1, TortoiseGit em execução), foi o processo chamado "cache de status TortoiseSVN" que estava bloqueando o arquivo.
Matá-lo me permitiu executar o "git gc" sem mais problemas. O processo acima é iniciado pelo TortoiseGit, portanto, não há necessidade de reiniciá-lo manualmente.
Eu tive esse tipo de problema no Windows 7 e acabou por ser devido a algum git.exeprocesso órfão .
Para resolvê-lo, abra o Gerenciador de tarefas e mate todos os git.exeprocessos.
Como os gitcomandos têm vida curta, normalmente você nunca deve ver nenhum git.exeno Gerenciador de Tarefas. Quando eles estão lá, geralmente significa que algo está errado, e você deve matar esses processos.
No Windows 8: executei o git gc e ele dizia que o git gc já estava em execução, executei o git gc --force e o coletor de lixo foi executado.
Eu poderia então alternar entre ramificações e mesclar sem problemas, tente o git gc --force.
Talvez o processo de GC não tenha parado por um motivo ou outro.
Eu tive esse problema com .tmparquivos na /.git/objects/packpasta Acho que algo falhou durante um push ou pull, então removi esses arquivos temporários e redefinii o HEAD para minha última confirmação. Não tenho certeza se isso é recomendado, mas funcionou para mim. Também git count-objects -vme deu uma lista dos .tmparquivos que não pertencem à pasta do pacote.
Ou para suprimir as mensagens y / n nas janelas git open cmd.exee executar:
SETX GIT_ASK_YESNO false
visto aqui: https://twitter.com/petercamfield/status/494805475733807104
git gc, git count-objects -vajuda a identificar os objetos temporários restantes na packpasta.
Consegui resolver isso abrindo o Powershell como administrador e a partir daí
git checkout <branch_name>
Eu enfrentei o mesmo problema ao fazer 'git pull'. Tentei o comando git 'git gc' de limpeza manual e resolveu o meu problema.
Após executar o comando
git rm -rf foo.bar
Vejo erro
Unlink of file 'foo.bar' failed. Should I try again? (y/n)
Porque outro programa está usando esse arquivo . Por exemplo, quando executo o aplicativo Web Java no modelo de depuração ou o aplicativo Web no servidor, não consigo excluir o arquivo de log. Desative o servidor de aplicativos (ou desative o processo de depuração), tente novamente
git rm -rf foo.bar
Vejo que o arquivo foi excluído.
Depois que nenhuma das respostas acima parecia funcionar, a execução git fetch -p funcionou para mim.
Eu me deparei com esse problema no Windows; talvez você queira executar o git bash como administrador e, em seguida, executar os comandos de desejo, que resolveram o problema para mim.
Eu tentei todas as dicas nesta página e nada ajudou. Eu estava fazendo um git fetche umgit reset --hard origin/development me deu o erro desconectado. Não foi possível redefinir para a confirmação mais recente.
O que ajudou foi verificar outra ramificação e depois verificar a ramificação anterior. Muito estranho, mas resolveu o problema.
Se você estiver usando o Docker e executando o Windows 10, poderá interromper o (s) contêiner (s) em que o arquivo pode estar em execução. Para mostrar os status dos seus contêineres, execute
docker ps -a
Para detê-los, basta executar
docker stop <container name or container id>
Isso funcionou para mim, pois estou executando meus arquivos locais usando um arquivo .sh
No Windows, vi esse erro em um git clonerepositório (bastante grande). Fechado SmartGit e parou o meu software de backup (crashplan), e depois que ele trabalhou. Não tenho certeza qual dos 2 fez o truque, mas se estiver executando um ou outro, isso também poderá ser útil para você.
Eu tive o mesmo problema ao executar um git pull e, como mencionado acima, foi por causa de um programa que estava mantendo esses arquivos e não estava permitindo um git pull. Fechar o programa ajudou. Normalmente, o IDE (como o Eclipse) de onde os arquivos estão sendo registrados o manterá em segundo plano. Fechar o mesmo e executar novamente o git pull resolveu o problema para mim.
Eu tive esse mesmo erro e o fechamento do aplicativo que tinha o arquivo aberto o resolveu. Consegui voltar e pressionar "Y"