Close

git config

Nesse documento, a gente vai aprender mais sobre o comando git config. O uso do git config foi abordado na página Como configurar repositórios. O comando git config é a função conveniente usada para definir valores de configuração do Git em projetos de nível global ou local. Esses níveis de configuração correspondem aos arquivos de texto do .gitconfig . Executar o git config modifica arquivos de texto de configuração. A gente vai falar das configurações comuns, como e-mail, nome de usuário e editor. Também vamos falar sobre aliases do Git, que permitem a criação de atalhos para operações usadas com frequência. Saber mais sobre o git config e sobre as diversas configurações do Git ajudam a criar fluxos de trabalho Git poderosos e personalizados.


Uso


O caso de uso mais básico do git config é chamar o comando com o nome de configuração, o que vai exibir o valor definido desse nome. Nomes de configuração são cadeias de caracteres delimitadas por pontos compostas de "seções" e "chaves" baseadas na hierarquia. Por exemplo: user.email

git config user.email

Nesse exemplo, o e-mail é propriedade filho do bloco de configuração do usuário. Isso retorna o endereço de e-mail configurado que o Git associa com commits criados no local.

Níveis e arquivos do git config

Antes de falar mais sobre o uso do git config, a gente vai discutir os níveis de configuração. O comando git config pode aceitar argumentos para especificar o nível de configuração no qual operar. Os seguintes níveis de configuração estão disponíveis:

Git Branch
Material relacionado

Git Branch

Logotipo do Bitbucket
VER SOLUÇÃO

Aprenda a usar o Git com o Bitbucket Cloud

  • --local

Por padrão, o git config grava em nível local se não houver nenhuma opção de configuração. A configuração de nível local é aplicada no repositório do contexto em que o git config for invocado. Os valores de configuração local são armazenados em um arquivo que pode ser encontrado no diretório .git do repositório: .git/config

  • --global

A configuração de nível global é específica do usuário, ou seja, ela é aplicada a usuários do sistema operacional. Os valores de configuração global são armazenados em um arquivo localizado no diretório de base do usuário. ~ /.gitconfig em sistemas Unix e C:\Users\\.gitconfig no Windows

  • --system

A configuração de nível do sistema é aplicada em toda a máquina. Ela abrange todos os usuários do sistema operacional e todos os repositórios. O arquivo de configuração de nível do sistema está no arquivo gitconfig localizado 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 versões mais recentes.

Portanto, a ordem de prioridade para os níveis de configuração é: local, global, sistema. Quando o Git procurar valores de configuração, ele vai começar no nível local e ir até o nível de sistema.

Como gravar valores

Para ampliar o conhecimento sobre o git config, a gente vai analisar o exemplo no qual o seguinte valor foi gravado:

git config --global user.email "your_email@example.com"

Nesse exemplo, o valor your_email@example.com é gravado no nome de configuração user.email. Ele usa o sinalizador --global, então esse valor é definido para o usuário atual do sistema operacional.

git config editor – core.editor


Muitos comandos Git iniciam o editor de texto para solicitar mais entradas. Um dos casos de uso mais comuns do git config é configurar qual editor o Git deve usar. A tabela de editores populares e comandos git config correspondentes é apresentada abaixo:

Editor

comando config

Atom

comando config

~ git config --global core.editor "atom --wait"~

emacs

comando config

~ git config --global core.editor "emacs"~

nano

comando config

~ git config --global core.editor "nano -w"~

vim

comando config

~ git config --global core.editor "vim"~

Sublime Text (Mac)

comando config

~ git config --global core.editor "subl -n -w"~

Sublime Text (Windows, instalação de 32 bits)

comando config

~ git config --global core.editor "'c:/program files (x86)/sublime text 3/sublimetext.exe' -w"~

Sublime Text (Windows, instalação de 64 bits)

comando config

~ git config --global core.editor "'c:/program files/sublime text 3/sublimetext.exe' -w"~

TextMate

comando config

~ git config --global core.editor "mate -w"~

Ferramentas de merge


Caso conflitos de merge aconteçam, o Git inicia uma "ferramenta de merge". Por padrão, o Git usa uma implementação interna do programa de comparação comum do Unix. O programa de comparação interno do Git é o visualizador mínimo de conflitos de merge. Em vez disso, há muitas resoluções de merge externas de terceiros que podem ser usadas. Para ver o resumo de diversas ferramentas de merge e configuração, consulte o guia em dicas e ferramentas para resolver conflitos com o Git.

