Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

git-diff — Online w chmurze

Uruchom git-diff w bezpłatnym dostawcy hostingu OnWorks w systemie Ubuntu Online, Fedora Online, emulatorze online systemu Windows lub emulatorze online systemu MAC OS

To jest polecenie git-diff, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS

PROGRAM:

IMIĘ


git-diff — Pokaż zmiany pomiędzy zatwierdzeniami, zatwierdzeniami i drzewem roboczym itp

STRESZCZENIE


odrzutowiec diff [opcje] [ ] [--] [ ...]
odrzutowiec diff [opcje] --cached [ ] [--] [ ...]
odrzutowiec diff [opcje] [--] [ ...]
odrzutowiec diff [opcje]
odrzutowiec diff [opcje] [--no-index] [--]

OPIS


Pokaż zmiany pomiędzy drzewem roboczym a indeksem lub drzewem, zmiany pomiędzy indeksem
i drzewem, zmiany między dwoma drzewami, zmiany między dwoma obiektami typu blob lub zmiany
pomiędzy dwoma plikami na dysku.

odrzutowiec diff [--opcje] [--] [ ...]
Ten formularz służy do przeglądania zmian wprowadzonych w odniesieniu do indeksu (obszar przejściowy dla
następne zatwierdzenie). Innymi słowy, różnice są tym, czym jesteś mógłby powiedz Gitowi, żeby mówił dalej
dodaj do indeksu, ale nadal tego nie zrobiłeś. Zmiany te można przeprowadzić za pomocą git-
Dodaj(1).

odrzutowiec diff --no-index [--opcje] [--] [ ...]
Ten formularz służy do porównania podanych dwóch ścieżek w systemie plików. Można pominąć
--no-index opcja podczas uruchamiania polecenia w działającym drzewie kontrolowanym przez Git i at
co najmniej jedna ze ścieżek wskazuje poza działające drzewo lub podczas uruchamiania polecenia
poza działającym drzewem kontrolowanym przez Gita.

odrzutowiec diff [--opcje] --cached [ ] [--] [ ...]
Ten formularz służy do przeglądania zmian wprowadzonych dla następnego zatwierdzenia w stosunku do nazwanego
. Zwykle chciałbyś porównania z najnowszym zatwierdzeniem, więc jeśli tego nie zrobisz
dawać , domyślnie jest to HEAD. Jeśli HEAD nie istnieje (np. nienarodzone gałęzie) i
nie jest podany, pokazuje wszystkie etapowe zmiany. --staged jest synonimem --cached.

odrzutowiec diff [--opcje] [--] [ ...]
Ten formularz służy do przeglądania zmian, jakie masz w swoim drzewie roboczym w stosunku do nazwanego
. Możesz użyć HEAD, aby porównać to z najnowszym zatwierdzeniem lub nazwą gałęzi
porównać z końcem innej gałęzi.

odrzutowiec diff [--opcje] [--] [ ...]
Ma to na celu wyświetlenie zmian między dwoma dowolnymi .

odrzutowiec diff [--opcje] .. [--] [ ...]
Jest to równoznaczne z poprzednią formą. Jeśli z jednej strony zostanie pominięty, tak się stanie
mają taki sam efekt, jak użycie HEAD.

odrzutowiec diff [--opcje] ... [--] [ ...]
Formularz ten służy do przeglądania zmian w gałęzi zawierającej i do drugiej
, zaczynając od wspólnego przodka obu . „git diff A...B” jest
odpowiednik „git diff $(git-merge-base AB) B”. Możesz pominąć którykolwiek z nich ,
co ma taki sam efekt, jak użycie zamiast tego HEAD.

Na wszelki wypadek, jeśli robisz coś egzotycznego, należy zauważyć, że wszystkie
w powyższym opisie, z wyjątkiem dwóch ostatnich form, w których zastosowano oznaczenia „..”,
może być dowolny .

