Você deve confirmar .gitignore nos repositórios do Git?

497

Você acha que é uma boa prática comprometer .gitignore em um repositório Git?

Algumas pessoas não gostam, mas acho que é bom, pois você pode acompanhar o histórico do arquivo. Não é?

Howard
fonte
38
se não você não, coloque .gitignore em .gitignore ...
charlesb
Possível duplicata de Ignorar o arquivo .gitignore em si #
Michael Freidgeim 31/08/16

Respostas:

489

Normalmente, sim, .gitignoreé útil para todos que desejam trabalhar com o repositório. Ocasionalmente, você deseja ignorar mais coisas particulares (talvez você crie com frequência LOGou algo assim. Nesses casos, provavelmente não deseja forçar isso a mais ninguém).

Bruce Stephens
fonte
137
+1 As "coisas particulares" podem ser mencionadas nos arquivos $GIT_DIR/info/excludeou, ~/.gitconfigconforme apropriado.
precisa saber é o seguinte
5
Se você já possui um arquivo registrado e deseja ignorá-lo, o Git não o ignorará se você adicionar uma regra posteriormente. Nesses casos, você deve rastrear o arquivo primeiro, executando o seguinte comando em seu terminal:git rm --cached FILENAME
eli-bd
133

Você normalmente fazer cometer .gitignore. Na verdade, eu vou pessoalmente ao ponto de garantir que meu índice esteja sempre limpo quando não estou trabalhando em algo. (não git statusdeve mostrar nada.)

Há casos em que você deseja ignorar coisas que realmente não são específicas do projeto. Por exemplo, seu editor de texto pode criar *~arquivos de backup automático ou outro exemplo seria os .DS_Storearquivos criados pelo OS X.

Eu diria, se outros estão reclamando sobre essas regras que atrapalham seu .gitignore , deixe-as de fora e coloque-as em um arquivo de exclusão global.

Por padrão, esse arquivo reside em $XDG_CONFIG_HOME/git/ignore(o padrão é ~/.config/git/ignore), mas esse local pode ser alterado definindo a core.excludesfileopção Por exemplo:

git config --global core.excludesfile ~/.gitignore

Basta criar e editar o arquivo excludes global para o conteúdo do seu coração; será aplicado a todos os repositórios git em que você trabalha nessa máquina.

Stéphan Kochen
fonte
14
Você sempre pode adicionar # some commentlinhas ao.gitignore arquivo para explicar por que está ignorando alguma coisa. Comentando cada linha é um pouco de exagero, mas eu tenho têm seções rotulado # IDE (Eclipse), # OS (Mac OS X)e # Generated (Perl). Dessa forma, se alguém quiser usar um SO ou IDE diferente, poderá adicionar uma seção e todos nós podemos compartilhar.
Stuart R. Jefferys
9
polegares para "Eu, pessoalmente, me certifico de que meu índice esteja sempre limpo quando não estou trabalhando em algo. (o status git não deve mostrar nada.)"
SGhosh
4
Nb. com Git moderno o valor padrão para core.excludesfileseja ~/.config/git/ignore, em conformidade com XDG Base de Dados de Especificação Diretório
Jakub Narębski
1
+1 para global .gitignore - Extremamente benéfico quando as pessoas com quem você trabalha discordam sobre o conteúdo dos .gitignorearquivos enviados ou se devem ser enviados, e todos nós usamos vários ambientes de desenvolvimento diferentes que geram tipos diferentes de ruído.
Krease
1
davidwalsh.name/global-gitignore mais algumas informações sobre o global de ignorados
Frode Akselsen
11

Coloquei commit .gitignore, que é uma cortesia para outros que podem criar meu projeto de que os seguintes arquivos são derivados e devem ser ignorados.

Eu costumo fazer um híbrido. Eu gosto de fazer o makefile gerar o arquivo .gitignore, pois o makefile conhecerá todos os arquivos associados ao projeto - derivados ou não. Depois, faça o check-in de um projeto de nível superior .gitignore, que ignoraria os arquivos .gitignore gerados criados pelo makefile para os vários subdiretórios.

Portanto, no meu projeto, eu posso ter um subdiretório bin com todos os executáveis ​​criados. Então, meu makefile gera um .gitignore para esse diretório bin. E no diretório superior .gitignore que lista bin / .gitignore. O primeiro é o que eu faço check-in.

Bitdiot
fonte
0

A confirmação do .gitignore pode ser muito útil, mas você deseja garantir que não o modifique demais posteriormente, especialmente se você alternar regularmente entre as ramificações. Se você conseguir casos em que os arquivos são ignorados em uma ramificação e não na outra, forçando-o a excluir ou renomear manualmente os arquivos no diretório de trabalho, porque houve uma falha no check-out, pois substituiria um arquivo não rastreado.

Portanto, sim, confirme seu .gitignore, mas não antes de ter certeza de que não mudará muito depois disso.

user3464496
fonte
-6

É uma boa prática, .gitignore pelo menos, criar seus produtos (programas, * .o, etc.).

Jakub Narębski
fonte
11
Isso não responder à pergunta: deve .gitignore -se ser " .gitignore'd"?
Charles Wood
6
Preste atenção, que não foi a questão, e isso faz responder o que foi perguntado: "é [ele] uma boa prática para cometer .gitignore em um repositório git?".
Papercowboy #
5
@ Cayuu Eu acredito que a resposta diz "é uma boa prática .Gitignore" xyz, não vejo como ele responde à pergunta. a questão é se .gitignore deve ser controlado por versão ou não.
Nightograph