git config --global merge.tool kdiff3

Saídas coloridas


O Git tem suporte para saídas de terminal coloridas, o que ajuda a ler com rapidez as saídas do Git. É possível customizar a saída do Git para usar temas de cores personalizados. O comando git config é usado para definir esses valores de cor.

color.ui

Essa é a variável mestre para cores do Git. Definir a variável como false desabilita todas as saídas de terminal coloridas do Git.

$ git config --global color.ui false

Por padrão, color.ui é definido como auto, o que aplica cores ao fluxo de saída do terminal imediato. A configuração automática omite a saída do código de cor se o fluxo de saída for redirecionado ao arquivo ou a outro processo.

É possível definir o valor de color.ui como always, o que aplica a saída do código de cores ao redirecionar o fluxo de saída para arquivos ou pipes. Essa ação pode, sem querer, causar problemas, já que o pipe receptor pode não estar esperando a entrada codificada com cores.

Valores de cor do Git

Além do color.ui, há várias outras configurações granulares de cor. Assim como o color.ui, essas configurações também podem ser definidas como false, auto ou always. Elas também podem ter valores de cor específicos definidos. Alguns exemplos de valores de cor suportados são:

  • normal
  • black
  • vermelho
  • green
  • yellow
  • blue
  • magenta
  • cyan
  • white

As cores também podem ser especificadas como código de cores hexadecimais, como #ff0000, ou valores de cor ANSI 256, se forem suportados pelo terminal.

Configurações de cor do Git

1. color.branch

  • Configura a cor de saída do comando Git branch

2. color.branch.<slot>

  • Este valor também se aplica à saída do Git branch. <slot> é um dos seguintes:
    • 1. current: a ramificação atual
    • 2. local: uma ramificação local
    • 3. remote: uma ramificação remota em refs/remotes
    • 4. upstream: uma ramificação de rastreamento upstream
    • 5. plain: qualquer outra ref

3. color.diff

  • Aplica cores na saída do git diff, git log e git show

4. color.diff.<slot>

  • A configuração de um valor <slot> em color.diff indica ao git em qual parte do patch usar uma cor específica.
    • 1. context: o texto de contexto da comparação. O contexto Git são as linhas de conteúdo de texto mostradas em uma comparação ou patch que destaca as mudanças.
    • 2. plain: sinônimo de contexto
    • 3. meta: aplica cor às metainformações da comparação
    • 4. frag: aplica cor ao "cabeçalho do fragmento" ou à "função no cabeçalho do fragmento"
    • 5. old: aplica cor às linhas removidas na comparação
    • 6. new: colore as linhas adicionadas da comparação
    • 7. commit: colore os cabeçalhos de commit dentro da comparação
    • 8. whitespace define uma cor para quaisquer erros de espaço em branco em uma comparação

5. color.decorate.<slot>

  • Personaliza a cor da saída do git log --decorate. Os valores <slot> aceitos são: branch, remoteBranch, tag, stash ou HEAD. Eles são aplicados, respectivamente, a ramificações locais, ramificações de rastreamento remoto, tags, alterações com stash e HEAD.

6. color.grep

  • Aplica cor à saída do git grep.

7. color.grep. <slot>

  • Vale também para git grep. A variável <slot> especifica em qual parte da saída do grep aplicar cor.
    • 1. context: texto não correspondente nas linhas de contexto
    • 2. filename: prefixo do nome do arquivo
    • 3. function: linhas de nome da função
    • 4. linenumber: prefixo do número de linha
    • 5. match: texto correspondente
    • 6. matchContext: texto correspondente nas linhas de contexto
    • 7. matchSelected: texto correspondente nas linhas selecionadas
    • 8. selected: texto não correspondente nas linhas selecionadas
    • 9. separator: separadores entre campos em uma linha (:, - e =) e entre fragmentos (--)

8. color.interactive

  • Esta variável aplica cores para solicitações e displays interativos. Os exemplos são git add --interactive e git clean --interactive

9. color.interactive.<slot>

  • A variável <slot> pode ser especificada para direcionar para uma "saída interativa" mais específica. Os valores <slot> disponíveis são: prompt, header, help, error; e cada ato na saída interativa correspondente.

