Na raiz do meu projeto, tenho uma foo
pasta. Dentro da foo
pasta eu tenho uma bar
pasta. Gostaria de ignorar todas as alterações em todos os arquivos dentro da minha bar
pasta. Eu tenho isso no meu gitignore
:
/foo/bar
A pasta está marcada: existe e possui os arquivos a serem ignorados. gitignore
é commit
ted. No entanto, tenho um arquivo em que faço uma moificação e está dentro da minha bar
pasta. Quando digito
git status
dentro do meu git bash
eu vejo o arquivo que deveria ter sido ignorado. Qual poderia ser o motivo e como posso ignorar com êxito todos os arquivos dentro da minha pasta da barra?
Observe que os arquivos foram ignorados anteriormente com a mesma linha, mas tive que removê-la temporariamente para commit
algo no servidor. Após o commit
, coloquei de volta a linha no gitignore
. Este foi um tempo atrás, mas agora tenho observado que os arquivos estarão no git status
. Eu esperaria poder modificar os arquivos ignorados sem que eles aparecessem no git status
.
git add -f ignored-file
adicionará um arquivo mesmo que esteja em sua ignorância.git status foo/bar/file-that-should-be-ignored
dá?git log foo/bar/file-that-should-be-ignored
. Se não deveria fazer parte do repositório, você deve removê-logit rm --cached foo/bar/file-that-should-be-ignored
e confirmar como sugerido por Reck abaixo (embora eu o faça apenas no arquivo, não na pasta inteira). Isso (a) removerá o arquivo do Git, (b) manterá o arquivo na sua cópia local e (c) fará com que o arquivo seja excluído quando outrosfetch
oupull
o novo commit.Respostas:
Suponho que esta pasta tenha sido verificada no git antes?
Execute
git rm -r --cached <folder>
e verifique novamente.fonte
git update-index --assume-unchanged <folder>
possivelmente?Para mim, a resposta aceita fazia parte da solução, não a solução inteira. Talvez os outros passos que estou prestes a publicar sejam óbvios, mas eu os perdi primeiro. Aqui estão as etapas que eu tomei para garantir que meu
.gitignore
arquivo ignorasse a pasta que eu queria que ele ignorasse:git rm -r --cached .
(que remove tudo do índice git para atualizar seu repositório git)git add .
(para adicionar tudo de volta ao repositório)git commit -m ".gitignore Fixed"
Você pode encontrar o link para o artigo de onde encontrei a solução aqui .
fonte
Eu estava tendo esse problema e percebi que o git estava realmente ignorando os arquivos / pastas corretamente, mas meu editor de código (Visual Studio Code) estava apenas com bugs e não os "acinzentou" corretamente na barra lateral da interface do usuário. Eu reiniciei o VSCode e eles estavam acinzentados conforme o esperado.
fonte
Como complemento à resposta aceita
Quando faço isso, o terminal mostra vários
rm
arquivos nesse diretório. Então, para evitar outro commit que possa afetar desnecessariamente o controle remoto, eu fiz:Depois disso, ele não disse nada para confirmar e quando eu modifico os arquivos dentro
/foo/bar/
e faço umgit status
que ainda recebonothing to commit
.fonte