Wiem, że mogę użyć git diff
polecenia do sprawdzenia zmian, ale, o ile rozumiem, jest on oparty na katalogu. Oznacza to, że podaje wszystkie zmiany wszystkich plików w bieżącym katalogu.
Jak mogę sprawdzić zmiany tylko w jednym określonym pliku? Powiedzmy, że zmieniłem pliki file_1.rb
, file_2.rb
... file_N.rb
, ale interesują mnie tylko zmiany w pliku file_2.rb
. Jak sprawdzić te zmiany (zanim zatwierdzę)?
Odpowiedzi:
Użyj polecenia takiego jak:
Zapoznaj się z
git diff
dokumentacją, aby uzyskać pełne informacje na temat rodzajów rzeczy, dla których możesz uzyskać różnice.Zwykle
git diff
sam w sobie pokazuje wszystkie zmiany w całym repozytorium (nie tylko w bieżącym katalogu).źródło
Inna metoda (wspomniana w tej odpowiedzi SO ) zachowa historię w terminalu i zapewni bardzo dokładny zapis samego pliku:
git log --follow -p -- file
źródło
Możesz użyć,
gitk [filename]
aby wyświetlić dziennik zmianźródło
Możesz użyć poniższego polecenia, aby zobaczyć, kto zmienił co w pliku.
git blame <filename>
źródło
git blame <filename> | grep <searchfor>
gdzie<searchfor>
jest krótka wartość. Na przykład, aby dowiedzieć się, kto zmieniłfoo
siębar
INdist/index.php
, należy użyćgit blame dist/index.php | grep bar
Możesz wykonać
Spowoduje to wyświetlenie nazwy zmodyfikowanych plików, a następnie po skopiowaniu ścieżki zainteresowanego pliku można zobaczyć zmiany za pomocą
git diff
źródło
aby wyświetlić listę, zatwierdza tylko szczegóły dotyczące określonych zmian plików,
aby wymienić różnicę między różnymi zatwierdzeniami dla tego samego pliku,
aby wymienić tylko zatwierdzenie i jego komunikat,
źródło
możesz także spróbować
W przypadku zatwierdzeń, git show pokaże komunikat dziennika i różnicę tekstową (między plikiem a zatwierdzoną wersją pliku).
Możesz sprawdzić dokumentację git show, aby uzyskać więcej informacji.
źródło
Lub jeśli wolisz korzystać z własnego narzędzia GUI:
Możesz ustawić narzędzie GUI, kierując się tym postem: Jak wyświetlić wyjście „git diff” za pomocą programu do wizualnego różnicowania?
źródło
Całkowicie zgadzam się z @Greg Hewgill
A jeśli ścieżka zawiera spacje, możesz użyć, spróbuj dodać za pomocą apostrofu
'
lub `git diff 'MyProject / My Folder / My Sub Folder / file_2.rb'
źródło