Skip to main content

10 aliases do Git para um fluxo de trabalho mais rápido e produtivo

Escrito por
Headshot of Royee Shemesh

Royee Shemesh

2 de dezembro de 2020

0 minutos de leitura

Usar o Git como ferramenta de versionamento de código faz parte do dia a dia de quem desenvolve, e talvez você pratique seu fluxo de trabalho com o Git pela linha de comando. De preferência, com um tema escuro também, certo?

Embora uma interface gráfica para o Git possa ser útil em um ambiente de desenvolvimento integrado (IDE), como o IntelliJ ou o VS Code, às vezes você pode precisar recorrer à interface de linha de comando (CLI).

Neste artigo, apresentamos 10 aliases do Git que podem ajudar você a ter um fluxo de trabalho mais rápido e produtivo, seja trabalhando individualmente ou em equipe.

Que comecem os jogos do Git!

Como configurar um alias do Git?

Os aliases do Git costumam ficar armazenados na configuração do seu usuário, em ~/.gitconfig. Você também pode definir aliases manualmente usando, por exemplo, o comando git config alias.s ‘status -s’.

A seguir, veremos os aliases do Git que você deve adicionar ao arquivo ~/.gitconfig, em uma seção específica chamada [alias], onde ficam armazenados todos os aliases e seus comandos. Confira alguns exemplos de configuração de aliases do Git nesse arquivo.

Como listar os aliases do Git?

O executável do Git tem uma opção de linha de comando que lista todas as configurações do Git e mostra sua origem (sistema, usuário ou repositório local). O comando a seguir lista detalhadamente todas as configurações do Git, incluindo suas origens: git config --list --show-origin.

[alias]
    s = status
    co = checkout

Status do Git

Você costuma executar o comando git status? Eu, sim! Use o alias do Git a seguir para criar um atalho:

[alias]
    s = status

Veja como fica na prática:

$ git s

On branch main
Your branch is up to date with 'origin/main.

nothing to commit, working tree clean

Git checkout

Também é comum alternarmos entre branches do Git. Vamos simplificar isso!

Adicione o alias:

[alias]
co = checkout

Depois, experimente:

$ git co feat/add-popup

Na verdade, é possível fazer checkout de uma branch do Git usando um atalho, como git checkout -, que volta para a branch anterior. Esse comando é, na verdade, uma forma abreviada de git checkout @{-1}, então este alias também pode usá-lo com git co -.

Criar uma nova branch e alternar para ela

Se você costuma criar novas branches do Git pela CLI, este alias pode poupar algumas teclas:

[alias]
cob = checkout -b

Use assim:

$ git cob feat/add-popup

Switched to a new branch 'feat/add-popup'

Excluir uma branch

Talvez você não exclua branches com frequência, mas, quando precisar, pode perder tempo pesquisando comandos do Git no Google para encontrar o argumento e a opção certos. Em vez disso, podemos criar um alias mais curto e fácil de lembrar, relacionado ao checkout de branches do Git:

[alias]
del = branch -D

Use assim:

$ git del feat/add-popup
Deleted branch featureB (was b5cbv113).

Listar todas as branches

Quando trabalhamos em vários recursos, nosso fluxo de trabalho com o Git geralmente acaba tendo várias branches também. Pode ser difícil descobrir onde paramos e qual branch usamos por último.

O alias do Git a seguir lista todas as branches e as ordena pela data do commit, mostrando primeiro a branch mais recente, com base nos commits feitos nela.

[alias]

br = branch --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(contents:subject) %(color:green)(%(committerdate:relative)) [%(authorname)]' --sort=-committerdate

Veja como usá-lo e como pode ser o resultado:

$ git br
Captura de tela do terminal mostrando a branch master do Git na versão v0.0.0-development e uma correção recente no arquivo deps-lockfile.

Como você pode ver, ele oferece mais contexto, como o nome de quem fez cada um dos últimos commits, com destaques coloridos.

Commit do Git

Fazer commits cedo e com frequência é um dos pontos fortes do Git. O processo é rápido e não gera sobrecarga, graças ao funcionamento interno do Git. Então, por que não fazer isso com frequência?

Isso depende do seu fluxo de trabalho com o Git. No entanto, se você trabalha com esse tipo de fluxo com frequência e quer salvar seus commits com a mesma frequência (para não perder o controle do trabalho em andamento), o texto da mensagem do commit talvez não seja tão prioritário, especialmente se você estiver trabalhando com pull requests.

Para salvar pontos de progresso e ter um fluxo de trabalho com o Git mais rápido e produtivo, o alias a seguir adiciona rapidamente todos os arquivos do Git que ainda não estão em stage à área de staging, usando uma mensagem de commit genérica.

[alias]
save = !git add -A && git commit -m 'chore: commit save point

Veja como fica na prática:

$ git save

[feat/add-popup 98cba110acb] chore: commit save point
1 file changed, 1 insertion(+)

Reverter alterações

