7 comandos e truques menos conhecidos do Git
Use esses comandos para trabalhar com repositórios Git e aumentar sua produtividade sem ferramentas GUI
Foto de Clément Hélardot no Unsplash, editada com o Canva
Atualmente, o Git é a solução de gerenciamento de código-fonte padrão da indústria de software — toda equipe de desenvolvimento de software tende a usar Git e serviços de hospedagem Git remotos para manter suas bases de código. Os desenvolvedores usam várias maneiras exclusivas de trabalhar com bases de código de software baseadas em Git. Alguns desenvolvedores usam apenas a CLI oficial do Git. Alguns desenvolvedores usam a CLI oficial do Git e algumas ferramentas de visualização como o Gitk . Enquanto isso, alguns desenvolvedores raramente usam ferramentas CLI e geralmente usam ferramentas GUI, mesmo para staging e commit.
A CLI oficial do Git oferece uma solução completa para gerenciar repositórios Git por meio de interfaces de terminal. Além disso, ele fornece muitas opções de linha de comando abreviadas para maximizar a produtividade do desenvolvedor durante as atividades de desenvolvimento de software.
Todos nós conhecemos os comandos Git do dia-a-dia que podemos usar para preparar, confirmar, ramificar, mesclar e gerenciar repositórios remotos. Embora o Git CLI ofereça muitas opções de linha de comando e subcomandos, normalmente usamos os mesmos comandos configurados todos os dias, portanto, existem alguns comandos ocultos úteis no Git. Vamos aprender alguns comandos e truques ocultos úteis!
1. Encontrando os principais colaboradores
As equipes de desenvolvimento de software geralmente consistem em mais de um desenvolvedor. Mesmo que você ofereça um projeto de software livre e de código aberto, você receberá contribuições de código impressionantes da comunidade de código aberto. Portanto, nossos repositórios Git contêm commits de vários autores. E se você precisar listar os principais contribuidores com base em commits? A maneira mais fácil é verificar a guia do colaborador no GitHub (ou um serviço de hospedagem Git semelhante), conforme mostrado abaixo:
Os quatro principais contribuidores do projeto React Native, captura de tela do autor
De fato, podemos classificar todos os contribuidores localmente com base em sua contagem de commits com o seguinte comando Git integrado:
2. Recuperando o hash de confirmação atual para scripts de DevOps
Os desenvolvedores geralmente incluem o hash de confirmação do Git atual com uma compilação de software específica para vincular o instantâneo de código à versão de software lançada. Se você usar o Flutter e solicitar que a CLI do Flutter retorne os detalhes da versão, você obterá vários hashes de confirmação abreviados, conforme mostrado abaixo:
A opção de versão do Flutter mostra hashes de confirmação curtos, captura de tela do autor
Esses hashes de confirmação geralmente são incluídos em binários de software por meio de scripts DevOps. Por exemplo, se você precisar adicionar o hash do commit em um binário GNU/Linux compilado pelo GNU/GCC, você pode buscar o commit atual e enviá-lo para o GCC via definições de macro CLI:
3. Diferenciando Git entre Commits e Branches
Todo programador obstinado normalmente entra git diffdepois de modificar a base de código para verificar o que mudou, mesmo que os editores de GUI modernos mostrem diferenças do Git dentro do editor. O git diffcomando também é muito flexível como qualquer outro comando do Git. Por exemplo, podemos encontrar diff com base na extensão do arquivo da seguinte forma:
4. Consultando e formatando logs do Git
Trabalhar com um repositório Git é como escrever eventos especiais em um diário — podemos ver o que aconteceu nos últimos dias. Os desenvolvedores costumam usar o git logcomando para ver as modificações recentes. O logcomando Git vem com várias opções de linha de comando para consultar commits e formatar saídas. Por exemplo, podemos filtrar commits com base em um nome de autor específico:
O logcomando Git mostra uma saída detalhada por padrão, mas podemos obter uma resposta mínima com alguns sinalizadores de CLI abreviados como --oneline. O Git também oferece maneiras de personalizar os formatos de entrada de log. Veja a seguinte prévia:
Uma saída de log Git personalizada, captura de tela do autor
Podemos obter a saída acima com o seguinte comando:
5. Formatação de saídas brutas não estruturadas como tabelas
Você conhece alguns comandos do Git, como git branchaceitar o --columnsinalizador para formatar a saída baseada em linha em colunas? O Git oferece o mesmo recurso principal que um comando auxiliar genérico para desenvolvedores com o git columncomando — ele formata dados de saída padrão em tabelas de acordo com vários parâmetros de entrada. Suponha que você esteja gerando um padrão separado por nova linha com o seqcomando Unix. Podemos criar uma tabela com esses dados canalizando a seqsaída do comando para arquivos git column.
Observe o seguinte comando:
Formatando saídas de comandos brutos com o comando column, captura de tela do autor
Podemos usar git columnem qualquer script Bash para retornar saídas de maneira estruturada e amigável.
6. Adicionando Notas Curtas aos Commits
Os desenvolvedores tendem a escrever mensagens de commit limpas e autoexplicativas para manter um melhor histórico de desenvolvimento. Algumas equipes de desenvolvimento até geram notas de lançamento automaticamente com mensagens de confirmação, graças às convenções populares de confirmação. Como você adiciona algumas notas adicionais a um commit? Se você adicionar algo a uma mensagem de confirmação, ela aparecerá nas GUIs de hospedagem Git remotas. Como adicionar uma nota oculta para lembrar de algum trabalho técnico ou gravar uma mensagem para um servidor de CI/CD?
O recurso interno de notas do Git nos ajuda a adicionar notas adicionais para commits. Execute o seguinte comando para vincular uma nota ao commit atual:
O Git não faz push/pull de notas por padrão, mas você pode manipular explicitamente notas remotas com os seguintes comandos:
Normalmente, inspecionamos os commits do Git em serviços de hospedagem Git remotos, como o GitHub, para analisar as alterações de código. O GitHub mostra um commit com alterações de arquivo e permite que você inicie discussões lá. Os recursos integrados do Git também permitem que você inspecione um commit específico localmente. Por exemplo, digite o seguinte comando para visualizar detalhes sobre o commit atual:
Inspecionando um commit passado com o comando show, captura de tela do autor
Mostrei um exemplo para recuperar o commit atual com um programa C porque aprender C tem benefícios notáveis ​​— a história a seguir prova isso: