Hoje, quero compartilhar com vocês um pequeno script bash que tenho usado com sucesso há vários anos.
Para começar, descreverei uma situação que freqüentemente me ocorre até hoje, que me levou a escrever um roteiro. Enquanto trabalho em uma nova tarefa, eu salvei periodicamente o estado atual do projeto no gita, enquanto os commits em si não carregam nenhuma carga semântica em termos de conteúdo ou mensagens de commit.
Como resultado, o branch local da tarefa concluída se parece com isto:

A próxima etapa vem:
1) (feature-all-private )


: , , (- , )

: , — git-cmp
— bash- .
"" (feature-private) "" (feature-public):
git checkout feature-public
git cmp feature-private
, :
$ git cmp feature-private
common parent commit: 758d3fa
cleaning...
...done
git-diff:
$ git cmp feature-private
common parent commit: 758d3fa
diff --git a/test.txt b/test.txt
index 1e65656..2013c09 100644
--- a/test.txt
+++ b/test.txt
@@ -1,4 +1,4 @@
-oldLine
+newLine
cleaning...
...done
, :

Espero que este script seja útil para outra pessoa.
Fontes carregadas no github
Imagens foram criadas com codepen.io
Atualização: Acontece que essa funcionalidade já está implementada no conjunto git padrão e é chamada de git-diff