Pergunta

Eu criei um arquivo .gitignore na pasta com a pasta .git, mas ainda recebo os arquivos que estou tentando ignorar ao fazer um rescan do repositório.

Este é o conteúdo do arquivo.

# Ignored files
*.suo 
*.user 
bin 
obj 
*.pdb 
*.cache 
*_svn 
*.svn 
*.suo 
*.user 
*.build-res 
TestResults 
_ReSharper*

O que estou fazendo errado? Onde o arquivo deve estar localizado?

Foi útil?

Solução

Você precisa garantir que o arquivo que ainda esteja vendo não esteja no momento em que atualmente não estão comprometidos ou encenados.

Se você os remover (git rm ou git rm --cached) e, em seguida, adicione -os como arquivo privado, eles serão ignorados.

Outras dicas

Seu arquivo parece bom. Apenas certifique -se de não ter nenhum espaço em branco no início de cada linha, levei 4 horas para descobrir por que meu .gitignore não estava funcionando corretamente; O motivo foi obviamente um problema de corte de corte, onde eu tinha uma linha vertical de espaços no início do arquivo.

Você deveria ter cuidado com git commit -a Antes de garantir que seu arquivo .gitignore realmente limpe tudo o que você não deseja. Marque cada arquivo (ou use curingas) com git add *.cpp *.h ou - como eu prefiro - desenvolva seu .gitignore à medida que você avança e sempre verifique com git status antes de se comprometer.

Se você quiser verificar se o seu .gitignore realmente funciona, tentar

git ls-files --others -i --exclude-standard

Isso deve listar todos os arquivos que você está ignorando atualmente.

Para limpar os arquivos que você já adicionou (provavelmente usando git add ., um erro que todos cometemos no começo =]) você pode fazer como @VONC disse: ou correr

git rm <filename>

ou

git rm --cached <filename>

Outra opção de limpar todos os arquivos que você adicionou sem querer é limpar totalmente seu repositório e depois re-adquirir tudo novamente. Se você quiser limpar tudo na área de estadiamento, você pode correr

git --rm cached .

Mas lembre -se de não correr git add . Até você se certificar de que o status Git lista apenas os arquivos que você realmente deseja no repositório.

Outra coisa muito útil com o Git é que ele não precisa de caminhos para os arquivos ao usar curingas. Se você listar seus arquivos ignorados e ver que deseja remover tudo *.suo e *.log arquivos, apenas execute

git rm --cached *.suo *.log

E o Git cuida de encontrar todos os arquivos em seu repositório que corresponda a essa assinatura, não importa onde estejam na árvore.

Tentei várias maneiras de fazer isso funcionar e finalmente foi bem simples:

Você deve cometer o .gitignore primeiro!

Além disso, se você usar a ferramenta TortoiseGit - GITEX, existe uma opção para editar arquivos ignorados.

Você está localizando corretamente. .gitignore deve estar na mesma pasta, onde está localizado .git. O arquivo dentro também parece correto. No entanto, eu não tenho uma linha de comentários no topo ..

Quando eu olho para isso, acho que você esqueceu de cometer seu arquivo ignorar.

Nenhuma das soluções em cache -RM funcionou para mim. O arquivo precisa ser codificado como ASCII/ANSI. Também mudei as terminações da linha, mas isso por si só não consertou. Não consigo encontrar o URL que tinha essas instruções (desculpe, pôster original!) Mas isso funcionou para mim:

  1. Instale o Notepad ++ se você ainda não o tiver. O TextPad também deve funcionar, mas eu uso o bloco de notas ++.
  2. Abra o seu .gitignore com o bloco de notas ++.
  3. Clique na visualização | Mostrar símbolo | Mostre todos os personagens. Você provavelmente verá Cr LF no final de cada linha.
  4. Faça uma pesquisa e substitua (Ctrl+H), certificando -se de que estendido seja verificado (canto da mão Let Blut Let). Procure r n e substitua por n. Você verá toda a mudança de Cr LF para apenas LF.
  5. Agora clique na codificação | Codificar em ANSI.
  6. Salve o arquivo e saia.

A partir do prompt de comando no Windows ou no prompt de comando git, o que você quiser, quando você fizer status git, ele não deve mostrar arquivos no .gitignore.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top