W HEAD
(najnowszym zatwierdzeniu) mam plik o nazwie foo
. W moim obecnym drzewie roboczym zmieniłem jego nazwę na bar
, a także dokonałem edycji.
Chcę git diff
foo
się HEAD
, a bar
w moim obecnym drzewie roboczym.
Odpowiedzi:
Podaj ścieżki jawnie:
git diff HEAD:full/path/to/foo full/path/to/bar
Sprawdź --find-renames
opcję w git-diff
dokumentach .
Kredyt: twaggs .
git diff <path> <path>
nawet jeśli nie znajdują się w repozytorium git.
git diff --help
, zobaczysz, że jedyne wzorce obsługiwane dla dwóch plików to git diff [<options>] --no-index [--] <path> <path>
. git diff a b
dopasowuje tylko wzorce zatwierdzeń, a nie pliki.
--no-index
opcję, uruchamiając polecenie w drzewie roboczym kontrolowanym przez Gita i co najmniej jedna ze ścieżek wskazuje poza drzewem roboczym lub podczas uruchamiania polecenia poza drzewem roboczym kontrolowanym przez Gita .
Uważam, że używanie --no-index
jest tym, czego szukasz:
git diff [<options>] --no-index [--] <path> <path>
jak wspomniano w podręczniku git:
Ta forma służy do porównania podanych dwóch ścieżek w systemie plików. Możesz pominąć tę
--no-index
opcję, uruchamiając polecenie w drzewie roboczym kontrolowanym przez Gita, a przynajmniej jedna ze ścieżek wskazuje poza drzewem roboczym lub podczas uruchamiania polecenia poza drzewem roboczym kontrolowanym przez Git.
Jeśli używasz narzędzia Tortoise Git, możesz kliknąć plik prawym przyciskiem myszy i uzyskać różnicę przez: Kliknięcie prawym przyciskiem myszy na pierwszym pliku i poprzez podmenu tortoisegit wybierz opcję "Porównaj później" Następnie na drugim pliku możesz również kliknąć prawym przyciskiem myszy , przejdź do podmenu tortoisegit, a następnie wybierz „Porównaj z twoją nazwą pliku.txt”
Używając PhpStorm, po prostu kopiuję kod poprzedniej zmiany i porównuję go z aktualną wersją za pomocą wbudowanego narzędzia "porównaj ze schowkiem".
git diff --no-index --word-diff old_file.txt new_file.txt
(--Word-diff podkreśla zmiany według słowa, a nie tylko wiersza, co jest bardzo pomocne w przypadku długiego tekstu).