Eu tenho $HOME
sob git. A primeira linha do meu arquivo .gitignore é
/*
O resto são padrões para não ignorar usando o modificador !
. Esta primeira linha significa que o padrão é ignorar todos os arquivos no meu diretório pessoal. Esses arquivos que eu quero para o controle de versão vão para .gitignore
assim:
!/.gitignore
!/.profile
[...]
Um padrão mais complicado que eu tenho é:
!/.ssh
/.ssh/*
!/.ssh/config
Ou seja, eu quero apenas a versão .ssh/config
- não quero que minhas chaves e outros arquivos em .ssh entrem no git. O acima é como eu consegui isso.
Editar: Adicionadas barras ao início de todos os caminhos. Isso faz com que os padrões de ignorar correspondam do topo do repositório ($ HOME) em vez de em qualquer lugar. Por exemplo, se !lib/
fosse um padrão (não ignore tudo no diretório lib) e você incluísse um arquivo .gitignore
, anteriormente, o padrão ( !.gitignore
) estaria correspondendo a isso. Com a barra inicial ( !/.gitignore
), ele corresponderá apenas a .gitignore
no meu diretório inicial e não em nenhum subdiretório.
Eu não vi um caso em que isso faz uma diferença prática com minha lista de ignorados, mas parece-me ser tecnicamente mais preciso.