Attenzione, in questo scenario:
Commit hash - File modified
aaaaaaa index.php
bbbbbbb test.php
ccccccc index.php
git checkout HEAD ~ 1 (o HEAD ^) index.php cercare di checkout il file index.php per precedente hash HEAD (bbbbbbb), ma questo non è il vero file di hash di commit precedente è ccccccc. Nel precedente hash HEAD, index.php rimane invariato perché l'ultima modifica è stata apportata in hash ccccccc.
Per ripristinare qualche file di commit precedente hash che ha colpito il file, uso:
git log -n 2 --pretty=format:%h path/to/file.ext
Ignora primo hash e prendere la seconda hash, quindi:
git checkout <second_hash> path/to/file.ext
git commit -m 'Revert this file to real previous commit'
Il modo più semplice sarebbe quella di copiare il file contenuto da quel particolare commit usando un client ui (o da github bitbucket etc) e incollalo nel tuo file corrente e commetti :) Più facile di scrivere l'hash e il percorso – nawfal