Sempre que pensamos em agilidade e rapidez no fluxo de desenvolvimento, optamos por utilizar ferramentas que possuem diversas abstrações, sendo o objetivo principal não perder tempo com funcionalidades que não envolvam a regra de negócio. Ou seja, "Por que reinventar a roda se simplesmente podemos utilizá-la?", "Por que criar método de autenticação do zero?", "Por que implementar rotas manualmente sendo que o framework da moda já faz?".
Esses questionamentos são pertinentes e não estão errados, porém demonstram um ponto crítico. Como podemos evoluir a tecnologia se não sabemos como funciona por debaixo dos panos? Me questiono periodicamente sobre isto, pois vejo pessoas acreditando piamente que não precisam estudar ou entender a abstração, elas só precisam usar, simples assim. Sabe?... eu penso seriamente que para as coisas evoluírem, elas precisam ser dissecadas, manipuladas e observadas milimetricamente.
# 1. O ponto crítico
O objetivo principal de minha análise é simples... estudar o cerne, as entrelinhas para obter as nuances. Se você é como eu, não aceita não entender, queremos o máximo do conhecimento, queremos destrinchar profundamente o tema. "O que nos move?", você pode perguntar?... Eu lhe respondo: simplesmente fazemos com afinco porque gostamos. A tecnologia, o mercado, o cenário atual... todos eles precisam da gente.
# 2. Como implementar? Substituindo "git status" por "git s"
O comando a seguir visa abrir o arquivo de configuração do GIT, por isso passamos a flag "--edit", já "--global" indica que iremos aplicar para qualquer projeto pertencente ao usuário logado. O GIT possui três modalidades: global, local e system. O "local" serve para o projeto aberto no momento, então recomendo que utilize o terminal do VSCode para configurar. O "system" serve para todos os usuários do sistema. Pense que nem todos da sua equipe querem utilizar os mesmos atalhos que você. Aqui utilizaremos o "global". Digite o comando a seguir em seu terminal.
git confg --global --edit
O terminal mostrará o editor Vim, então pressione a tecla dois pontos e solte, e em seguida coloque a letra "q". O comando irá fechar o editor.
:q
Para abrir o arquivo de configurações com o VSCode, utilize o comando abaixo. Ele edita diretamente o arquivo do git, trocando o editor. Em seguida, use o comando novamente.
git config --global core.editor code
git config --global --edit
A estrutura a seguir será exibida para você:
[user]
email = johndoe@email.com
name = JohnDoe
[core]
editor = code
A adição da flag "--wait" no comando visa sinalizar que o editor (VSCode) deve aguardar pelo carregamento completo do arquivo de configuração, assim prevenindo uma tela vazia. Veja abaixo e edite sua config de acordo.
editor = code --wait
O próximo passo é criar um bloco "[alias]", dentro dele colocaremos todas as instruções associadas a um atalho. Então podemos definir o caractere "c" recebendo os comandos que deseja executar. Veja o exemplo a seguir:
...
[alias]
c = !git add -- all && git commit -m
Quando for realizar um commit, basta utilizar git c "sua mensagem", e automaticamente todos os arquivos em staging serão adicionados com a respectiva mensagem, agora pode "empurrar" para o seu repositório. A partir de agora, todos os valores declarados seguirão o mesmo estilo.
O próximo visa exibir o status das suas modificações (arquivos), costumeiramente utilizamos o "git status", agora iremos usar "git s". Precisamos então declarar a seguinte linha:
s = !git status -s
A adição da flag "-s" serve para exibir um status resumido (short), algo curto, abreviado.
O próximo comando visa exibir uma lista dos commits realizados. Geralmente, para este caso, utilizamos o "git log", porém é visto um acúmulo de informação exagerada e desorganizada. Adicione o comando a seguir no bloco de "alias", após os comandos que já trabalhamos.
l = !git log --pretty=format:''
Observe que adicionamos a cláusula --pretty=format:'', assim podemos estilizar o log com cores, exibindo cada informação — como hash do commit, branch, mensagem — com uma cor única. Isto simplifica a leitura, pois sabemos onde devemos olhar de acordo com a cor definida. Agora vamos definir as cores para cada valor. Veja o código a seguir:
l = !git log --pretty=format:'%h %d %s %cn %cr'
O "%h" serve para obter o hash do commit, iniciado como: "476809a", servindo de maneira reduzida. Se optarmos pelo hash completo, podemos utilizar "%H". O "%d" serve para exibir a branch do commit. O "%s" serve para obter o texto (mensagem) do commit. O "%cn" serve para exibir o nome da pessoa que realizou o commit. O "%cr" serve para exibir a data relativa, de quando foi realizado.
Agora que obtemos todos os valores, iremos customizar aplicando cores diferentes para cada um. Observe que o exemplo a seguir estabelece uma nova cor, declarada como "%C(blue)" antes do valor pretendido. Se quiser alterar, basta mudar o valor interno dos parênteses.
l = !git log --pretty=format:'%C(blue)%h%C(red)%d %C(white)%s - %C(cyan)%cn, %C(green)%cr\n'
Se você deseja trabalhar ou já utiliza tags, use o comando abaixo para lhe auxiliar, assim terá um atalho eficiente para a criação delas.
t = !sh -C 'git tag -a $1 -m $1' -
Por último, mas não menos importante... para simplificar suas alterações, podemos utilizar o amend. Imagine que fez alterações em alguns arquivos, corrigindo uma funcionalidade e realizou o commit, porém notou que faltou incluir algumas coisas. Em vez de commitar novamente, podemos apenas somar essas alterações ao commit anterior sem precisar mexer na mensagem, etc.
amend = !git add --all && !git commit --amend --no-editor
Um ponto importante que vale a atenção: devemos informar ao git que queremos commitar junto com as tags criadas. Por padrão, essa funcionalidade vem desabilitada.
...
[push]
followTags = true
Obrigado por ler! Abaixo você encontra o código completo.
...
[core]
editor = code --wait
[alias]
c = !git add --all && git commit -m
s = !git status -s
l = !git log --pretty=format:'%C(blue)%h%C(red)%d %C(white)%s - %C(cyan)%cn, %C(green)%cr\n'
t = !sh -C 'git tag -a $1 -m $1' -
amend = !git add --all && !git commit --amend --no-editor
[push]
followTags = true
Lembre-se o quanto é delicioso estar aprendendo e saber que poderá continuar até o último dia de sua vida.
Gostou da leitura?
Acompanhe meus próximos laboratórios de código e anotações de arquitetura na aba de Artigos.