Acabei de fazer um git init
na raiz do meu novo projeto.
Então eu criei um .gitignore
arquivo.
Agora, quando eu digito git status
, o arquivo .gitignore aparece na lista de arquivos não rastreados. Por que é que?
git
version-control
dvcs
gitignore
Jacques René Mesrine
fonte
fonte
git add self && git commit -m "-1 for reverting existential depression" && git remote rm HEAD
how to gitignore .gitinore file
e a pergunta e a resposta aceita não estão realmente relacionadas ao título. O título pode ser melhorado.Respostas:
O
.gitignore
arquivo deve estar no seu repositório, portanto deve ser adicionado e confirmado, comogit status
sugere. Ele deve fazer parte da árvore do repositório, para que as alterações nele possam ser mescladas e assim por diante.Portanto, adicione-o ao seu repositório, ele não deve ser gitignored.
Se você realmente deseja, pode adicionar
.gitignore
ao.gitignore
arquivo se não desejar que ele seja confirmado. No entanto, nesse caso, provavelmente é melhor adicionar os.git/info/exclude
itens ignorados , um arquivo local de checkout especial que funciona exatamente como .gitignore, mas não aparece no "status git", pois está na.git
pasta.Consulte também https://help.github.com/articles/ignoring-files
fonte
Se você deseja armazenar a lista de arquivos ignorados fora da sua árvore do Git, use o arquivo .git / info / exclude . É aplicado apenas ao checkout do repo.
fonte
~/.gitignore
para que sejam ignorados em qualquer repositório em que trabalho.git update-index --assume-unchanged <file>
para interromper o rastreamento de alterações sem alterar seu repo. Isso é muito útil em grandes projetos compartilhados, nos quais você precisa fazer alterações locais, mas ninguém mais quer ver suas coisas comprometidas com o repositório. Veja blog.pagebakers.nlVocê pode realmente colocar uma linha
.gitignore
no seu.gitignore
arquivo. Isso faria com que o.gitignore
arquivo fosse ignorado pelo git. Na verdade, não acho que seja uma boa ideia. Eu acho que o arquivo ignorar deve ser controlado e rastreado por versão. Eu só estou colocando isso lá fora para ser completo.fonte
git rm --cached .gitignore
Você também pode ter um
.gitignore
arquivo git de usuário global que será aplicado automaticamente a todos os seus repositórios. Isso é útil para IDE e arquivos de edição (por exemplo,swp
e*~
arquivos para o Vim). Altere os locais do diretório para se adequar ao seu sistema operacional.Adicione ao seu
~/.gitconfig
arquivo:Crie um
~/.gitignore
arquivo com padrões de arquivos a serem ignorados.Salve seus arquivos de ponto em outro repositório para ter um backup (opcional).
Sempre que você copiar, iniciar ou clonar um repositório, seu arquivo gitignore global também será usado.
fonte
Se alguém já adicionou um
.gitignore
ao seu repositório, mas você deseja fazer algumas alterações e ignorá-las, faça o seguinte:git update-index --assume-unchanged .gitignore
Fonte .
fonte
.git/info/excludes
.--assume-unchanged
também exista uma razão . Por que um é melhor que o outro?.git/info/excludes
não funciona se o arquivo já estiver rastreado.Depois de adicionar
.gitignore
e confirmar o arquivo, ele não será mais exibido na lista "arquivos não rastreados".fonte
Apenas coloque alguém que tenha a mesma dor que tivemos. Queríamos excluir um arquivo que já havia sido confirmado.
Esta postagem foi muito mais útil: trabalhar com .git / info / exclude tarde demais
Especificamente, o que você precisa para ignorar um arquivo é realmente usar o comando git remove Consulte git rm ( http://www.kernel.org/pub/software/scm/git/docs/git-rm.html )
você testa indo
git rm --dry-run *.log
(se você quiser excluir todos os arquivos de log)
isso produzirá o que seria excluído se você o executasse.
então
você executa indo
git rm *.log
(ou o caminho / expressão do nome de arquivo que você deseja)
Em seguida, adicione uma
*.log
linha ao seu.gitignore
arquivo.fonte
git status
se aparecerem no futuro.É claro que o arquivo .gitignore está aparecendo no status, porque não é rastreado, e o git o vê como um novo arquivo saboroso para comer!
No entanto, como .gitignore é um arquivo não rastreado, é um candidato a ser ignorado pelo git quando você o coloca no .gitignore!
Portanto, a resposta é simples: basta adicionar a linha:
para o seu arquivo .gitignore!
E, ao contrário da resposta de agosto, eu diria que não é que o arquivo .gitignore deve estar em seu repositório. Acontece que pode ser, o que geralmente é conveniente. E provavelmente é verdade que esse é o motivo pelo qual o .gitignore foi criado como uma alternativa ao .git / info / exclude, que não tem a opção de ser rastreado pelo repositório. De qualquer forma, a forma como você usa o arquivo .gitignore depende totalmente de você.
Para referência, consulte a página de manual do gitignore (5) no kernel.org.
fonte
A idéia é colocar arquivos específicos do seu projeto no
.gitignore
arquivo e (como já mencionado) adicioná-lo ao repositório. Por exemplo.pyc
e.o
arquivos, registra que o testsuite cria, algumas luminárias etc.Para arquivos criados por sua própria instalação, mas que não necessariamente aparecerão para todos os usuários (como
.swp
arquivos se você usar vim, diretórios ocultos ocultos e similares), você deve usar.git/info/exclude
(como já mencionado).fonte
Primeiro de tudo, como muitos outros já disseram, você
.gitignore
deve ser rastreado pelo Git (e, portanto, não deve ser ignorado). Deixe-me explicar o porquê.(TL; DR: confirme o
.gitignore
arquivo e use um global.gitignore
para ignorar arquivos criados pelo seu IDE ou sistema operacional)O Git é, como você provavelmente já sabe, um sistema de controle de versão distribuído . Isso significa que ele permite alternar entre versões diferentes (mesmo que o desenvolvimento tenha divergido em ramos diferentes) e também permite que vários desenvolvedores trabalhem no mesmo projeto.
Embora o rastreamento do seu
.gitignore
também tenha benefícios quando você alterna entre os instantâneos, o motivo mais importante para confirmar é que você deseja compartilhar o arquivo com outros desenvolvedores que estão trabalhando no mesmo projeto. Ao enviar o arquivo para o Git, outros colaboradores o obterão automaticamente.gitignore
quando clonarem o repositório, para que não precisem se preocupar em confirmar acidentalmente um arquivo que não deve ser confirmado (como arquivos de log, diretórios de cache, credenciais de banco de dados). etc.). E se, em algum momento, o projeto.gitignore
for atualizado, eles poderão simplesmente executar essas alterações em vez de precisar editar o arquivo manualmente.Obviamente, haverá alguns arquivos e pastas que você deseja ignorar, mas são específicos para você e não se aplicam a outros desenvolvedores. No entanto, esses não devem estar no projeto
.gitignore
. Existem outros dois lugares onde você pode ignorar arquivos e pastas:.gitignore
. O benefício é que isso.gitignore
é aplicado a todos os repositórios do seu computador, para que você não precise repetir isso para todos os repositórios. E não é compartilhado com outros desenvolvedores, pois eles podem estar usando um sistema operacional e / ou IDE diferente..gitignore
, nem ao global.gitignore
, podem ser ignorados usando exclusões explícitas do repositórioyour_project_directory/.git/info/exclude
. Este arquivo não será compartilhado com outros desenvolvedores e é específico para esse repositório únicofonte
.gitignore
.gitignore
funciona apenas para ignorar arquivos que ainda não estão sendo rastreados pelo Git. Adicionar um arquivo já rastreado.gitignore
não impedirá que você cometa alterações nesse arquivo. Mesmo se isso fosse possível, como você confirmaria a alteração.gitignore
quando ela instruir o Git a se ignorar?Cuidado com o seguinte "problema" Às vezes, você deseja adicionar diretórios, mas nenhum arquivo dentro desses diretórios. A solução simples é criar um .gitignore com o seguinte conteúdo:
Isso funciona bem até que você perceba que o diretório não foi adicionado (conforme o esperado no seu repositório. A razão disso é que o .gitignore também será ignorado e, portanto, o diretório estará vazio. Portanto, você deve fazer algo assim :
fonte
Isso parece funcionar apenas no diretório atual
Git
para ignorar todos os arquivos do repositório.atualize este arquivo
com seu curinga ou nome do arquivo
fonte
Se você já fez check-in .gitignore e deseja ignorar as modificações, confira esta resposta :
fonte
No meu caso, quero excluir um arquivo existente. Apenas modificar .gitignore não funciona. Eu segui estes passos:
Dessa maneira, limpei do cache o arquivo que desejava excluir e depois o adicionei ao .gitignore .
fonte
Navegue para o diretório base do seu git repo e execute o seguinte comando:
Todos os arquivos de ponto serão ignorados, incluindo o irritante .DS_Store se você estiver em um Mac.
fonte
É bem possível que um usuário final queira que o Git ignore o arquivo ".gitignore" simplesmente porque as pastas específicas do IDE criadas pelo Eclipse provavelmente não são iguais ao NetBeans ou outro IDE. Portanto, para manter o IDE do código-fonte antagônico, facilita a vida ter um git personalizado ignorado que não seja compartilhado com toda a equipe, pois os desenvolvedores individuais podem estar usando IDEs diferentes.
fonte
.gitignore
é sobre ignorar outros arquivos. git é sobre arquivos, então isso é sobre ignorar arquivos. No entanto, como o git trabalha com arquivos, esse arquivo precisa estar lá como o mecanismo para listar os outros nomes de arquivos.Se fosse chamado
.the_list_of_ignored_files
, poderia ser um pouco mais óbvio.Uma analogia é uma lista de itens de tarefas que você NÃO deseja executar. A menos que você os liste em algum lugar, existe algum tipo de lista de tarefas que você não saberá sobre eles.
fonte
Eu acho que há situações em que ignorar o .gitignore é muito útil. Por exemplo, quando você tem várias equipes ou uma equipe grande trabalhando na mesma base de código. Nesse caso, você precisa ter certas convenções, uma delas é sobre o que é ignorado no repositório git. Geralmente, trata-se de ignorar arquivos e diretórios criados pelo IDE ou OS, alguns logs gerados etc.
No entanto, existe uma força que tende a introduzir alterações não convencionais no
.gitignore
arquivo. o.gitignore
arquivo pode ser alterado ainda mais por pessoa irresponsável, por engano, por uma ferramenta usada ou em outro caso.Para ter uma força contrária a isso, podemos fazer o seguinte:
.gitignore
arquivo é " lacrado " dessa maneira.O arquivo " selado "
.gitignore
pode ser alterado, apenas localmente, sem propagar esses trocadores para outros membros da (s) equipe (s). No entanto, se uma mudança for amplamente aceita em toda a equipe, é possível "destravá-la", altere-a e "selar" novamente. Isso não pode ser feito por engano, apenas intencionalmente.Infelizmente, você não pode estar 100% protegido da estupidez, mas dessa maneira fez tudo o que pôde para impedir que coisas estúpidas acontecessem.
Se você tem uma equipe relativamente pequena com profissionais muito bons, isso não seria importante, mas mesmo esses caras gostariam de ter uma coisa a menos para se preocupar.
O uso
.git/info/exclude
é legal quando você não pode fazer nada sobre as configurações de infraestrutura, apenas cobrindo seu próprio ** para não cometer um erro.Do ponto de vista do que é certo e do errado, estou votando por ter a entrada .gitignore dentro do
.gitignore
arquivo, dando a todos a liberdade de fazer localmente o que quiserem, mas não invadindo os outros.fonte
Eu descobri que o melhor lugar para configurar um ignorar para os
.DS_Store
arquivos traquinas é o.git/info/exclude
arquivo.O IntelliJ parece fazer isso automaticamente quando você configura um repositório git nele.
fonte