Aby uzyskać pełniejszą listę sposobów pisowni , zobacz sekcję „OKREŚLANIE WERSJI” w
gitrewizje(7). Jednak „różnica” polega na porównaniu dwóch Punkty końcowe, a nie zakresy i
oznaczenia zakresu („ .. " I " ... ") nie oznaczają zakresu jak
zdefiniowanych w rozdziale „OKREŚLENIE ZAKRESÓW” w gitrewizje(7).

odrzutowiec diff [opcje]
Ten formularz służy do wyświetlania różnic między surową zawartością dwóch obiektów typu blob.

OPCJE


-p, -u, --łatka
Wygeneruj łatkę (patrz sekcja dotycząca generowania łatki). To jest ustawienie domyślne.

-s, --no-patch
Pomiń wyjście różnicowe. Przydatne w przypadku poleceń takich jak git show, które pokazują łatkę według
default lub aby anulować efekt --patch.

-U , --unified=
Generuj różnice za pomocą linii kontekstu zamiast zwykłych trzech. Implikuje -str.

--surowe
Wygeneruj różnicę w formacie surowym.

--patch-z-rawem
Synonim dla -p --raw.

--minimalny
Poświęć dodatkowy czas, aby upewnić się, że generowana jest najmniejsza możliwa różnica.

--cierpliwość
Wygeneruj różnicę za pomocą algorytmu „różnica cierpliwości”.

--histogram
Wygeneruj różnicę za pomocą algorytmu „różnica histogramu”.

--diff-algorithm={cierpliwość|minimalny|histogram|myers}
Wybierz algorytm różnicowania. Warianty są następujące:

domyślnie, myers
Podstawowy algorytm różnic zachłannych. Obecnie jest to ustawienie domyślne.

minimalny
Poświęć dodatkowy czas, aby upewnić się, że generowana jest najmniejsza możliwa różnica.

cierpliwość
Użyj algorytmu „różnicy cierpliwości” podczas generowania poprawek.

histogram
Algorytm ten rozszerza algorytm cierpliwości, aby „obsługiwał rzadko występujące wspólne
elementy".

Na przykład, jeśli skonfigurowałeś zmienną diff.algorithm na wartość inną niż domyślna i
chcesz użyć domyślnego, musisz użyć opcji --diff-algorithm=default.

--stat[= [, [, ]]]
Wygeneruj plik diffstat. Domyślnie dla pliku zostanie użyte tyle miejsca, ile potrzeba
część nazwy pliku, a resztę dla części wykresu. Maksymalna szerokość jest domyślna dla terminala
szerokość lub 80 kolumn, jeśli nie jest podłączony do terminala, i może być zastąpiony przez .
Szerokość części nazwy pliku można ograniczyć, podając inną szerokość
po przecinku. Szerokość części wykresu można ograniczyć za pomocą
--stat-graph-width= (dotyczy wszystkich poleceń generujących wykres statystyk) lub przez
ustawienie diff.statGraphWidth= (nie wpływa na format git-patch). Dając A
trzeci parametr , możesz ograniczyć wyjście do pierwszego linie, podążał
przez ... jeśli jest ich więcej.

Parametry te można również ustawić indywidualnie za pomocą opcji --stat-width= ,
--stat-name-width= i --stat-count= .

--numstat
Podobne do --stat, ale pokazuje liczbę dodanych i usuniętych linii w notacji dziesiętnej i
nazwa ścieżki bez skrótu, aby była bardziej przyjazna dla komputera. W przypadku plików binarnych
wyprowadza dwa - zamiast mówić 0 0.

--krótkistat
Wypisuje tylko ostatnią linię formatu --stat zawierającą całkowitą liczbę zmodyfikowanych
plików, a także liczbę dodanych i usuniętych linii.

--dirstat[= ]
Wyprowadź rozkład względnej ilości zmian dla każdego podkatalogu. The
zachowanie --dirstat można dostosować, przekazując mu listę wartości oddzielonych przecinkami
parametry. Wartości domyślne są kontrolowane przez zmienną konfiguracyjną diff.dirstat
(Patrz git-config(1)). Dostępne są następujące parametry:

zmiany
Oblicz liczby dirstat, licząc linie, które zostały usunięte z
źródło lub dodane do miejsca docelowego. To ignoruje ilość czystego kodu
ruchy w pliku. Innymi słowy, zmiana kolejności wierszy w pliku nie jest
liczy się tak samo jak inne zmiany. Jest to zachowanie domyślne, gdy nie ma żadnego parametru
jest podawany.

linie
Oblicz liczby dirstat, wykonując regularną analizę różnic opartą na liniach i
sumowanie liczby usuniętych/dodanych linii. (W przypadku plików binarnych policz fragmenty 64-bajtowe
zamiast tego, ponieważ pliki binarne nie mają naturalnej koncepcji linii). To jest więcej
drogie zachowanie --dirstat niż zachowanie zmian, ale to się liczy
przestawił linie w pliku w takim samym stopniu, jak inne zmiany. Wynikowy wynik to
zgodne z tym, co otrzymujesz z innych opcji --*stat.

pliki
Oblicz liczby dirstat, licząc liczbę zmienionych plików. Każdy się zmienił
plik liczy się jednakowo w analizie dirstat. To jest najtańsze obliczeniowo
--dirstat zachowanie, ponieważ w ogóle nie musi patrzeć na zawartość pliku.

łączny
Policz zmiany w katalogu podrzędnym również dla katalogu nadrzędnego. Zauważ to
w przypadku stosowania wartości skumulowanych suma podanych wartości procentowych może przekroczyć 100%. The
zachowanie domyślne (niekumulacyjne) można określić za pomocą opcji niekumulatywnej
parametr.


Parametr całkowity określa procent odcięcia (domyślnie 3%). Katalogi
wkład mniejszy niż ten procent zmian nie jest pokazywany w danych wyjściowych.

Przykład: Poniższe zlicza zmienione pliki, ignorując katalogi z less
niż 10% całkowitej liczby zmienionych plików i gromadzenie liczby katalogów podrzędnych
w katalogach nadrzędnych: --dirstat=files,10,cumulative.

--streszczenie
Wygeneruj skondensowane podsumowanie rozszerzonych informacji nagłówkowych, takich jak kreacje, zmiany nazw
i zmiany trybu.

--łatka-ze statystyką
Synonim dla -p --stat.

-z
Gdy podano --raw, --numstat, --name-only lub --name-status, nie munge
ścieżki i używaj NUL jako terminatorów pól wyjściowych.

Bez tej opcji, każda ścieżka wyjściowa będzie miała TAB, LF, podwójne cudzysłowy i
znaki ukośnika odwrotnego zastąpione odpowiednio przez \t, \n, \", i \\ oraz nazwę ścieżki
zostaną ujęte w podwójne cudzysłowy, jeśli wystąpiła którakolwiek z tych zamian.

--tylko nazwa
Pokaż tylko nazwy zmienionych plików.

--nazwa-status
Pokaż tylko nazwy i status zmienionych plików. Zobacz opis filtru --diff
opcję określającą, co oznaczają litery statusu.

--moduł podrzędny[= ]
Określ sposób wyświetlania różnic w modułach podrzędnych. Kiedy --submodule lub --submodule=log
podano, log format jest używany. Ten format zawiera listę zatwierdzeń w zakresie takim jak git-
podmoduł(1) podsumowanie tak. Pominięcie opcji --submodule lub określenie
--submodule=short, używa krótki format. Ten format pokazuje tylko nazwy plików
zatwierdzenia na początku i na końcu zakresu. Można dostosować za pomocą modułu diff.submodule
zmienna konfiguracyjna.

--kolor[= ]
Pokaż różnicę kolorów. --kolor (tj. bez =) jest tym samym co --color=always.
może mieć wartość zawsze, nigdy lub automatycznie. Można to zmienić za pomocą color.ui i
ustawienia konfiguracyjne color.diff.

--brak koloru
Wyłącz kolorowe różnice. Można tego użyć do zastąpienia ustawień konfiguracyjnych. To jest
tak samo jak --color=nigdy.

--różnica-słów[= ]
Pokaż różnicę słów, używając rozgraniczyć zmienione słowa. Domyślnie słowa są
oddzielone białymi znakami; zobacz --word-diff-regex poniżej. The domyślnie zwykły,
i musi być jednym z:

kolor
Zaznacz zmienione słowa używając tylko kolorów. Implikuje --kolor.

zwykły
Pokaż słowa jako [-usunięte-] i {+dodane+}. Nie podejmuje żadnych prób ucieczki
ograniczniki, jeśli pojawiają się na wejściu, więc dane wyjściowe mogą być niejednoznaczne.

porcelana
Użyj specjalnego formatu opartego na wierszach, przeznaczonego do używania skryptów.
Dodane/usunięte/niezmienione przebiegi są drukowane w zwykłym ujednoliconym formacie różnicowym,
zaczynając od znaku +/-/` ` na początku wiersza i kończąc na
koniec linii. Nowe wiersze na wejściu są reprezentowane przez tyldę ~ w wierszu
własny.

Żaden
Ponownie wyłącz różnicowanie słów.

Zwróć uwagę, że pomimo nazwy pierwszego trybu kolor służy do podświetlenia zmienionego
części we wszystkich trybach, jeśli są włączone.

--word-diff-regex=
Używać zdecydować, czym jest słowo, zamiast brać pod uwagę ciągi innych niż białe znaki
być słowem. Oznacza również --word-diff, chyba że zostało już włączone.

Każde nienakładające się dopasowanie uważa się za słowo. Wszystko pomiędzy
te dopasowania są traktowane jako białe znaki i ignorowane (!) w celu znalezienia
różnice. Możesz chcieć dołączyć |[^[:space:]] do swojego wyrażenia regularnego, aby utworzyć
upewnij się, że pasuje do wszystkich znaków innych niż białe znaki. Dopasowanie zawierające znak nowej linii to
po cichu obcięte (!) w nowej linii.

Na przykład --word-diff-regex=. potraktuje każdy znak jako słowo i,
odpowiednio, pokaż różnice znak po znaku.

Wyrażenie regularne można również ustawić za pomocą sterownika różnicowego lub opcji konfiguracji, patrz
gitatrybuty(1) lub git-config(1). Podanie go jawnie zastępuje dowolny sterownik różnicowy lub
ustawienie konfiguracji. Sterowniki Diff zastępują ustawienia konfiguracji.

--color-words[= ]
Odpowiednik --word-diff=color plus (jeśli podano wyrażenie regularne)
--word-diff-regex= .

--nie-zmiana nazwy
Wyłącz wykrywanie zmiany nazwy, nawet jeśli plik konfiguracyjny zawiera domyślną opcję do zrobienia
tak.

--sprawdzać
Ostrzegaj, jeśli zmiany wprowadzają błędy spacji. To, co jest uważane za błędy spacji, to
kontrolowane przez konfigurację core.whitespace. Domyślnie końcowe spacje
(w tym linie, które składają się wyłącznie z białych znaków) i znak spacji
bezpośrednio po którym następuje znak tabulacji wewnątrz początkowego wcięcia linii są
uważane za białe znaki. Wychodzi ze statusem niezerowym, jeśli zostaną znalezione problemy. Nie
kompatybilny z --exit-code.

--ws-error-highlight=
Podświetl błędy spacji w wierszach określonych przez w kolorze wskazanym przez
kolor.różnica.biała przestrzeń. jest oddzieloną przecinkami listą starego, nowego kontekstu. Gdy
ta opcja nie jest podana, podświetlane są tylko błędy spacji w nowych liniach. Np
--ws-error-highlight=new,old podkreśla błędy spacji zarówno w usuniętych, jak i dodanych
linie. all może być używany jako skrót dla starego, nowego kontekstu.

--pełny indeks
Zamiast pierwszej garści znaków pokaż pełny obiekt blob przed i po obrazie
nazwy obiektów w wierszu „index” podczas generowania danych wyjściowych w formacie poprawki.

--dwójkowy
Oprócz --full-index, wyprowadź binarną różnicę, którą można zastosować za pomocą git-apply.

--skrót[= ]
Zamiast pokazywać pełną 40-bajtową szesnastkową nazwę obiektu w danych wyjściowych w formacie diff-raw
i wiersze nagłówka drzewa różnic pokazują tylko częściowy przedrostek. Jest to niezależne od
Opcja --full-index powyżej, która kontroluje format wyjściowy łatki różnicowej. Niestandardowe
liczbę cyfr można określić za pomocą opcji --abbrev= .

-B[ ][/ ], --break-rewrites[=[ ][/ ]]
Podziel pełne przepisanie zmian na pary usuwania i tworzenia. To służy dwóm
cele:

Wpływa to na sposób zmiany, która sprowadza się do całkowitego przepisania pliku, a nie jako seria
delecji i insercji zmieszanych razem z bardzo nielicznymi pasującymi liniami
tekstowo jako kontekst, ale jako pojedyncze usunięcie wszystkiego starego, po którym następuje a
pojedyncze wstawienie wszystkiego nowego, a liczba m kontroluje ten aspekt -B
opcja (domyślnie 60%). -B/70% określa, że ​​mniej niż 30% oryginału powinno
pozostanie w wyniku, aby Git uznał to za całkowite przepisanie (tzn
wynikowa łatka będzie serią usunięć i wstawek zmieszanych z kontekstem
linie).

W przypadku użycia z -M, całkowicie przepisany plik jest również uważany za źródło a
zmień nazwę (zwykle -M traktuje tylko plik, który zniknął jako źródło zmiany nazwy),
a liczba n steruje tym aspektem opcji -B (domyślnie 50%). -B20%
określa, że ​​zmiana z dodawaniem i usuwaniem w porównaniu do 20% lub więcej
rozmiar pliku kwalifikują się do odebrania jako możliwe źródło zmiany nazwy na
inny plik.

-M[ ], --find-renames[= ]
Wykryj zmiany nazw. Jeśli podano n, jest to próg na indeksie podobieństwa (tj
ilość dodanych/usuniętych danych w porównaniu z rozmiarem pliku). Na przykład -M90% oznacza
Git powinien rozważyć parę usuń/dodaj jako zmianę nazwy, jeśli więcej niż 90% pliku
nie zmienił się. Bez znaku % liczbę należy czytać jako ułamek z a
przed nim kropka dziesiętna. To znaczy, -M5 staje się 0.5, a zatem jest tym samym, co -M50%.
Podobnie, -M05 jest tym samym, co -M5%. Aby ograniczyć wykrywanie do dokładnych zmian nazw, użyj opcji -M100%.
Domyślny wskaźnik podobieństwa to 50%.

-C[ ], --znajdź-kopie[= ]
Wykrywaj kopie i zmiany nazw. Zobacz także --find-copies-harder. Jeśli podano n, to
ma takie samo znaczenie jak dla -M .

--znajdź kopie-trudniej
Ze względu na wydajność domyślnie opcja -C znajduje kopie tylko wtedy, gdy oryginalny plik
kopii został zmodyfikowany w tym samym zestawie zmian. Ta flaga sprawia, że ​​polecenie sprawdza
pliki niezmodyfikowane jako kandydaci na źródło kopii. To jest bardzo drogie
w przypadku dużych projektów, więc używaj go ostrożnie. Podanie więcej niż jednej opcji -C
ma ten sam efekt.

-D, --nieodwracalne-usuń
Pomiń preimage dla usunięć, tj. wydrukuj tylko nagłówek, ale nie różnicę między
preimage i /dev/null. Wynikowa łatka nie jest przeznaczona do nakładania z łatką lub
git zastosuj; jest to przeznaczone wyłącznie dla osób, które chcą po prostu skoncentrować się na przeglądaniu
tekst po zmianie. Ponadto na wyjściu oczywiście brakuje wystarczającej ilości informacji
zastosować taką łatkę w odwrotnej kolejności, nawet ręcznie, stąd nazwa opcji.

Gdy jest używane razem z -B, pomiń także preimage w części usuwającej a
usuń/utwórz parę.

-l
Opcje -M i -C wymagają czasu przetwarzania O(n^2), gdzie n jest liczbą
potencjalne cele zmiany nazwy/kopiowania. Ta opcja uniemożliwia uruchomienie wykrywania zmiany nazwy/kopiowania
jeśli liczba celów zmiany nazwy/kopiowania przekracza określoną liczbę.

--diff-filter=[(A|C|D|M|R|T|U|X|B)...[*]]
Wybierz tylko pliki, które są Dodane (A), Skopiowane (C), Usunięte (D), Zmodyfikowane (M), Zmieniono nazwę
(R), mają zmieniony typ (tj. zwykły plik, dowiązanie symboliczne, submoduł, ...) (T), są
Niepołączone (U), są nieznane (X) lub ich parowanie zostało przerwane (B). Dowolna kombinacja
można użyć wszystkich znaków filtru (w tym żadnego). Po dodaniu * (wszystko albo nic).
do kombinacji, wszystkie ścieżki są zaznaczone, jeśli istnieje plik pasujący do innych
kryteria w porównaniu; jeśli nie ma pliku spełniającego inne kryteria, nic
jest wybrany.

-S
Poszukaj różnic, które zmieniają liczbę wystąpień określonego ciągu
(tj. dodawanie/usuwanie) w pliku. Przeznaczony do użytku skryptera.

Jest to przydatne, gdy szukasz dokładnego bloku kodu (takiego jak struktura) i chcesz
poznać historię tego bloku od momentu jego powstania: skorzystaj z funkcji
iteracyjnie, aby wprowadzić interesujący blok w obrazie wstępnym z powrotem do -S i kontynuować
dopóki nie otrzymasz pierwszej wersji bloku.

-G
Poszukaj różnic, których tekst poprawki zawiera pasujące dodane/usunięte linie .

Aby zilustrować różnicę między -S --pickaxe-regex i -G , rozważać
zatwierdzenie z następującą różnicą w tym samym pliku:

+ return !regexec(regexp, two->ptr, 1, ®match, 0);
...
- hit = !regexec(regexp, mf2.ptr, 1, ®match, 0);

Podczas gdy git log -G"regexec\(regexp" pokaże to zatwierdzenie, git log -S"regexec\(regexp"
--pickaxe-regex nie będzie (ponieważ liczba wystąpień tego ciągu nie
zmiana).

Zobacz kilof wejście w gitdiffcore(7), aby uzyskać więcej informacji.

-- kilof-wszystko
Kiedy -S lub -G znajdzie zmianę, pokaż wszystkie zmiany w tym zestawie zmian, a nie tylko
pliki zawierające zmiany w .

--kif-regex
leczyć podane do -S jako rozszerzone wyrażenie regularne POSIX do dopasowania.

-O
Wyprowadź poprawkę w kolejności określonej w pliku , który ma jeden glob powłoki
wzór na linię. To zastępuje zmienną konfiguracyjną diff.orderFile (patrz git-
config(1)). Aby anulować diff.orderFile, użyj -O/dev/null.

-R
Zamień dwa wejścia; to znaczy, pokaż różnice między indeksem lub plikiem na dysku a drzewem
zawartość

--względny[= ]
Gdy jest uruchamiany z podkatalogu projektu, można mu nakazać wykluczenie zmian na zewnątrz
katalog i pokaż powiązane z nim nazwy ścieżek za pomocą tej opcji. Kiedy nie jesteś w środku
podkatalog (np. w czystym repozytorium), możesz określić, który podkatalog ma zostać utworzony
wyjście względem przez podanie a jako argument.

-tekst
Traktuj wszystkie pliki jako tekst.

--ignore-space-at-eol
Ignoruj ​​zmiany w białych znakach w EOL.

-b, --ignore-zmiana-spacji
Ignoruj ​​zmiany ilości białych znaków. To ignoruje białe znaki na końcu linii i
uważa wszystkie inne sekwencje jednego lub więcej białych znaków za równoważne.

-w, --ignore-all-space
Ignoruj ​​spacje podczas porównywania linii. To ignoruje różnice, nawet jeśli jedna linia ma
białe znaki, w których druga linia ich nie ma.

--ignoruj ​​puste linie
Ignoruj ​​zmiany, których wiersze są puste.

--inter-przystojniak-kontekst=
Pokaż w ten sposób kontekst między porcjami różnic, aż do określonej liczby wierszy
łączenie kawałków, które są blisko siebie.

-W, --kontekst-funkcji
Pokaż całe otaczające funkcje zmian.

--kod-wyjścia
Spraw, aby program zakończył się z kodami podobnymi do diff(1). Oznacza to, że wychodzi z 1, jeśli istnieje
były różnice, a 0 oznacza brak różnic.

--cichy
Wyłącz wszystkie wyjścia programu. Implikuje --exit-code.

--ext-diff
Zezwól na wykonanie zewnętrznego pomocnika różnic. Jeśli ustawisz zewnętrzny sterownik różnicowy za pomocą
gitatrybuty(5), musisz użyć tej opcji z git-log(1) i przyjaciele.

--no-ext-diff
Nie zezwalaj na zewnętrzne sterowniki różnicowe.

--textconv, --no-textconv
Zezwalaj (lub nie zezwalaj) na uruchamianie zewnętrznych filtrów konwersji tekstu podczas porównywania danych binarnych
pliki. Widzieć gitatrybuty(5) po szczegóły. Ponieważ filtry textconv to zazwyczaj a
konwersji jednokierunkowej, wynikowa różnica jest odpowiednia do spożycia przez ludzi, ale nie może
być zastosowany. Z tego powodu filtry textconv są domyślnie włączone tylko dla git-
diff(1) i git-log(1), ale nie dla łatka w formacie git(1) lub różnicowe polecenia instalacyjne.

--ignore-submodules[= ]
Ignoruj ​​zmiany w podmodułach w generowaniu różnic. może być albo „brak”,
„nieśledzone”, „brudne” lub „wszystkie”, co jest wartością domyślną. Użycie „none” spowoduje uwzględnienie
zmodyfikowany submoduł, gdy zawiera nieśledzone lub zmodyfikowane pliki lub jego HEAD
różni się od zatwierdzenia zarejestrowanego w superprojekcie i może być użyty do nadpisania dowolnego
ustawienia ignorować opcja w git-config(1) lub moduły git(5). Kiedy jest „nieśledzony”.
używane podmoduły nie są uważane za brudne, jeśli zawierają tylko nieśledzoną zawartość (ale
są nadal skanowane w poszukiwaniu zmodyfikowanej zawartości). Użycie „brudnego” ignoruje wszystkie zmiany w pliku
drzewie roboczym podmodułów, są tylko zmiany w zatwierdzeniach przechowywanych w superprojekcie
pokazany (tak było do wersji 1.7.0). Użycie opcji „wszystko” powoduje ukrycie wszystkich zmian w
podmoduły.

--src-przedrostek=
Pokaż podany przedrostek źródłowy zamiast „a/”.

--dst-przedrostek=
Pokaż podany prefiks miejsca docelowego zamiast „b/”.

--bez prefiksu
Nie pokazuj prefiksu źródła ani miejsca docelowego.

Aby uzyskać bardziej szczegółowe wyjaśnienie tych typowych opcji, zobacz także gitdiffcore(7).

...
The parametry, jeśli są podane, służą do ograniczenia różnicy do nazwanych ścieżek (you
może nadać nazwy katalogów i uzyskać różnicę dla wszystkich znajdujących się w nich plików).

RAW WYDAJNOŚĆ FORMAT


Surowy format wyjściowy z „git-diff-index”, „git-diff-tree”, „git-diff-files” i „git
diff --raw” są bardzo podobne.

Wszystkie te polecenia porównują dwa zestawy rzeczy; to, co jest porównywane, różni się:

git-diff-index
porównuje i pliki w systemie plików.

git-diff-index --cached
porównuje i indeks.

git-diff-tree [-r] [ ...]
porównuje drzewa nazwane przez dwa argumenty.

pliki git-diff [ ...]
porównuje indeks i pliki w systemie plików.

Polecenie „git-diff-tree” rozpoczyna swoje wyjście od wydrukowania skrótu tego, co jest
w porównaniu. Następnie wszystkie polecenia wypisują jedną linię wyjściową na każdy zmieniony plik.

Linia wyjściowa jest sformatowana w następujący sposób:

edycja w miejscu: 100644 100644 bcd1234... 0123456... M plik0
kopiuj-edytuj:100644 100644 abcd123... 1234567... C68 plik1 plik2
zmień nazwę-edytuj:100644 100644 abcd123... 1234567... R86 plik1 plik3
utwórz :000000 100644 0000000... 1234567... Plik4
usuń :100644 000000 1234567... 0000000... D plik5
niepołączony :000000 000000 0000000... 0000000... U plik6

To znaczy od lewej do prawej:

1. dwukropek.

2. tryb dla „src”; 000000 w przypadku tworzenia lub niepołączenia.

3. spacja.

4. tryb dla „dst”; 000000 w przypadku usunięcia lub niepołączenia.

5. spacja.

6. sha1 dla "źródło"; 0{40}, jeśli utworzono lub nie połączono.

7. spacja.

8. sha1 dla „dst”; 0{40} jeśli tworzenie, niepołączony lub „spójrz na drzewo pracy”.

9. spacja.

10. status, po którym następuje opcjonalny numer „punktacji”.

11. tabulator lub NUL kiedy -z używana jest opcja.

12. ścieżka do „src”

13. tabulator lub NUL kiedy -z opcja jest używana; istnieje tylko dla C lub R.

14. ścieżka dla "dst"; istnieje tylko dla C lub R.

15. LF lub NUL kiedy -z używana jest opcja, aby zakończyć rejestrację.

Możliwe litery statusu to:

· A: dodanie pliku

· C: kopiowanie pliku do nowego

· D: usunięcie pliku

· M: modyfikacja zawartości lub trybu pliku

· R: zmiana nazwy pliku

· T: zmiana typu pliku

· U: plik nie jest scalony (musisz dokończyć scalanie, zanim będzie można go zatwierdzić)

· X: „nieznany” typ zmiany (najprawdopodobniej błąd, zgłoś go)

Po literach statusu C i R zawsze następuje punktacja (oznaczająca procent
podobieństwo między źródłem a celem przesunięcia lub skopiowania). Litera statusu M może być
po którym następuje punktacja (oznaczająca procent odmienności) dla przepisywania plików.

jest pokazywany jako same zera, jeśli plik jest nowy w systemie plików i nie jest z nim zsynchronizowany
indeks.

Przykład:

:100644 100644 5be4a4...... 000000...... M plik.c

Gdy opcja -z nie jest używana, reprezentowane są znaki TAB, LF i lewy ukośnik w nazwach ścieżek
odpowiednio jako \t, \n i \\.

DIFF FORMAT DLA POŁĄCZENIA


„git-diff-tree”, „git-diff-files” i „git-diff --raw” mogą zająć -c or --cc opcja do
generuj dane wyjściowe diff również dla zatwierdzeń łączenia. Dane wyjściowe różnią się od opisanego formatu
powyżej w następujący sposób:

1. dla każdego rodzica jest dwukropek

2. jest więcej trybów "src" i "src" sha1

3. status to połączone znaki statusu dla każdego rodzica

4. brak opcjonalnego numeru „punktacji”.

5. pojedyncza ścieżka, tylko dla „dst”

Przykład:

::100644 100644 100644 fabadb8... cc95eb0... 4866510... MM opisz.c

Należy pamiętać, że połączony diff wyświetla tylko pliki, które zostały zmodyfikowane od wszystkich rodziców.

GENEROWANIE ŁATKI Z -P


Gdy „git-diff-index”, „git-diff-tree” lub „git-diff-files” są uruchamiane z -p opcja „git
różnica" bez --surowe opcja lub „git log” z opcją „-p”, nie tworzą
wyjście opisane powyżej; zamiast tego tworzą plik poprawki. Możesz dostosować kreację
takich poprawek poprzez zmienne środowiskowe GIT_EXTERNAL_DIFF i GIT_DIFF_OPTS.

To, co tworzy opcja -p, różni się nieco od tradycyjnego formatu diff:

1. Jest poprzedzony nagłówkiem „git diff”, który wygląda tak:

diff --git a/plik1 b/plik2

Nazwy plików a/ i b/ są takie same, chyba że dotyczy to zmiany nazwy/kopiowania. Zwłaszcza nawet
dla tworzenia lub usuwania jest /dev/null nie używany zamiast a/ lub b/
nazwy plików.

Gdy dotyczy zmiany nazwy/kopiowania, plik1 i plik2 pokazują nazwę pliku źródłowego
rename/copy i nazwa pliku, który tworzy odpowiednio rename/copy.

2. Po nim następuje jeden lub więcej rozszerzonych wierszy nagłówka:

stary tryb
nowy tryb
tryb usuniętych plików
nowy tryb plików
skopiuj z
kopiuj do
zmienić nazwę z
zmienić nazwę na
wskaźnik podobieństwa
wskaźnik odmienności
indeks ..

Tryby plików są drukowane jako 6-cyfrowe liczby ósemkowe, w tym typ pliku i plik
bity uprawnień.

Nazwy ścieżek w rozszerzonych nagłówkach nie zawierają przedrostków a/ i b/.

Wskaźnik podobieństwa to procent niezmienionych linii, a wskaźnik odmienności
jest procentem zmienionych linii. Jest to liczba całkowita zaokrąglona w dół, po której następuje a
znak procentu. Wartość wskaźnika podobieństwa 100% jest zatem zarezerwowana dla dwóch równych plików,
podczas gdy 100% odmienności oznacza, że ​​żadna linia ze starego pliku nie trafiła do nowego
jeden.

Linia indeksu zawiera sumę kontrolną SHA-1 przed i po zmianie. The Jest
włączone, jeśli tryb pliku się nie zmienia; w przeciwnym razie oddzielne linie wskazują stare
i nowy tryb.

3. Znaki TAB, LF, podwójny cudzysłów i odwrotny ukośnik w nazwach ścieżek są reprezentowane jako \t, \n,
odpowiednio \" i \\. Jeśli zachodzi taka potrzeba, to całość
ścieżka jest ujęta w podwójne cudzysłowy.

4. Wszystkie pliki plik1 na wyjściu odnoszą się do plików przed zatwierdzeniem, a wszystkie pliki plik2
pliki odnoszą się do plików po zatwierdzeniu. Stosowanie każdej zmiany do każdej z nich jest nieprawidłowe
plik po kolei. Na przykład ta łatka zamieni a i b:

diff --git a/ab/b
zmienić nazwę z a
zmienić nazwę na b
diff --git a/bb/a
zmienić nazwę z b
zmienić nazwę na a

ŁĄCZNY DIFF FORMAT


Każde polecenie generujące różnicę może przyjąć opcję -c lub --cc, aby utworzyć a połączony diff jeśli chodzi o komunikację i motywację
pokazuje połączenie. Jest to domyślny format podczas wyświetlania połączeń z git-diff(1) lub git-
pokazać(1). Zauważ też, że możesz podać opcję -m do dowolnego z tych poleceń, aby je wymusić
generowanie różnic z poszczególnymi rodzicami scalania.

A połączony diff format wygląda tak:

diff --combined opisz.c
indeks fabadb8,cc95eb0..4866510
--- a/opisz.c
+++ b/opisz.c
@@@ -98,20 -98,12 +98,20 @@@
powrót (data_a > data_b) ? -1 : (data_a == data_b) ? 0 : 1;
}

