Ogólnie git diff wymaga wskazania CO z CZYM ma być porównane:
git diff <commit_hash> <commit_hash> <file_name>
Ponieważ branch można postrzegać jako ostatni commit w zadanej gałęzi kodu, to zadziała również:
git diff <branch_name1> <branch_name2> <file_name>
Czasami jednak opuszczamy CO ma być porównane i regulujemy to wyłącznie opcjami. Oto takie przypadki:
Zobacz czym różni się kod w working directory od kodu w staging area:
git diff <file_name>
Czym różni się kod w staging area od skommitowanego kodu w repo
git diff --staged <file_name>
git diff --cached <file_name>
Czym różni się kod w working directory od skommitowanego kodu w repo:
git diff HEAD <file_name>