Respostas:
A vantagem .gitignore
é que ele pode ser verificado no próprio repositório, ao contrário .git/info/exclude
. Outra vantagem é que você pode ter vários .gitignore
arquivos, um dentro de cada diretório / subdiretório para regras de ignição específicas do diretório, ao contrário .git/info/exclude
.
Portanto, .gitignore
está disponível em todos os clones do repositório. Portanto, em grandes equipes de todas as pessoas estão ignorando o mesmo tipo de arquivos de exemplo *.db
, *.log
. E você pode ter regras de ignição mais específicas por causa de várias .gitignore
.
.git/info/exclude
está disponível apenas para clones individuais, portanto, o que uma pessoa ignora em seu clone não está disponível no clone de outra pessoa. Por exemplo, se alguém usa Eclipse
para desenvolvimento, pode fazer sentido para o desenvolvedor adicionar .build
pasta, .git/info/exclude
porque outros desenvolvedores podem não estar usando o Eclipse.
Em geral, as regras de arquivos / ignorar que devem ser universalmente ignoradas devem entrar .gitignore
e, caso contrário, os arquivos que você deseja ignorar apenas no seu clone local devem entrar.git/info/exclude
~/.gitignore
no seu comentário acima. Meu entendimento é que as regras de ignorar podem estar em três níveis - $PROJECT/.git/info/exclude
para regras de ignorar específicas do (projeto, usuário), $PROJECT/<any number of directories>/.gitignore
que são para regras de ignoradas específicas do projeto em qualquer usuário em qualquer lugar (quando check-in), ~/.gitignore
para regras de ignoradas específicas do usuário para qualquer projeto desse usuário nessa máquina. Com base no objetivo, você escolhe o local para entrar.
git rm --cached <path-name>
o excluirá do repositório, mas o manterá localmente. git update-index --skip-worktree <path-name>
ignorará as alterações no arquivo, mas o manterá no repositório. Por curiosidade: Por que você deseja que o arquivo sln seja excluído? É uma parte importante de uma solução .Net, certo?
Pesquisado: três maneiras de excluir arquivos
.gitignore
aplica-se a todos os clones deste repositório (com versão, todos o terão),.git/info/exclude
aplica-se apenas à sua cópia local deste repositório (local, não compartilhada com outras pessoas),~/.gitignore
aplica-se a todos os repositórios no seu computador (local, não compartilhado com outras pessoas).3.
requer realmente definir uma configuração no seu computador:
git config --global core.excludesfile '~/.gitignore'
.git/info/excludes
, quando deveria .git/info/exclude
, conforme confirmado pela documentação à qual ele vincula.
Apenas para oferecer nossa experiência (no mundo real): começamos a usar .git / info / exclude quando tínhamos que personalizar alguns arquivos de configuração em cada ambiente de desenvolvimento, mas ainda assim desejávamos que a fonte fosse mantida no repositório e disponível para outros desenvolvedores.
Dessa forma, os arquivos locais, uma vez clonados e modificados, podem ser excluídos das confirmações sem afetar os arquivos originais no repositório, mas também não necessariamente são ignorados no repositório.
Use .gitignore
para ignorar regras específicas do projeto . Use exclude
ou um arquivo de ignição global para ignorar regras específicas ao seu ambiente .
Por exemplo, meus arquivos de ignorância global ignoram os arquivos temporários gerados por qualquer editor que eu esteja usando - essa regra é específica para o meu ambiente e pode ser diferente para outro desenvolvedor no mesmo projeto (talvez eles usem um editor diferente). OTOH, meus .gitignore
arquivos de projeto ignoram coisas como chaves de API e constroem artefatos - são para o projeto e devem ser os mesmos para todos no projeto.
Isso ajuda?