- static void opisz(char *arg)
-static void opisz(struct commit *cmit, int last_one)
++static void opisz(char *arg, int last_one)
{
+ znak bez znaku sha1[20];
+ zatwierdzenie struktury *cmit;
struct lista_zatwierdzeń *lista;
inicjalizacja statyczna int = 0;
nazwa_zatwierdzenia struktury *n;

+ if (get_sha1(arg, sha1) < 0)
+ użycie(opisz_użycie);
+ cmit = lookup_commit_reference(sha1);
+ jeśli (!cmit)
+ użycie(opisz_użycie);
+
if (! zainicjowane) {
zainicjowany = 1;
for_each_ref(get_name);

1. Poprzedza go nagłówek „git diff”, który wygląda tak (kiedy -c Jest opcja
używany):

diff -- plik złożony

lub tak (kiedy --cc używana jest opcja):

diff --cc plik

2. Po nim następuje jeden lub więcej rozszerzonych wierszy nagłówka (w tym przykładzie pokazano połączenie z
dwoje rodziców):

indeks , ..
tryb , ..
nowy tryb plików
tryb usuniętych plików ,

Tryb , .. linia pojawia się tylko wtedy, gdy co najmniej jeden z Jest
inny od reszty. Rozszerzone nagłówki z informacjami o wykrytych treściach
motion (zmiany nazw i wykrywanie kopiowania) są zaprojektowane do pracy z różnicą dwóch
i nie są używane przez połączony format różnic.

3. Po nim następuje dwuwierszowy nagłówek z pliku/do pliku

--- plik
+++ b/plik

Podobny do dwuwierszowego nagłówka dla tradycyjnego Ujednolicony diff, /dev/null służy do
sygnalizować utworzone lub usunięte pliki.

4. Format nagłówka fragmentu został zmodyfikowany, aby zapobiec przypadkowemu podaniu go przez ludzi
poprawka -p1. Połączony format różnic został stworzony do przeglądu zmian zatwierdzenia scalania i
nie był przeznaczony do zastosowania. Zmiana jest podobna do zmiany w rozszerzeniu wskaźnik
nagłówek:

@@@ @@@

Istnieją (liczba rodziców + 1) znaki @ w nagłówku porcji dla połączonej różnicy
Format.

W przeciwieństwie do tradycyjnego Ujednolicony diff, który pokazuje dwa pliki A i B z jednym
kolumna, która ma - (minus — pojawia się w A, ale jest usuwana w B), + (plus — brak w A, ale
dodany do B) lub przedrostek „ ” (spacja — bez zmian), ten format porównuje dwa lub więcej plików
plik1, plik2,... z jednym plikiem X i pokazuje, jak X różni się od każdego z plików N. Jedna kolumna
dla każdego pliku N jest dodawane do linii wyjściowej, aby zauważyć, jak różni się linia X
to.

A - znak w kolumnie N oznacza, że ​​wiersz pojawia się w pliku N, ale nie występuje
w wyniku. Znak + w kolumnie N oznacza, że ​​w wyniku pojawi się linia,
a fileN nie ma tej linii (innymi słowy, linia została dodana od punktu
opinia tego rodzica).

W powyższym przykładowym wyjściu sygnatura funkcji została zmieniona z obu plików (stąd dwa
- usunięcia zarówno z pliku 1, jak i pliku 2, plus ++ oznaczające, że jedna linia, która została dodana, nie
pojawiają się w pliku 1 lub pliku 2). Również osiem innych linii jest takich samych z file1, ale tak
nie pojawiają się w pliku 2 (stąd poprzedzone znakiem +).

Gdy jest pokazany przez git diff-tree -c, porównuje rodziców zatwierdzenia łączenia z łączeniem
wynik (tzn. file1..fileN są rodzicami). Kiedy jest pokazany przez git diff-files -c, porównuje
dwa nierozwiązane elementy nadrzędne scalania z plikiem drzewa roboczego (tj. plik1 to etap 2 aka
„nasza wersja”, plik2 to etap 3, czyli „ich wersja”).

INNE DIFF FORMATY


Opcja --summary opisuje nowo dodane, usunięte, zmienione nazwy i skopiowane pliki. --stat
opcja dodaje różnica stat(1) wykres do wyjścia. Opcje te można łączyć z innymi
opcje, takie jak -p, i są przeznaczone do spożycia przez ludzi.

Podczas wyświetlania zmiany, która obejmuje zmianę nazwy lub kopię, wyjście --stat formatuje plik
ścieżki w zwięzły sposób, łącząc wspólne przedrostki i sufiksy nazw ścieżek. na przykład
zmiana, która przenosi arch/i386/Makefile do arch/x86/Makefile podczas modyfikowania 4 linii będzie
pokazane tak:

arch/{i386 => x86}/Makefile | 4 +--

Opcja --numstat daje różnica stat(1) informacja, ale jest przeznaczona dla łatwiejszej maszyny
konsumpcja. Wpis w danych wyjściowych --numstat wygląda następująco:

1 2 PRZECZYTAJ
3 1 arch/{i386 => x86}/Makefile

To znaczy od lewej do prawej:

1. liczba dodanych linii;

2. zakładka;

3. liczba usuniętych wierszy;

4. zakładka;

5. nazwa ścieżki (ewentualnie z informacją o zmianie nazwy/skopiujeniu);

6. nowa linia.

Gdy działa opcja -z output, dane wyjściowe są formatowane w następujący sposób:

1 2 PRZECZYTAJ NUL
3 1 NUL arch/i386/Makefile NUL arch/x86/Makefile NUL

Czyli:

1. liczba dodanych linii;

2. zakładka;

3. liczba usuniętych wierszy;

4. zakładka;

5. NUL (istnieje tylko po zmianie nazwy/skopiowaniu);

6. nazwa ścieżki w przedobrazie;

7. NUL (istnieje tylko po zmianie nazwy/skopiowaniu);

8. nazwa ścieżki w obrazie pocztowym (istnieje tylko po zmianie nazwy/skopiowaniu);

9. NUL.

Dodatkowa wartość NUL przed ścieżką obrazu wstępnego w przypadku o zmienionej nazwie ma na celu zezwolenie skryptom, które odczytują plik
wyjście, aby stwierdzić, czy bieżący odczytywany rekord jest rekordem jednościeżkowym, czy zmianą nazwy/kopią
nagrywać bez wcześniejszego czytania. Po przeczytaniu dodanych i usuniętych linii odczyt do NUL
dałoby nazwę ścieżki, ale jeśli jest to NUL, rekord pokaże dwie ścieżki.

PRZYKŁADY


Różne sposoby sprawdzania drzewa roboczego

$ różnica git (1)
$ git diff --cached (2)
$ git diff GŁOWA (3)

1. Zmiany w drzewie roboczym nie zostały jeszcze przygotowane do następnego zatwierdzenia.
2. Zmiany między indeksem a ostatnim zatwierdzeniem; co byś popełnił, gdybyś to zrobił
uruchom „git commit” bez opcji „-a”.
3. Zmiany w drzewie roboczym od czasu ostatniego zatwierdzenia; co byś popełnił, gdyby
uruchamiasz „git commit -a”

Porównanie z dowolnymi zatwierdzeniami

$ test różnicowy git (1)
$ git diff HEAD -- ./test (2)
$ git diff GŁOWA^ GŁOWA (3)

1. Zamiast używać końcówki bieżącej gałęzi, porównaj z końcówką „testu”
gałąź.
2. Zamiast porównywać z końcówką gałęzi „testowej”, porównaj z końcówką gałęzi
bieżącą gałąź, ale ogranicz porównanie do pliku „test”.
3. Porównaj wersję przed ostatnim zatwierdzeniem i ostatnim zatwierdzeniem.

Porównywanie oddziałów

$ git diff mistrz tematu (1)
$ temat git diff..master (2)
$ temat git diff...master (3)

1. Zmiany pomiędzy końcówkami tematu i gałęziami głównymi.
2. Jak powyżej.
3. Zmiany, które zaszły w gałęzi głównej od momentu uruchomienia gałęzi tematycznej
Wyłącz to.

Ograniczanie wyjścia różnicowego

$ git diff --diff-filter=MRC (1)
$ git diff --nazwa-status (2)
$ git diff arch/i386 include/asm-i386 (3)

1. Pokaż tylko modyfikacje, zmianę nazwy i kopiowanie, ale nie dodawanie ani usuwanie.
2. Pokaż tylko nazwy i charakter zmian, ale nie rzeczywiste wyniki różnic.
3. Ogranicz wyjście różnicowe do nazwanych poddrzew.

Mungowanie wyjścia różnicowego

$ git diff --znajdź-trudniejsze-kopie -B -C (1)
$ git różnica -R (2)

1. Poświęć dodatkowe cykle, aby znaleźć zmiany nazw, kopie i całkowite przepisanie (bardzo drogie).
2. Różnica wyjściowa w odwrotnej kolejności.

Użyj git-diff online, korzystając z usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

Komendy systemu Linux

Ad