È possibile ottenere in questo modo:
git diff <file_path_relative_to_project_root>
Modificato:
Spiegazione: voluto un po 'per capire questo. Ogni volta che viene utilizzato lo git log -p <file>
mostra il commit dove mai il file è stato toccato e diff per lo stesso file da solo. Ciò significa che se si desidera seguire la cronologia completa di un file, è possibile aggiungere l'opzione --follow e visualizzare la cronologia completa.
Ma quando si entra in questo comando: git log --full-diff -p file
, vi mostra tutti i commit dove mai stato toccato questo file più ora mostra non solo diff per il file specificato ma mostra anche le diff del per tutti i file che sono stati toccati in il commit. Ciò significa che ti dà risultati per più file.
Se si tenta questo comando: git log help
Vedrai che --follow opzione può essere utilizzata solo solo per un singolo file in modo si può avere un comando come questo: git log --follow -p file
dal momento che mostra i risultati per solo file singolo.
Ma non può essere utilizzato con il seguente comando: git log --full-diff --follow -p file
poiché mostra risultati per più file e questa query genererebbe un errore.
No. Git diff può mostrarmi solo le modifiche tra 2 stati del file (per impostazione predefinita: il file da repo HEAD e il file da disco), ma non la cronologia completa. – mik01aj
Troverai la tua risposta [qui] (http://stackoverflow.com/a/5493663/3863146), ad esempio ** git log --follow -p - file ** – sahil
Grazie, funziona! Quindi hai risposto alla mia seconda domanda :) Cosa ne pensi della spiegazione del "perché"? – mik01aj