Menu

Porównywarka tekstu (diff)

Porównuj dwa bloki tekstu lub kodu obok siebie, z różnicami w liniach i słowach.

Autor: Nethanel Bar, Co-founder & CEO

Ostatnia aktualizacja

Chcesz naprawdę nauczyć się programować?

Coddy uczy cię przez pisanie prawdziwego kodu w przeglądarce: interaktywne lekcje, natychmiastowa informacja zwrotna i pomoc AI, gdy utkniesz.

Czym jest diff checker?

Diff checker porównuje dwa fragmenty tekstu lub kodu i wyróżnia to, co dodano, usunięto lub zmieniono. Programiści używają diffów bez przerwy: przy przeglądzie kodu, debugowaniu zmian w konfiguracji, porównywaniu odpowiedzi API, sprawdzaniu migracji i rozumieniu zmian przed commitem.

Czytanie diffów to podstawowa umiejętność programisty. Pozwala oddzielić *prawdziwe zmiany zachowania* od niegroźnego formatowania i wypatrzyć jeden zmieniony znak w bloku 200 linii. Gdy przyswoisz rytm zielone / czerwone / żółte, przegląd kodu staje się dużo szybszy.

Najważniejsze są dwa rodzaje diffu: *diff linii* (które linie się zmieniły) oraz *diff słów* lub *diff znaków* (co zmieniło się wewnątrz linii). Dobre narzędzie pozwala przełączać się między nimi w zależności od tego, czy porównujesz kod źródłowy, czy akapity tekstu.

Czego nauczysz się, porównując teksty

  • Diff linii pokazuje, *gdzie* zaszły zmiany. Diff słów i znaków pokazuje, *co* zmieniło się w linii.
  • Białe znaki mogą mieć znaczenie (Markdown, YAML, Python) albo być bez znaczenia (większość innego kodu), więc odpowiednio przełączaj opcję ignorowania białych znaków.
  • Mały z pozoru diff może mieć ogromne skutki, jeśli zmienia wartość, warunek, trasę, zmienną środowiskową albo flagę funkcji.
  • Gdy dwa duże bloki bardzo się różnią, najpierw je posortuj lub znormalizuj. Porównanie dwóch nieposortowanych obiektów JSON może dać ścianę fałszywych różnic.

Jak krok po kroku porównać dwa teksty

  1. Wklej obie wersje

    Oryginalny tekst umieść po lewej, a nową wersję po prawej. Kod, JSON, zwykły tekst, pliki konfiguracyjne: wszystko zadziała.

  2. Wybierz diff linii lub słów

    Diffu linii używaj dla kodu źródłowego i danych strukturalnych. Przełącz się na diff słów, gdy porównujesz akapity tekstu, w których liczy się sformułowanie.

  3. Ustaw białe znaki i wielkość liter

    Włącz *ignorowanie białych znaków*, jeśli interesują cię tylko istotne zmiany. Włącz *ignorowanie wielkości liter*, gdy porównujesz logi lub tekst, w którym wielkość liter jest przypadkowa.

  4. Odczytaj kolorowy wynik

    Usunięta treść pojawia się na czerwono po lewej, dodana na zielono po prawej. Zmienione linie często widać jako parę: jedną usuniętą i jedną dodaną obok siebie.

  5. Poprawiaj na bieżąco

    Edytuj dowolną stronę i obserwuj, jak diff aktualizuje się na żywo. To świetny sposób na przygotowanie czystej poprawki przed otwarciem pull requesta.

Ściąga kolorów i symboli diffu

Konwencje używane w diff checkerze Coddy, a także w git diff, GitHubie i większości innych przeglądarek diffów.

ZnacznikZnaczenieGdzie się pojawia
Czerwony / -Linia usunięta z oryginałuLewy panel
Zielony / +Linia dodana w nowej wersjiPrawy panel
Żółty / obaLinia zmieniona: częściowa zmiana wewnątrz liniiOba panele
Bez koloruLinia bez zmian: wspólna dla obu wersjiOba panele
@@ ... @@Nagłówek fragmentu z git diff: numery liniiWynik git diff w terminalu
Diff słówZmiana na poziomie znaku lub słowa w zmienionej liniiWyróżniona w żółtej linii

Przykłady diffów do wypróbowania

Wyłap literówkę w konfiguracji

Przed
API_TIMEOUT=3000
Po
API_TIMEOUT=30000

Jedno dodatkowe zero zmienia limit czasu z 3 na 30 sekund. Diff checker wyłapie to w kilka sekund, a przy porównywaniu dwóch plików .env wzrokiem łatwo to przeoczyć.

Zmiana na poziomie słowa

Przed

Kliknij tutaj, aby się zalogować.

Po

Kliknij tutaj, aby się wylogować.

Diff słów wyróżnia zalogować → wylogować, tak samo jak w angielskim tekście wyróżniłby login → log in. Diff linii pokazałby tylko, że zmieniła się cała linia, a diff słów wskazuje faktyczną zmianę.