Se às vezes você precisa fazer um commit e depois revertê-lo, o alias a seguir retorna todas as alterações do commit para a área local fora do staging. Assim, você pode modificá-las e adicioná-las à área de staging (também chamada de índice).

[alias]
    undo = reset HEAD~1 --mixed

Depois de executar este alias do Git, use git undo para desfazer o commit anterior nesta branch e deixar todas as alterações desse commit como não comitadas, para que você possa continuar trabalhando nelas.

Use assim:

$ git undo
Unstaged changes after reset:
M app.js

Descartar todas as alterações

Quem não gostaria de começar do zero? Se você precisar limpar rapidamente todas as alterações locais que não quer enviar ao repositório neste momento, nem mesmo localmente, use o alias a seguir:

[alias]
 res = !git reset --hard

Ele redefine todas as alterações em stage (adicionadas com o comando git add). Veja como fica na prática:

$ git res
HEAD is now at 6e7879bc81a chore: commit save point 

Enviar alterações para o repositório upstream

Quando termina de trabalhar no código, você envia commits para o repositório Git remoto, como todo mundo, certo? Muitas vezes fazemos isso com um comando longo: git push origin ou git push origin main.

No entanto, se você estiver trabalhando na mesma branch para a qual quer enviar as alterações, podemos usar HEAD como alias para o nome da branch remota. Envie seus commits do repositório Git local para os remotos origin ou upstream com um atalho simples como git done, usando este alias:

[alias]
    done = !git push origin HEAD

Este alias e o atalho HEAD são especialmente úteis quando os nomes das branches são longos. Veja como é fácil usá-los:

$ git done

Enumerating objects: 42, done.
Counting objects: 100% (42/52), done.
Delta compression using up to 8 threads
Compressing objects: 100% (8/8), done.
Writing objects: 100% (8/8), 1.63 KiB | 7.63 MiB/s, done.
Total 42 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 8 local objects.
To github.com:royeeshemesh/git-workflow.git
   bc535183..1e42d90  HEAD -> main

Log do Git

Para encerrar, vamos apresentar um dos comandos mais úteis do Git: git log. Há várias maneiras de usar aliases do Git para personalizar a saída do log, mas minha sugestão é usar o alias personalizado a seguir:

[alias]
    lg = !git log --pretty=format:\"%C(magenta)%h%Creset -%C(red)%d%Creset %s %C(dim green)(%cr) [%an]\" --abbrev-commit -30

Este alias do Git deixa a saída do git log bem mais legível. Experimente:

$ git log
Captura de tela do terminal mostrando um log do Git com o histórico de commits e os rótulos das ramificações em cores.

Resumo dos aliases do Git

Apresentamos 10 aliases do Git para aumentar sua produtividade e agilizar seu fluxo de trabalho, caso você trabalhe pela linha de comando.

Veja a lista completa de aliases do Git para incluir no arquivo ~/.gitconfig:

[alias]
    s = status
    co = checkout
    cob = checkout -b
    del = branch -D    
    br = branch --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(contents:subject) %(color:green)(%(committerdate:relative)) [%(authorname)]' --sort=-committerdate
    save = !git add -A && git commit -m 'chore: savepoint'
    undo = reset HEAD~1 --mixed
    res = !git reset --hard
    done = !git push origin HEAD
    lg = !git log --pretty=format:\"%C(magenta)%h%Creset -%C(red)%d%Creset %s %C(dim green)(%cr) [%an]\" --abbrev-commit -30
What’s next?

O que vem a seguir?

Recomendamos que você confira nossas 10 práticas recomendadas de segurança do GitHub. Aproveite também para conectar seu repositório Git ao Snyk e encontrar e corrigir vulnerabilidades nas dependências de código aberto dos seus projetos.

Comece a resolver desafios de capture the flag

Aprenda a resolver desafios de capture the flag assistindo sob demanda ao nosso workshop virtual introdutório.

Publicado em:

Leia mais

Blog

Verão nos estádios: a turnê Fan Zone do Snyk Connect

A turnê Fan Zone da Snyk levou workshops de segurança de IA, networking e competição amistosa a 8 cidades e 3 sessões virtuais. Os participantes desenvolveram habilidades, trocaram ideias e evoluíram juntos.

Blog

Snyk VulnBench JS 1.0: LLMs conseguem encontrar os mesmos bugs duas vezes?

Snyk VulnBench JS 1.0: 300 varreduras repetidas mostram que as descobertas de segurança dos LLMs variam a cada execução, enquanto SAST e modelos detectam diferentes lacunas de vulnerabilidade.

feature insights context
Blog

Construindo a segurança de IA com nossos clientes: 5 lições do programa de parceiros de design do Evo

Conheça 5 lições importantes do programa de parceiros de design do Evo, da Snyk. Descubra como a descoberta de IA, a inteligência de risco e a automação de políticas ajudam as equipes a proteger a IA generativa e controlar a proliferação de IA em grande escala.