Configurando o terminal para mostrar branch atual em diretórios versionados

Facilite sua vida como desenvolvedor sabendo a branch atual em seu espaço de trabalho de forma extremamente simples e prática. E o melhor? Sem instalar nada!

Uma das dádivas de um bom desenvolvedor é saber exatamente onde está inserindo suas alterações. Atualmente, a melhor forma de se fazer isso, principalmente utilizando versionamento de código com o Git, é validar a branch do diretório de trabalho atual. Para isso, temos alguns caminhos:

  • Utilizar o comando do próprio git para mostrar a branch atual:

    git status
    
    # On branch main
    # Your branch is up to date with 'origin/main'.
    
    # nothing to commit, working tree clean
    

    Ou ainda:

    git branch
    
    # * main
    
  • Podemos instalar algum outro terminal de terceiro (como, por exemplo, o Oh My ZSH), mas isso é conversa para uma outra Tab! 😎

  • Outra opção é simplesmente manipular o seu terminal nativo para mostrar seu branch atual sempre que tiver um diretório versionado pelo git. Essa alternativa é o que veremos nesse Tab!

Alterando as configurações para exibir a branch atual

Normalmente, as configurações do terminal não mostram a branch do diretório atual se estiver versionado pelo git e, por padrão, são mostradas apenas o usuário, host (nome da máquina) e o path (caminho atual). Porém, ele possui algumas configurações que podem ser manipuladas a partir de uma variável em seu arquivo denominado PS1. Para isso, basta abrir o arquivo .bashrc ou .bash_profile em seu editor de texto preferido e adicionar o seguinte comando ao final:

export PS1='\u@\h\[\033[01;34m\] \w\[\033[0;32m\]$(__git_ps1 " (%s)")\[\033[01;34m\]$\[\033[00m\] '

Para aplicar as configurações, é necessário recarregar o arquivo. Podemos fazer isso reiniciando o sistema, realizando Logout ou simplesmente recarregando o arquivo de configurações:

source ~/.bashrc # ou source ~/.bash_profile

Pronto! 🎉 Já temos a nossa branch atual sendo mostrada em diretórios que estejam versionados pelo git.

Configurações adicionais

Mas por que não ir além? Deixarei abaixo algumas possíveis configurações adicionais de cores, por exemplo, que podem ser realizadas para deixar as informações presentes mais pertinentes possíveis para o seu caso de uso.

Valores

  • \u: Usuário atualmente logado na máquina;
  • \h: Nome da máquina (host), previamente cadastrado;
  • \H: Nome da máquina completo, previamente cadastrado;
  • \w: Diretório de trabalho atual completo;
  • \W: Diretório de trabalho atual minificado, apenas o nome base (último segmento);
  • $(__git_ps1 "%s"): Branch atual caso esteja em um repositório versionado pelo git, caso contrário não exibirá nada.

Cores

  • Azul: \[\033[0;34m\];
  • Verde: \[\033[0;32m\];
  • Verde Fluorescente: \[\033[1;32m\];
  • Branco Forte: \[\033[1;37m\];
  • Cinza: \[\033[0;37m\];
  • Vermelho: \[\033[0;31m\];
  • Vermelho Fluorescente: \[\033[1;31m\];
  • Padrão: \[\033[0m\].

Prontinho! Essa é a gama de configurações simples e poderosas disponíveis para utilização que poderão facilitar ainda mais a sua auto-localização no processo de desenvolvimento e, de quebra, permitir uma personalização da forma que quiser e achar válida. O meu está assim no momento em que escrevo esse post:

👾 ~/path/path(main)$

Sim, com emoji! 😬

O que foi mostrado aqui é apenas um pouco do que é possível ser feito. Por isso, deixarei alguns links que utilizei como referência para escrever e que você poderá utilizar para ir além no assunto.

Espero que tenha gostado dessa tab e que ela tenha te ajudado a encontrar o que você procurava! 💙

Links