W3docs

git config

Saiba como usar o git config para definir identidade, editor, cores e aliases. Conheça os níveis de configuração e como ler e escrever valores.

O que é git config

O comando git config é um utilitário de linha de comando para ler e escrever as variáveis de configuração do Git — as configurações que controlam como o Git se comporta e é exibido. Essas variáveis definem sua identidade (nome e e-mail), seu editor de texto preferido, cores de saída, atalhos de comandos (aliases) e dezenas de outros comportamentos.

Esta página aborda os níveis de configuração e seus arquivos, como ler e escrever valores, definir seu editor e cores, criar aliases e ajustar o tratamento de espaços em branco. Definir user.name e user.email com git config é geralmente a primeira coisa que você faz após instalar o Git.

gitconfig

Os níveis e arquivos do git config

O comando git config aceita argumentos para especificar em qual nível de configuração operar. Ao buscar um valor de configuração, o Git prioriza a seguinte ordem (da menor para a maior prioridade):

  1. --system – A configuração no nível do sistema inclui todos os usuários de um sistema operacional e todos os repositórios. O arquivo de configuração do nível de sistema está localizado no diretório de instalação do Git.

Nível de sistema do git config

(prefix)/etc/gitconfig - on Unix systems
C:\Documents and Settings\All Users\Application Data\Git\config - Windows XP (deprecated)
C:\ProgramData\Git\config - Windows Vista and newer versions
  1. --global – A configuração no nível global se aplica ao usuário atual do sistema operacional. Os valores de configuração global são armazenados em um arquivo no diretório home do usuário.

Nível global do git config

~/.gitconfig - on Unix systems
C:\Users\<username>\.gitconfig - on Windows
  1. --local – Quando nenhuma opção de configuração é passada, o git config escreve no nível local por padrão. O diretório .git do repositório contém um arquivo que armazena os valores de configuração local.

Nível local do git config

.git/config

Observação: as configurações locais substituem as globais, que por sua vez substituem as do sistema. Portanto, um user.email definido dentro de um repositório (local) tem precedência sobre o valor global, permitindo que você use um endereço de trabalho em um projeto e um endereço pessoal em outro.

Como escrever um valor

Para escrever um valor, passe o nome da configuração seguido do valor. O exemplo abaixo escreve [email protected] em user.email. O sinalizador --global define o valor para o usuário atual do sistema operacional, portanto se aplica a todos os repositórios em que você trabalha:

git config definir usuário

git config --global user.email "[email protected]"

Uma configuração inicial típica escreve seu nome e e-mail:

git config --global user.name "Jane Doe"
git config --global user.email "[email protected]"

Esses dois valores são registrados em cada commit que você cria, portanto defina-os antes do seu primeiro commit.

Como ler um valor

O uso básico do git config é recuperar um valor de configuração especificando seu nome. Os nomes de configuração consistem em uma section e uma key separadas por um ponto:

git config e-mail do usuário

git config user.email

Aqui, email é uma propriedade filha da seção user. Executar isso imprime o valor ativo — aquele que prevalece após a cadeia de substituição local → global → sistema ser aplicada.

Comandos úteis de inspeção

Além de ler uma única chave, estes comandos ajudam você a ver e gerenciar tudo que o Git configurou:

ComandoO que faz
git config --listLista todas as configurações ativas, mescladas em todos os níveis.
git config --list --show-originLista cada configuração junto com o arquivo de onde ela vem.
git config --get-all <key>Recupera todos os valores de uma chave que pode ser definida mais de uma vez.
git config --unset <key>Remove uma única configuração.
git config --editAbre o arquivo de configuração relevante no editor padrão.

Quando dois níveis definem a mesma chave, --show-origin é a maneira mais rápida de descobrir qual arquivo é responsável pelo valor que o Git usa de fato.

O editor do git config - core.editor

Quando sua identidade está configurada, o Git usa o editor padrão do sistema, que é Vi ou Vim. O git config define qual editor o Git usará. Veja a lista dos editores mais comuns com os comandos git config:

EditorComando de Configuração
Atomgit config --global core.editor "atom --wait"
emacsgit config --global core.editor "emacs"
nanogit config --global core.editor "nano -w"
vimgit config --global core.editor "vim"
Sublime Text (Mac)git config --global core.editor "subl -w"
Sublime Text (Win, 32-bit install)git config --global core.editor "'c:/program files (x86)/sublime text 3/sublimetext.exe' -w"
Sublime Text (Win, 64-bit install)git config --global core.editor "'c:/program files/sublime text 3/sublimetext.exe' -w"
Textmategit config --global core.editor "mate -w"

Saídas coloridas

O Git suporta cores, simplificando o processo de leitura da saída do Git. Você pode usar suas próprias cores para personalizar a saída. O comando git config é usado para definir valores de cores.

color.ui

O Git colore automaticamente a maior parte de sua saída, mas há também uma variável mestre caso você queira definir outra cor. Para desativar toda a saída colorida do terminal do Git, você pode fazer o seguinte:

