incapaz de remover o arquivo que realmente existe - fatal: pathspec ... não encontrou nenhum arquivo
Eu tenho um arquivo sob controle git que simplesmente não será excluído. O comando com falha é:
$ git rm .idea/workspace.xml
fatal: pathspec '.idea/workspace.xml' did not match any files
Abaixo, listo o conteúdo do diretório, as ramificações, etc. Até agora, tentei rm dentro do diretório e escapo para o caso de haver personagens engraçados e estou realmente perplexo. Eu pesquisei na web e SO, mas não conseguiu encontrar isso especificamente. Desde já, obrigado!
$ git branch -a
* dot-output
master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/modelspace
$
$ git status
# On branch dot-output
# Untracked files:
# ...
$ ls .idea/
ant.xml encodings.xml modules.xml workspace.xml
compiler.xml inspectionProfiles scopes
copyright libraries testrunner.xml
dictionaries misc.xml vcs.xml
$ ls -al
total 56
drwxr-xr-x 16 matt staff 544 Apr 10 11:33 .
drwxr-xr-x@ 33 matt staff 1122 Apr 10 09:40 ..
-rw-r--r--@ 1 matt staff 12292 Apr 10 11:19 .DS_Store
drwxr-xr-x 18 matt staff 612 Apr 10 11:39 .git
-rw-r--r-- 1 matt staff 98 Mar 6 13:40 .gitignore
drwxr-xr-x 16 matt staff 544 Apr 10 11:34 .idea
-rw-r--r-- 1 matt staff 1113 Feb 25 11:07 README
...
$ head -n 2 .idea/workspace.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
$ git rm .idea/workspace.xml
fatal: pathspec '.idea/workspace.xml' did not match any files
ATUALIZAR: As respostas de Nevik e Boris ajudaram muito. Percebi que estava confuso com várias coisas acontecendo, algumas das quais foram exacerbadas pelo IntelliJ IDEA (uma ferramenta que geralmente amo, BTW). Primeiro, a mensagem 'fatal: pathspec' do git rm é inútil e enganosa (na opinião deste usuário de baunilha). Segundo, eu tinha o arquivo em .gitignore, mas o havia removido antes de fazer minha pergunta. No entanto, ele também foi incluído no recurso Ignored Files da IDEA, independentemente do git, e exibido como tal no visualizador de projetos (em vez de não ser rastreado, como o status do git mostrou). Finalmente, eu tive o IDEA em execução enquanto eu estava experimentando, e parece que ele estava recriando o arquivo imediatamente após a minha operação. Portanto, minha opinião é que, se estou ficando confuso com o comportamento do Git, feche o IDEA e trabalhe só na linha de comando (e gitk) durante a depuração. E que os usuários de SO são impressionantes. Obrigado novamente!
fonte
rm
vez degit rm
?git clean -f .idea/workspace.xml
para remover o arquivo não rastreado.Respostas:
Seu arquivo
.idea/workspace.xml
não está sob controle de versão do git. Você ainda não o adicionou (verifique o status do git / arquivos não rastreados) ou o ignorou (usando os arquivos .gitignore ou .git / info / exclude)Você pode verificá-lo usando o seguinte comando git, que lista todos os arquivos ignorados:
fonte
Funciona. Você adiciona um novo arquivo usando o botão direito do mouse -> criar novo arquivo e exclui-o imediatamente depois disso. O arquivo iria para a lista de arquivos não rastreados.
fonte
rm
um diretório ou arquivo, ele não precisa adicioná-lo ao git se ele ainda não estiver listado no controle de versão do git.Sei que esse não é o problema do OP, mas encontrei o mesmo erro com uma base totalmente diferente, então só queria soltá-lo aqui caso outras pessoas tenham o mesmo. Isso é específico do Windows e suponho que não afeta os usuários do Linux.
Eu tinha um arquivo de documento do LibreOffice, chame-o
final report.odt
. Mais tarde mudei seu caso paraFinal Report.odt
. No Windows, isso nem conta como renomear.final report.odt
,Final Report.odt
,FiNaL RePoRt.oDt
São todos iguais. No Linux, tudo isso é distinto.Quando eu finalmente fui
git rm "Final Report.odt"
e recebi o erro "pathspec não encontrou nenhum arquivo". Somente quando eu uso a caixa original no momento em que o arquivo foi adicionado -git rm "final report.odt"
- funcionou.Lição aprendida: para mudar o caso, eu deveria ter feito:
Novamente, esse não foi o problema para o OP aqui; e não afetaria um usuário do Linux, como seus posts mostram claramente. Estou apenas incluindo-o para outras pessoas que podem ter esse problema no Windows git e tropeçar nessa questão.
fonte
Se o seu arquivo
idea/workspace.xml
for adicionado ao .gitignore (ou sua pasta pai), bastaadd
manualmente para o controle de versão do git. Além disso, você pode adicioná-lo usando o TortoiseGit. Após o próximo impulso, você verá que seu problema está resolvido.fonte
rm
um diretório ou arquivo, ele não precisa adicioná-lo ao git se ele ainda não estiver listado no controle de versão do git!No meu caso, havia algo completamente estranho que não sei ao certo qual foi a causa. Uma pasta inteira foi confirmada anteriormente. Eu pude vê-lo no Git, no Windows Explorer e no GitHub, mas todas as alterações feitas na própria pasta e nos arquivos nela foram ignoradas. Usando
git check-ignore
para ver o que estava ignorando e tentando removê-lo usandogit rm --cached
não teve impacto. As mudanças não puderam ser preparadas.Eu o corrigi por:
fonte
Pessoalmente, me deparei com uma mensagem de erro semelhante neste cenário:
Criei uma pasta que estava vazia ; portanto, naturalmente, enquanto estiver vazia, a digitação
git add *
não levará em consideração essa pasta vazia. Então, quando eu tentei corrergit rm -r *
ou simplesmente gitrm my_empty_folder/ -r,
, recebi a mensagem de erro.A solução é simplesmente removê-lo sem o git:
rm -r my_empty_folder/
ou criar um arquivo de dados dentro desta pasta e adicioná-lo (git add my_no_long_empty_folder
)fonte
Tais medidas me ajudaram:
fonte
Mova temporariamente .gitignore para .gitignore.bck
fonte