Estou tendo o mesmo problema que o OP nesta postagem, mas não entendo a resposta marcada como correta (não vejo como isso explica como corrigir a situação)
Eu faço isso e recebo este erro:
$ git update-index --assume-unchanged web.config
fatal: Unable to mark file web.config
O arquivo É adicionado ao repositório
NÃO está em
.git/info/exclude
Ele NÃO está dentro
.gitignore
(estava, mas eu o removi e forçou o web.config a ser adicionado usandogit add -f web.config
, confirmado e enviado essas alterações ao repositório)Quando eu faço o Git ls-files -o NÃO está lá
Então, o que posso fazer para corrigir?
git ls-files -o
. Nesse caso, não está no repositório.Respostas:
Eu estava tendo o mesmo problema que você e segui os mesmos quatro passos que você indicou acima e teve os mesmos resultados. Isso incluiu o fato de que meu arquivo foi listado durante a execução
git ls-files -o
. No entanto, no meu caso, também tentei executargit update-index --assume-unchanged
um arquivo que não estava listado durante a execuçãols-files -o
e ainda recebi o mesmo erro "fatal: Unable to mark file
".Eu pensei que talvez fosse um bug e baixei a versão mais recente do git, mas isso não ajudou.
O que finalmente percebi é que esse comando diferencia maiúsculas de minúsculas! Isso inclui o caminho completo e o nome do arquivo. Depois de atualizar o caminho para o diretório para que o caminho completo fosse especificado com a caixa apropriada, o comando foi executado corretamente.
Observe que isso foi feito com o Git for Windows, portanto, os resultados podem variar com outras plataformas.
fonte
Eu estava tendo o mesmo problema em um Mac. A distinção entre maiúsculas e minúsculas não foi um problema para mim - o problema era que eu precisava redefinir meu git primeiro:
Problema:
Solução:
fonte
--skip-worktree
). Livre-me das alterações locais executando,git restore .
mas ignorar ainda deu o erro. Finalmente, tentei excluir o arquivo. Surpreendentemente, o git não disse que houve uma mudança. Claramente, algo estranho aconteceu desde que o git definitivamente o rastreava e eu definitivamente o excluí e definitivamente não dizia que isso era uma mudança.No meu caso, a árvore que eu estava marcando era um diretório, e não um arquivo, como no seu caso, e estava faltando a barra após o nome.
Incorreta -
Correto -
Observe a barra (/) no final.
fonte
fatal: Não foi possível marcar a localização do arquivo / el-GR.js
O que você pode fazer é:
$git update-index --assume-unchanged <file name>
Isso me ajudou! :)
fonte
$ git update-index --assume-unchanged ./.idea/vcs.xml fatal: Unable to mark file .idea/vcs.xml
$ cd .idea
git update-index --assume-unchanged .
Trabalhou, obrigado!Se o seu caminho tiver espaços, você poderá receber esse erro mesmo se tiver a caixa correta.
Isso resulta no erro "fatal":
Para corrigi-lo, basta adicionar aspas ao redor do caminho.
fonte
Meu problema foi que tentei o comando com um curinga *, assumindo que seria recursivo, mas não foi.
Então o que eu fiz foi
executando
funcionou para mim na época e não resultou em OPs e meu problema.
fonte
Eu tive esse problema quando estava tentando rastrear arquivos * .orig.
Isto é o que eu fiz para rastreá-los:
se isso não funcionar:
fonte
Verifique se o arquivo foi adicionado ao git repo, caso contrário, adicione o arquivo no git repo e tente se ele funcionará.
fonte
--assume-unchanged
trata-se de sistemas de arquivos lentos, e os usuários prometem que o Git não precisa verificar esse arquivo, pois o Git pode assumir sua alteração. Mas algum comando ainda verifica e produz 'surpresa'!Não use em arquivos que mudam.
Desculpe por ser o portador dessa notícia (tenho um patch em andamento para alterar essa documentação).
fonte
git rm --cached filename
irá apagar o arquivo quando os outros puxarNo meu caso, tentei usar qualquer um dos métodos acima, mas sem sorte.
Após muitas tentativas, pensei em adicionar meu arquivo para indexar.
Git recusou essa ação, mas ele me aconselhou a fazê-la à força.
E isso funcionou para mim.
fonte
Verifique se você tem "web.config" marcado.
Caso contrário, você receberá esta mensagem de erro.
fonte
Talvez útil para alguém. Eu tinha o mesmo problema e não havia nenhum problema de sintaxe, nenhum nome com espaços, nenhum problema de caminho e o comando git reset não funcionou. Eu estava saindo de uma pasta dentro do apache www e o serviço apache foi interrompido. Iniciado novamente o serviço apache e o erro se foi
fonte
Um erro comum ao usar esse comando é tentar assumir o arquivo não rastreado ou o arquivo ignorado pelo git.
Certifique-se primeiro de que o arquivo seja rastreado executando
Se ele não estiver mostrando seu arquivo, adicione-o primeiro:
Se isso mostrar seu arquivo, ou você já o adicionou ao git, poderá executar os comandos git assume normalmente:
ou para pastas
você pode verificar se seu arquivo é considerado ignorado executando
O caractere S representa arquivos ignorados.
fonte
Para todos os futuros visitantes. Nenhuma das opções acima resolveu meu problema. O que eu percebi é que o
.gitignore
arquivo deve ser colocado no diretório certo. No meu caso, depois que mudei.gitignore
para o diretório raiz do aplicativo, o problema foi resolvido.fonte
Verifique se o arquivo a ser marcado existe e se escreve corretamente, especialmente o caminho e o separador. Os separadores de arquivos do sistema windows e linux estão em direções diferentes.
fonte
Descobri que, às vezes, isso não funciona porque você já confirmou o arquivo no seu .gitignore e fez um push ou pull. Você só precisa fazer o push e seu arquivo deve ser ignorado nas confirmações subsequentes, mesmo quando você modifica o arquivo localmente.
fonte
Eu tive o mesmo problema com o cygwin no Windows. Fornecendo o caminho completo do arquivo
fonte