No processo de usar o Git, gostamos de ter arquivos como logs, arquivos temporários, arquivos intermediários compilados, etc., que não sejam submetidos ao repositório de código, então precisamos definir regras correspondentes de ignorar o commit desses arquivos.
O git ignora o método de commits de arquivos
Existem três maneiras de ignorar arquivos que você não quer que commitem no Git.
Defina o arquivo .gitignore no seu projeto Git
Isso é gerenciado definindo um arquivo .gitignore em uma pasta do projeto, onde as regras correspondentes de ignore são definidasPasta atualO comportamento do commit Git do arquivo sob o .gitignore podem ser submetidos a repositórios públicos, o que significa que todos os desenvolvedores do projeto compartilham um conjunto definido de regras de ignorar. No arquivo .gitingore, especifique uma regra de ignorar em cada linha, seguindo a sintaxe correspondente. Por exemplo:
Especifique os arquivos de exclusão nas configurações do projeto Git
Isso é apenas uma especificação temporária do comportamento do projeto, que exige editar o arquivo .git/info/exclude no projeto atual e então escrever o arquivo para o qual o commit precisa ser ignorado. Note que o diretório raiz dos arquivos ignorados especificados dessa forma é a raiz do projeto.
Um arquivo .gitignore que define o Git global
Além de poder definir arquivos .gitignore no seu projeto, você também pode configurar um arquivo global git .gitignore para gerenciar o comportamento de todos os projetos gitignore. Essa abordagem não é compartilhada entre diferentes desenvolvedores de projetos, e é um comportamento no nível da aplicação Git além do projeto.
Isso também requer criar um arquivo .gitignore correspondente, que pode ser colocado em qualquer lugar. Depois, configure o Git com o seguinte comando:
Git ignora regras
Para regras detalhadas de ignorância, consulte a documentação oficial em inglês no endereço:O login do hiperlink está visível.
Git ignora prioridade de regras
No arquivo .gitingore, especifique uma regra de ignorar para cada linha, e o Git verifica múltiplas fontes ao ignorar regras, com a seguinte prioridade (de maior para menor):
- Leia as regras de ignorar disponíveis na linha de comando
- As regras definidas pelo diretório atual
- As regras definidas pelo diretório pai são recursivas
- $GIT_DIR/info/exclude
- core.excludesfile
Git ignora sintaxe de correspondência de regras
No arquivo .gitignore, a sintaxe da regra ignore de cada linha é a seguinte:
- Espaços que não correspondem a arquivos arbitrários podem ser usados como separadores e podem ser escapados com barras inversas
- # O comentário de identificação de arquivo no início pode ser evitado usando uma barra inversa
- ! A identificação do esquema no início é negativa, e o arquivo será incluído novamente; se o diretório pai do arquivo for excluído, use ! não será incluído novamente. A fuga pode ser feita usando uma barra inversa
- / 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
- / 开始的模式匹配项目跟目录
- Se um padrão não contém barra, ele corresponde ao conteúdo em relação ao caminho atual do arquivo .gitignore, e se o padrão não estiver no arquivo .gitignore, em relação à raiz do projeto
- ** Catálogos multinível correspondentes podem ser usados no início, meio e final
- ? Correspondência universal de caracteres individuais
- [ ] Lista universal de correspondência de personagens individuais
Exemplos comuns de correspondência:
- bin/: ignora a pasta bin no caminho atual, tudo que está nessa pasta é ignorado, não o arquivo bin
- /bin: 忽略根目录下的bin文件
- /*.c: 忽略 cat.c,不忽略 build/cat.c
- debug/*.obj: Ignore debug/io.obj, não ignore debug/comum/io.obj e ferramentas/debug/io.obj
- **/foo: ignorar /foo, a/foo, a/b/foo, etc
- A/**/B: Ignorar A/B, A/X/B, A/X/Y/B, ETC
- !/bin/run.sh: Não ignore run.sh arquivos no diretório bin
- *.log: Ignore todos os arquivos .log
- config.php: 忽略当前路径的 config.php 文件
.gitignore não entra em vigor
.gitignore só pode ignorar arquivos que não são rastreados originalmente, e modificar .gitignore é ineficaz se alguns arquivos já estiverem incluídos na versionação.
A solução alternativa é deletar o cache local (mudá-lo para o estado não rastreado) antes de comprometer:
(Fim)
|