Jak mogę wyświetlić historię zmian pojedynczego pliku w Git, z pełnymi szczegółami co się zmieniło?
Dotarłem tak daleko jak:
git log -- [filename]
który pokazuje mi historię commitów dla pliku, ale jak mogę dostać się do zawartości każdej z tych zmian?
Próbuję dokonać przejścia z MS SourceSafe i to było proste kliknięcie prawym przyciskiem myszy
→ pokaż historię
.
Można użyć
git log -p filename
aby git generował poprawki dla każdego wpisu w dzienniku.
Zobacz
git help log
aby uzyskać więcej opcji - to naprawdę może zrobić wiele fajnych rzeczy :) Aby uzyskać tylko diff dla konkretnego commitu możesz
git show HEAD
lub dowolną inną rewizję według identyfikatora. Lub użyć
gitk
aby przeglądać zmiany wizualnie.
git whatchanged -p filename
jest również równoważne git log -p filename
w tym przypadku.
Możesz także zobaczyć kiedy konkretna linia kodu wewnątrz pliku została zmieniona za pomocą git blame filename
. Spowoduje to wyświetlenie krótkiego id commit'u, autora, timestamp'u i pełnej linii kodu dla każdej linii w pliku.
Jest to bardzo przydatne po znalezieniu błędu i chcesz wiedzieć kiedy został on wprowadzony (lub czyja to była wina).
Jeśli używasz git GUI (w Windows) w menu Repozytorium możesz użyć "Wizualizacji historii mistrza". Podświetl commit w górnym panelu i plik w prawym dolnym, a zobaczysz diff dla tego commitu w lewym dolnym.