Saber trabalhar com Git é uma competência fundamental para qualquer programador. Fui apresentado a este sistema de controlo de versões em 2014 e, desde então, nunca mais participei num projeto sem recorrer à ajuda desta autêntica “máquina do tempo”.
O Git é um sistema muito poderoso, indispensável para evitar a perda de código e essencial para trabalho em equipa. Mas, por ser tão completo, nem sempre é intuitivo… e às vezes as coisas correm mal.
Apesar de estar bastante confortável com o uso de Git no terminal, decidi recorrer a uma solução mais visual para identificar com maior facilidade as alterações efetuadas em cada commit. Foi nessa busca que encontrei o Tower, o cliente de Git que te vou apresentar hoje.
Esta aplicação, disponível para macOS e Windows, procura facilitar a vida de todos os programadores que trabalham diariamente com Git, independentemente dos seus conhecimentos na linha de comando ou da complexidade da acção em causa. E faz, na realidade, um ótimo trabalho!
Se estás reluctante em abandonar a linha de comando, não estejas. Conseguirás ser muito mais produtivo com um GUI como o Tower. E o mais provável é que a aplicação te ensine ainda mais sobre este sistema.
Estas são as minhas 5 funcionalidades preferidas:
1. Desfazer acções com CMD + Z
Podemos voltar atrás (undo) em muitas acções de Git no terminal, com a ajuda de comandos como git reset
, git reflog
, git commit --amend
ou git revert
. Mas, com o Tower, é possível desfazer a última acção com CMD + Z, um atalho praticamente universal, que podemos utilizar em qualquer outra aplicação.
A lista de comandos de Git que podemos desfazer é bastante vasta e envolve commits, branches e stashes, sendo uma funcionalidade bastante popular tanto para iniciados como para utilizadores avançados.
Também é possível refazer (redo) uma acção recorrendo a outro atalho bastante comum: CMD + SHIFT + Z.
2. Arrastar e Soltar (Drag and Drop)
Muitas acções podem ser realizadas com um arrastar e soltar (drag and drop). Tanto acções simples, como merges ou pulls, como tarefas mais complexas (como fixups e squashes) podem ser efetuadas sem largar o rato.
É até possível reordenar o histórico de commits (fazendo um Interactive Rebase) recorrendo a esta funcionalidade.
3. Quick Actions
Esta é uma das minhas funcionalidades preferidas, porque gosto de manter os dedos no teclado sempre que possível.
À semelhança de algo que poderias encontrar num editor de texto como o VS Code ou o SublimeText, é possível abrir um painel para acções rápidas premindo CMD + SHIFT + A.Com o painel aberto, as acções possíveis surgirão à medida que vais escrevendo o que pretendes. Estas são algumas possibilidades:
- mudar de branch;
- alterar o perfil do autor;
- consultar tags ou ficheiros;
- navegar para outro separador.
4. Gestão de Pull Requests
No Tower, é possível criar, comentar, fazer merge ou fechar Pull Requests sem sair do cliente de Git. Por outras palavras, deixei de precisar de abrir o browser para ir ao GitHub 😎
Esta funcionalidade também é compatível com outros serviços populares, como o BitBucket, GitLab, ou Azure.
5. Acções Automatizadas (como Stashing ou Fetching)
Muitas acções são repetitivas e o Tower procura facilitar a vida nesse departamento.
Exemplo disso é o fetching automático, que é feito periodicamente no background com a frequência que definirmos. De referir que o Tower nunca te deixará fazer um git push sem fazeres fetch primeiro, visto que o git push
da aplicação é sempre com a flag --force-with-lease
.
Stashing é outro exemplo de tarefas monótonas que o Tower procura facilitar. Sempre que queiras mudar de branch com ficheiros por inserir num commit serás convidado a adicionar o teu trabalho à Stash.
Existem muitas outras acções que foram simplificadas; por exemplo, também é possível clonar um repositório remoto com apenas um clique.
Como vês, o Tower tem muito a oferecer. Podes experimentar a aplicação gratuitamente durante 30 dias, sem qualquer restrição. A aplicação é grátis para alunos e professores.
Se gostares da experiência, a licença “Basic” custa 59 euros por ano. Se trabalhas com Git regularmente, acho que lhe devias dar uma hipótese!