10. color.pager

  • Habilita ou desabilita a saída colorida quando o paginador está em uso

11. color.showBranch

  • Habilita ou desabilita a saída colorida para o comando git show branch

12. color.status

  • Um valor booleano que habilita ou desabilita a saída colorida para o Git status

13. color.status.<slot>

Usado para especificar cores personalizadas para elementos especificados do git status. <slot> comporta os valores a seguir:

1. header

  • Destinado ao texto do cabeçalho da área de status

2. added ou updated

  • Destinados a arquivos que foram adicionados, mas não tiveram commit realizado

3. changed

  • Destinado a arquivos que foram modificados, mas não adicionados ao git index

4. untracked

  • Destinados a arquivos que não são rastreados pelo Git

5. branch

  • Aplica cor à ramificação atual

6. nobranch

  • A cor do aviso "sem ramificação" é exibida

7. unmerged

  • Colore arquivos que têm alterações não mescladas

Aliases


Talvez você conheça o conceito de aliases por causa da linha de comando do sistema operacional. Se não conhece: aliases são atalhos personalizados que definem qual comando é expandido em comandos mais longos ou combinados. Eles economizam tempo e energia ao digitar comandos usados com frequência. O Git oferece o sistema de alias. O caso de uso comum para aliases do Git é fazer atalhos para o comando de commit. Os aliases do Git são armazenados nos arquivos de configuração. Então você pode usar o comando git config para configurar aliases.

git config --global alias.ci commit

Esse exemplo cria o alias ci para o comando git commit. Você pode então chamar o git commit executando o git ci. Os aliases também podem fazer referências a outros aliases para criar combinações poderosas.

git config --global alias.amend ci --amend

Esse exemplo cria o alias amend, que compõe o alias ci no novo alias que usa --amend flag.

Formatação e espaço em branco


O Git tem várias funções de "espaço em branco" que podem ser configuradas para destacar itens de espaço em branco ao usar o git diff. Os itens de espaço em branco são destacados usando a cor configurada color.diff.whitespace

As seguintes funções são ativadas por padrão:

  • blank-at-eol destaca espaços em branco órfãos no final das linhas
  • space-before-tab destaca um caractere de espaço que aparece antes de um caractere tab ao indentar uma linha
  • blank-at-eof destaca linhas em branco inseridas no final de um arquivo

As seguintes funções são desativadas por padrão:

  • indent-with-non-tab destaca uma linha que foi indentada com espaços, ao invés de tabs
  • tab-in-indent destaca uma indentação de tab inicial como um erro
  • trailing-space é a abreviação da junção de blank-at-eol e blank-at-eof
  • cr-at-eol destaca um retorno de carro no final das linhas
  • tabwidth= define quantas posições de caracteres uma aba ocupa (o valor padrão é 8, e os valores permitidos são de 1 a 63)

Resumo


Nesse documento, vamos falar sobre a utilização do comando git config. Falamos sobre como o comando é um método convincente para editar arquivos git config brutos no sistema de arquivos. Vimos as operações básicas de leitura e gravação das opções de configuração. Vimos os padrões de configuração comuns:

  • Como configurar o editor do Git
  • Como substituir os níveis de configuração
  • Como redefinir os padrões de configuração
  • Como personalizar as cores do Git

Em geral, git config é uma ferramenta auxiliar que oferece um atalho para editar arquivos git config brutos em disco. A gente apresentou em profundidade as opções de personalização pessoal. O conhecimento básico das opções de configuração do git é um pré-requisito para configurar um repositório. Veja uma demonstração dos fundamentos no guia.


Compartilhar este artigo
Próximo tópico

Leitura recomendada

Marque esses recursos para aprender sobre os tipos de equipes de DevOps ou para obter atualizações contínuas sobre DevOps na Atlassian.

Pessoas colaborando usando uma parede cheia de ferramentas

Blog do Bitbucket

Ilustração do DevOps

Caminho de aprendizagem de DevOps

Demonstrações de funções no Demo Den com parceiros da Atlassian

Como o Bitbucket Cloud funciona com o Atlassian Open DevOps

Inscreva-se para receber a newsletter de DevOps

Thank you for signing up