Porównaj dwie odpowiedzi API

Odpowiedź A
{  "id": 42,  "status": "draft",  "published": false}
Odpowiedź B
{  "id": 42,  "status": "published",  "published": true}

Diff od razu pokazuje, że dwa powiązane pola zmieniły się razem. To najszybszy sposób, by sprawdzić, czy wywołanie API zmieniające stan zrobiło to, co miało zrobić.

Porównaj dwie wersje funkcji

Przed
function total(items) {  let sum = 0;  for (const i of items) sum += i.price;  return sum;}
Po
function total(items) {  return items.reduce((sum, i) => sum + i.price, 0);}

Takie porównanie kodu online to najszybszy sposób na przegląd refaktoryzacji: diff linii pokazuje usuniętą pętlę imperatywną i dodaną wersję z reduce, więc przed commitem możesz potwierdzić, że zachowanie jest takie samo.

Odczytaj git diff

git diff
@@ -1,4 +1,4 @@ function greet(name) {-  return 'Hi ' + name;+  return `Hi ${name}`; }

Ta sama logika kolorów działa w git diff: linie zaczynające się od - (czerwone) są usunięte, od + (zielone) dodane, a @@ ... @@ to nagłówek fragmentu z zakresem linii. Wklej surowy wynik git diff, aby odczytać go w panelach obok siebie z podświetlaniem składni.

Częste błędy przy porównywaniu

  • Ignorowanie białych znaków, gdy mają znaczenie. Markdown, YAML i Python zwracają uwagę na wcięcia.
  • Przeglądanie tylko zielonych (dodanych) linii i przeoczenie ważnych czerwonych (usuniętych).
  • Założenie, że czysty diff dowodzi poprawności nowej wersji. Diff pokazuje tylko, *co się zmieniło*, a nie *czy zmiana jest słuszna*.
  • Porównywanie zminifikowanego JSON-a ze sformatowanym kodem bez wcześniejszej normalizacji jednego z nich. Każda linia będzie wyglądać inaczej, nawet jeśli dane są takie same.
  • Poleganie na diffie obok siebie przy bardzo długich plikach bez szukania konkretnych słów kluczowych. Rób jedno i drugie: najpierw przejrzyj, potem Ctrl+F dla pola, które cię interesuje.

Porównanie tekstu: FAQ

Czym różni się porównywarka tekstów od diff checkera?
Niczym, to dwie nazwy tego samego narzędzia. Oba porównują dwa fragmenty tekstu i wyróżniają to, co dodano, usunięto lub zmieniono.
Czy mogę tym narzędziem porównać kod?
Tak. Porównanie tekstu działa dla kodu, JSON, SQL, Markdown, YAML, plików konfiguracyjnych i zwykłego tekstu. Widok diffu linii jest szczególnie przydatny przy przeglądzie kodu źródłowego.
Dlaczego programiści codziennie używają diffów?
Diffy napędzają przegląd kodu, śledzenie zmian, szukanie regresji i analizę po incydentach. git diff, widoki pull requestów i panele porównania w IDE to ta sama idea.
Czy ignorować białe znaki?
Tylko wtedy, gdy dla danego typu pliku nie mają znaczenia. W Pythonie, YAML i Markdown białe znaki są istotne i trzeba je porównywać. W większości innego kodu ich ignorowanie daje czystsze diffy.
Czy moje dane są bezpieczne w tym narzędziu?
Tak, porównanie odbywa się w całości w twojej przeglądarce. Tekst nie jest wysyłany ani zapisywany. Możesz bezpiecznie używać go z wewnętrznym kodem, konfiguracją i przykładowymi danymi klientów.
Jak porównać kod online?
Wklej dwie wersje kodu do lewego i prawego panelu, a narzędzie od razu wyróżni różnice: usunięte linie na czerwono, dodane na zielono, a zmiany słów wewnątrz zmienionych linii. Działa z każdym językiem (JavaScript, Python, Java, SQL, JSON, YAML), bo porównuje sam tekst. Bez wysyłania plików i bez rejestracji: porównanie działa w przeglądarce.
Czym jest diff kodu?
Diff kodu to zbiór zmian między dwiema wersjami pliku: które linie dodano, usunięto lub zmieniono. To fundament kontroli wersji: każdy commit, pull request i przegląd kodu czyta się jako diff. To narzędzie pokazuje ten sam widok dodanych, usuniętych i zmienionych linii co git diff i GitHub, ale dla dowolnych dwóch wklejonych fragmentów, bez repozytorium.
Czy mogę zobaczyć różnice między dwoma plikami?
Tak. Otwórz każdy plik, skopiuj jego zawartość na jedną stronę porównania, a diff wyróżni każdą różniącą się linię. Do kodu i danych strukturalnych używaj trybu diffu linii, a *ignorowanie białych znaków* włącz, gdy zmiany samego formatowania tworzą niepotrzebny szum.

Dowiedz się więcej

Inne narzędzia dla programistów

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