git config definir color.ui

git config --global color.ui false

A configuração padrão de color.ui é auto, que aplica cores diretamente à saída do terminal. Ela omite a saída de código de cor quando a saída é redirecionada para um pipe ou arquivo.

Você também pode definir o valor de color.ui como always. Isso aplica a saída de código de cor quando a saída é redirecionada para arquivos ou pipes. Isso pode causar problemas, pois o pipe receptor pode não esperar uma entrada com código de cor.

Valores de cor do Git

Além de color.ui, há outras configurações de cor que podem ser definidas como false, auto ou always. Elas podem ter um valor de cor específico: normal, black, red, green, yellow, blue, magenta, cyan, white. As cores podem ser especificadas como códigos de cor hexadecimais como #1c87c9 ou valores de cor ANSI 256 se o terminal suportar.

Configurações de cor do Git

ConfiguraçãoDescrição
color.branchDefine a cor de saída do comando git branch.
color.branch.<slot>É relevante para a saída do git branch. <slot> é um dos seguintes: 1. branch atual 2. branch local 3. branch remoto 4. branch upstream 5. plain (qualquer outra referência)
color.diffAplica cores à saída de git diff, git log e git show
color.diff.<slot>Instrui o git sobre em qual parte do patch (context, plain, meta, frag, old, new, commit, whitespace) uma cor específica deve ser usada.
color.decorate.<slot>Ajusta a cor para a saída de git log --decorate. Os valores <slot> suportados são branch, remoteBranch, tag, stash ou HEAD. São aplicados a branches locais, branches de rastreamento remoto, tags, mudanças armazenadas e HEAD, respectivamente.
color.grepAplica cor à saída de git grep.
color.grep.<slot>Pode ser aplicado ao git grep. A variável <slot> especifica em qual parte da saída do grep (context, filename, function, line number, match, matchContext, matchSelected, selected, separator) a cor deve ser aplicada.
color.interactiveAplica cor a prompts e exibições interativas (por exemplo, git add --interactive, git clean --interactive)
color.interactive.<slot>Tem como alvo uma "saída interativa". Os valores <slot> disponíveis são: prompt, header, help, error.
color.pagerAtiva ou desativa a saída colorida quando o pager está em uso.
color.showBranchAtiva ou desativa a saída colorida para o comando git show branch.
color.statusAtiva ou desativa a saída colorida para o git status.
color.status.<slot>Especifica a cor personalizada para elementos definidos do git status. <slot> suporta os seguintes valores: header, added ou updated, changed, untracked, branch, nobranch, unmerged.

Os aliases do git config

Aliases são atalhos personalizados que se expandem para comandos mais longos ou combinados, para que você não precise redigitar comandos usados com frequência na íntegra. O sistema de aliases do Git é usado com mais frequência para encurtar comandos comuns. Você cria aliases com git config:

git config definir alias

git config --global alias.ci commit

Após isso, git ci executa git commit. Como o valor contém um espaço, um alias que mapeia para um comando com flags deve ser colocado entre aspas como um único argumento:

aliases do git config

git config --global alias.amend "commit --amend"

Aqui, executar git amend expande para git commit --amend. Um alias também pode chamar um comando shell prefixando o valor com !, por exemplo git config --global alias.unstage '!git restore --staged'. Para uma análise mais aprofundada, veja o capítulo dedicado ao git alias.

Formatação e espaços em branco

FuncionalidadeDescriçãoComando Git Config
indent-with-non-tabDestaca uma linha que começa com espaços em vez de tabs.git config --global core.whitespace "indent-with-non-tab,tab-in-indent,blank-at-eof,-trailing-space,-cr-at-eol"
tab-in-indentDestaca um tab de indentação inicial como erro.(Combinado com outras regras)
blank-at-eofDestaca linhas em branco inseridas no final de um arquivo.(Combinado com outras regras)
trailing-spaceDestaca espaços em branco no final.(Combinado com outras regras)
cr-at-eolDestaca um retorno de carro no final da linha.(Combinado com outras regras)
tabwidth=<n>Especifica quantas posições de caractere um tab ocupa. O padrão é 8. Valores permitidos: 1-63.git config --global core.whitespace "tabwidth=<n>"

Outras configurações comuns

Alguns valores de configuração valem a pena definir em uma nova máquina:

# Name the default branch "main" for every repository you create
git config --global init.defaultBranch main

# Reuse cached credentials so you are not prompted on every push
git config --global credential.helper cache

# Choose how git pull reconciles divergent branches (merge, not rebase)
git config --global pull.rebase false

O valor init.defaultBranch é aplicado pelo git init quando um repositório é criado. Para controlar quais arquivos o Git rastreia, combine sua configuração com um arquivo .gitignore.

Prática

Prática
Qual das opções a seguir é um uso correto do comando 'git config'?
Qual das opções a seguir é um uso correto do comando 'git config'?
Was this page helpful?