W tym artykule
Czym jest diff tekstu?
Diff tekstu to porównanie dwóch wersji tekstu, które dokładnie pokazuje, co się zmieniło. Wyświetla dodania (nowe linie lub znaki), usunięcia (usunięta zawartość) i niezmieniony kontekst. Narzędzia diff są fundamentalne dla kontroli wersji, przeglądu kodu i porównywania dokumentów.
Najpopularniejszym algorytmem diff jest Myers diff, który znajduje minimalną liczbę edycji (wstawień i usunięć) potrzebnych do przekształcenia jednego tekstu w drugi. To algorytm używany przez Git i większość narzędzi diff.
Jak działa porównywanie różnic
Narzędzie diff tekstu CheckTown porównuje dwa teksty wejściowe i wizualnie prezentuje różnice.
- Diff linia po linii — porównuje teksty na poziomie linii, pokazując, które linie zostały dodane, usunięte lub zmodyfikowane
- Wewnętrzny diff znaków — dla zmodyfikowanych linii podświetla konkretne znaki, które uległy zmianie
- Widok równoległy — wyświetla obie wersje obok siebie dla łatwego wizualnego porównania
Wypróbuj za darmo — bez rejestracji
Porównaj tekst →Kiedy używać narzędzia diff
Diff tekstu jest przydatny w każdym procesie, w którym trzeba zidentyfikować zmiany między dwiema wersjami treści.
- Przegląd kodu — porównuj wersje kodu, aby zobaczyć, co zmieniło się w pull requeście lub łatce
- Porównywanie dokumentów — identyfikuj zmiany między wersjami umów, dokumentów polityk lub plików konfiguracyjnych
- Debugowanie danych — porównuj odpowiedzi API z różnych środowisk, aby wykryć rozbieżności
Często zadawane pytania
Czym jest format unified diff?
Unified diff to standardowy tekstowy format diff używany przez git diff i patch. Linie zaczynające się od + to dodania, linie zaczynające się od - to usunięcia, a linie bez prefiksu to niezmienione linie kontekstowe. Znaczniki @@ wskazują, których numerów linii dotyczy dany fragment.
Jaka jest różnica między diff słownym a diff liniowym?
Diff liniowy pokazuje całe linie jako dodane lub usunięte. Diff słowny (git diff --word-diff) pokazuje zmiany na poziomie słów wewnątrz linii, ułatwiając wychwytywanie małych edycji w długich liniach. Diff na poziomie znaków pokazuje każdą pojedynczą zmianę znaku, co jest najbardziej przydatne przy porównywaniu blisko spokrewnionych ciągów.
Jak ignorować białe znaki w diff?
Większość narzędzi diff obsługuje opcje ignorowania białych znaków. W Git użyj git diff -w, aby ignorować wszystkie zmiany białych znaków, lub -b, aby ignorować zmiany w ilości białych znaków. Jest to przydatne przy porównywaniu kodu, który został przeformatowany bez zmian funkcjonalnych, lub przy porównywaniu tekstu z różnych edytorów, które mogą używać różnych zakończeń linii.