Git diff

Da Andreabont's Wiki.

Nota: HEAD indica l'ultimo commit eseguito. Aggiungere ~ alla fine del nome del commit indica il precedente rispetto al commit indicato, aggiungere ~N (con N numero intero) indica il commit indietro di N rispetto a quello indicato.

Locale

Diff tra HEAD e la versione locale di un file.

git diff <file-path>

Tra due commit

Diff tra due specifici commit (volendo si può specificare il singolo file):

git diff <commit-id> <commit-id> <file-path>

Tra due branch

Diff tra due specifici branch (volendo si può specificare il singolo file):

git diff <branch-name>:<file-path> <branch-name>:<file-path>

Lista file

Se si vuole solo la lista file modificati tra due commit, se non si specifica il commit è inteso come quello precedente:

git diff-tree --name-only -r <commit-id> [<commit-id>]

E' anche possibile fare il diff tra branch:

git diff-tree --name-only -r <branch-a> <branch-b>

Se invece vuoi sapere i singoli file aggiunti tra un commit e un altro, includendo i commit intermedi.

git log --name-status --oneline <commit-id>..<commit-id>

Utilizza programma esterno (meld)

Per prima cosa creare uno script git-meld in /usr/bin

#!/bin/bash
meld $2 $5

Dopodichè è possibile configurare git:

git config --global diff.external git-meld