Neste documento, daremos uma olhada em profundidade no comando git config
. Discutimos brevemente git config
uso em nossa página Configurando um Repositório. O comando git config
é uma função de conveniência usada para definir valores de configuração Git em um projeto global ou local . Esses níveis de configuração correspondem a .gitconfig
arquivos de texto. Executar git config
modificará um arquivo de texto de configuração. Cobriremos as definições de configuração comuns como e-mail, nome de usuário e editor. Discutiremos os aliases do Git, que permitem criar atalhos para operações Git usadas com frequência. Familiarizar-se com git config
e as várias configurações do Git o ajudará a criar um fluxo de trabalho Git poderoso e personalizado .
Uso
O caso de uso mais básico para git config
é invocá-lo com um nome de configuração, que exibirá o valor definido em esse nome. Os nomes de configuração são strings delimitadas por pontos compostas por uma “seção” e uma “chave” com base em sua hierarquia. Por exemplo: user.email
Neste exemplo, e-mail é uma propriedade filho do bloco de configuração do usuário. Isso retornará o endereço de e-mail configurado, se houver, que o Git irá associar aos commits criados localmente.
níveis e arquivos de configuração do git
Antes de discutirmos o uso do git config
, vamos cobrir os níveis de configuração. O comando git config
pode aceitar argumentos para especificar em qual nível de configuração operar. Os seguintes níveis de configuração estão disponíveis:
-
--local
Por padrão, git config
gravará em um nível local se nenhuma opção de configuração for passada. A configuração de nível local é aplicada ao repositório de contexto git config
é invocado. Os valores de configuração local são armazenados em um arquivo que pode ser encontrado no diretório repo “s .git: .git/config
-
--global
A configuração de nível global é do usuário específico, o que significa que é aplicado a um usuário do sistema operacional. Os valores de configuração global são armazenados em um arquivo localizado no diretório inicial do usuário. ~ /.gitconfig
em sistemas unix e C:\Users\\.gitconfig
no Windows
-
--system
A configuração no nível do sistema é aplicada em uma máquina inteira. Isso cobre todos os usuários em um sistema operacional e todos os repositórios. O arquivo de configuração de nível de sistema reside em um arquivo gitconfig
fora do caminho raiz do sistema. $(prefix)/etc/gitconfig
em sistemas unix. No Windows, esse arquivo pode ser encontrado em C:\Documents and Settings\All Users\Application Data\Git\config
no Windows XP e em C:\ProgramData\Git\config
no Windows Vista e mais recente.
Assim, a ordem de prioridade dos níveis de configuração é: local, global, sistema. Isso significa que, ao procurar um valor de configuração, o Git começará no nível local e subirá no nível do sistema.
Escrevendo um valor
Expandindo o que já sabemos sobre git config
, vejamos um exemplo em que escrevemos um valor:
Este exemplo escreve o valor para o nome da configuração
user.email
. Ele usa o sinalizador --global
para este valor é definido para o usuário do sistema operacional atual.
git config editor – core.editor
Muitos comandos Git iniciarão um editor de texto para solicitar mais entradas. Um dos usos mais comuns casos para git config
é configurar qual editor Git deve usar. Listado abaixo está uma tabela de editores populares e comandos git config
correspondentes:
Ferramentas de mesclagem
No caso de um conflito de mesclagem, o Git lançará uma “ferramenta de mesclagem”. Por padrão, o Git usa uma implementação interna o do programa diff comum do Unix. O diff interno do Git é um visualizador mínimo de conflitos de mesclagem. Existem muitas resoluções de conflitos de mesclagem de terceiros externos que podem ser usadas. Para uma visão geral de várias ferramentas e configurações de mesclagem, consulte nosso guia sobre dicas e ferramentas para resolver conflitos com Git.
Saídas coloridas
O Git suporta saída de terminal colorida que ajuda na leitura rápida da saída Git. Você pode personalizar sua saída Git para usar um tema de cores personalizado. O comando git config
é usado para definir esses valores de cor.
color.ui
Esta é a variável principal para cores Git. Definir como falso desabilitará todas as saídas de terminal coloridas do Git.
Por padrão, color.ui
é definido como automático, o que aplicará cores ao fluxo de saída do terminal imediato.A configuração automática omitirá a saída do código de cor se o fluxo de saída for redirecionado para um arquivo ou canalizado para outro processo.
Você pode definir o valor color.ui
para sempre que também aplicará a saída do código de cores ao redirecionar o fluxo de saída para arquivos ou canais. Isso pode causar problemas involuntariamente, pois o tubo receptor pode não estar esperando entrada codificada por cores.
Valores de cor Git
Além de color.ui
, existem muitas outras configurações de cores granulares. Como color.ui
, essas configurações de cores podem ser definidas como falso, automático ou sempre. Essas configurações de cor também podem ter um valor de cor específico definido. Alguns exemplos de valores de cores suportados são:
- normal
- preto
- vermelho
- verde
- amarelo
- azul
- magenta
- ciano
- branco
As cores também podem ser especificadas como códigos de cores hexadecimais como # ff0000 ou valores de cor ANSI 256 se o seu terminal suportar.
Definições de configuração de cores Git
color.branch
- Configura a cor de saída do comando branch Git
color.branch.
slot >
- Este valor também se aplica à saída do branch Git. slot > é um dos seguintes:
- 1. atual: o ramo atual
- 2. local: uma filial local
- 3. remoto: um ramo remoto ref em refs / remotes
- 4. upstream: um branch de rastreamento upstream
- 5. simples: qualquer outra referência
color.diff
- Aplica cores a
git diff
,git log
egit show
saída
color.diff
.slot >
- Configuração de um slot > valor sob
color.diff
diz ao git em qual parte do patch usar uma cor específica.- 1. contexto: O texto de contexto do diff. O contexto Git são as linhas de conteúdo de texto mostradas em um diff ou patch que destaca as mudanças.
- 2. simples: um sinônimo de contexto
- 3. meta: aplica cor à meta informação do diff
- 4. frag: aplica cor ao “cabeçalho do pedaço” ou “função no cabeçalho do pedaço”
- 5. antigo: aplica uma cor às linhas removidas no diff
- 6. novo: colore as linhas adicionadas do diff
- 7. commit: colours commit headers dentro do diff
- 8. espaço em branco: define uma cor para qualquer erro de espaço em branco em um diff
color.decorate.
slot >
- Personalize a cor da saída
git log --decorate
. Os valores de slot > compatíveis são:branch
,remoteBranch
,tag
,stash
ouHEAD
. Eles são respectivamente aplicáveis a branches locais, branches de rastreamento remoto, tags, alterações armazenadas eHEAD
.
color.grep
- Aplica cor à saída do git grep.
color.grep.
slot >
- Também aplicável ao git grep. A variável slot > especifica qual parte da saída do grep aplicar a cor.
- 1. contexto: texto não correspondente em linhas de contexto
- 2. nome do arquivo: prefixo do nome do arquivo
- 3. função: linhas do nome da função
- 4. número de linho: prefixo do número da linha
- 5. corresponder: texto correspondente
- 6. matchContext: correspondência de texto em linhas de contexto
- 7. matchSelected: correspondência de texto nas linhas selecionadas
- 8. selecionado: texto não correspondente nas linhas selecionadas
- 9. separador: separadores entre campos em uma linha (:, -, e =) e entre blocos (-)
8. color.interactive
- Esta variável aplica cor para prompts e exibições interativos. Os exemplos são
git add --interactive
egit clean --interactive
9. color.interactive.slot >
- A variável slot > pode ser especificada para um alvo mais específico ” saída interativa “. Os valores de slot disponíveis > são: prompt, header, help, error; e cada ação na saída interativa correspondente.
color.pager
- Ativa ou desativa a saída colorida quando o pager está em uso
color.showBranch
- Ativa ou desativa a saída de cores para o comando git show branch
12. color.status
- Um valor booleano que ativa ou desativa a saída de cores para o status Git
13. color.status.slot
>
Usado para especificar a cor personalizada para os elementos de status git especificados. slot > suporta os seguintes valores:
- 1.cabeçalho
- Segmenta o texto do cabeçalho da área de status
- 2. adicionado ou atualizado
- Ambos os arquivos de destino que são adicionados, mas não confirmados
-
3. changed
- Arquivos de destino que são modificados, mas não adicionados ao índice git
- 4. não rastreado
- Arquivos de destino que não são rastreados pelo Git
- 5. branch
- Aplica cor ao branch atual
- 6. nobranch
- A cor do aviso “sem ramificação” é exibida
- 7. não mesclados
- arquivos de cores que têm alterações não mescladas
Aliases
Você pode estar familiarizado com o conceito de aliases de a linha de comando do sistema operacional; caso contrário, eles são atalhos personalizados que definem qual comando será expandido para comandos mais longos ou combinados. Os aliases economizam o tempo e o custo de energia da digitação de comandos usados com frequência. O Git fornece seu próprio sistema de aliases. Um caso de uso comum para os aliases do Git é o encurtamento o comando commit. Os aliases do Git são armazenados nos arquivos de configuração do Git. Isso significa que você pode usar o comando git config
para configurar os aliases.
Este exemplo cria um alias ci para o comando git commit
. Você pode então chamar git commit
executando git ci
. Os aliases também podem fazer referência a outros aliases para criar combos poderosos.
Este exemplo cria uma alteração de alias que compõe o ci alias em um novo alias que usa --amend flag
.
Formatação & espaço em branco
Git tem vários recursos de “espaço em branco” que podem ser configurados para destacar o espaço em branco problemas ao usar o git diff. Os problemas de espaço em branco serão destacados usando a cor configurada color.diff.whitespace
Os seguintes recursos são ativados por padrão:
-
blank-at-eol
destaca espaços em branco órfãos nas terminações de linha -
space-before-tab
destaca um caractere de espaço que aparece antes de um caractere de tabulação ao recuar uma linha -
blank-at-eof
destaca linhas em branco inseridas no final de um arquivo
Os seguintes recursos estão desabilitados por padrão
-
indent-with-non-tab
destaca uma linha recuada com espaços em vez de tabulações -
tab-in-indent
destaca um recuo inicial da tabulação como um erro -
trailing-space
é uma abreviação de espaço em branco na hora e espaço em branco na hora -
cr-at-eol highlights
um retorno de carro nas terminações de linha -
tabwidth=
define quantas posições de caractere uma guia ocupa. O valor padrão é 8. Os valores permitidos são 1-63
Resumo
Neste artigo, cobrimos o uso do git config command
. Discutimos como o comando é um método de convencimento para editar arquivos git config
brutos no sistema de arquivos. Vimos as operações básicas de leitura e gravação para opções de configuração. Vimos os padrões de configuração comuns:
- Como configurar o editor Git
- Como substituir os níveis de configuração
- Como redefinir os padrões de configuração
- Como personalizar as cores git
Em geral, git config
é uma ferramenta auxiliar que fornece um atalho para a edição bruta de git config
arquivos no disco. Cobrimos em profundidade as opções de personalização pessoal. Conhecimento básico das opções de configuração git é um pré-requisito para configurar um repositório. Veja nosso guia lá para uma demonstração dos princípios básicos.