Comandos do Git

git show

git show: mostrar os detalhes de um commit específico, de uma tag ou de outro objeto.

O comando git show serve para exibir informações detalhadas sobre um objeto específico do Git, na maioria das vezes um commit. Ele mostra os metadados do commit (autor, data, mensagem) junto com o diff das alterações introduzidas por esse commit. Esse comando é especialmente útil quando você quer examinar o que exatamente mudou em um commit específico sem precisar compará-lo manualmente com o commit pai.

Por padrão, o git show exibe o commit mais recente da branch atual. Você pode indicar qualquer hash de commit, nome de branch, tag ou outra referência do Git para mostrar os detalhes daquele objeto específico. A saída inclui a mensagem do commit, as informações de autor, a data e hora e um diff unificado mostrando todas as alterações feitas naquele commit.

Quando a saída do git show é longa demais para caber em uma tela, o terminal entra no modo pager. Você pode rolar pela saída usando as setas e (ou PageUp e PageDown para rolar mais rápido). Para sair do modo pager, pressione q.

Exemplos

Mostre os detalhes do commit mais recente:

git show

Mostre os detalhes de um commit específico pelo hash:

git show 1a2b3c4d

Mostre só a mensagem e os metadados do commit, sem o diff:

git show --no-patch

Mostre as alterações de um arquivo específico em um commit:

git show 1a2b3c4d -- path/to/file.js

-- é um separador especial que diz ao Git para tratar tudo que vem depois dele como caminho de arquivo, mesmo que pareça um nome de branch ou de tag. Ele é totalmente opcional, mas útil quando você quer evitar ambiguidade entre nomes de arquivos e referências do Git.

Mostre só os nomes dos arquivos que foram alterados em um commit:

git show --name-only

Entendendo a saída

Quando você executa o git show em um commit, a saída normalmente se parece com isto:

Resultado:
commit 1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t
Author: John Doe <john.doe@example.com>
Date: Mon Jan 15 14:30:25 2024 -0500
Fix navigation bug in mobile view.
Updated CSS media queries to properly handle small screens.
diff --git a/src/components/Navigation.js b/src/components/Navigation.js
index 1c2s3z5..4f5g6h7 100644
--- a/src/components/Navigation.js
+++ b/src/components/Navigation.js
@@ -45,2 +45,6 @@
- display: block;
+ display: none;
+}
+
+@media (max-width: 768px) {
+ .mobile-menu {
+ display: block;
+ }
+}

Essa saída mostra:

  • Hash do commit: o identificador único desse commit específico.
  • Autor: quem fez o commit, incluindo o endereço de e-mail.
  • Data: quando o commit foi criado.
  • Mensagem do commit: a descrição de quais alterações foram feitas e por quê.
  • Diff: as alterações de fato feitas nos arquivos, no mesmo formato do git diff.

A parte do diff segue as mesmas convenções das outras saídas de diff do Git: as linhas com o prefixo - mostram o que foi removido, e as linhas com o prefixo + mostram o que foi adicionado.