EngelsFransSpaans

Ad


OnWorks-favicon

git-diff - Online in de cloud

Voer git-diff uit in de gratis hostingprovider van OnWorks via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is het commando git-diff dat kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


git-diff - Toon veranderingen tussen commits, commit en werkende boom, etc

KORTE INHOUD


git diff [opties] [ ] [--] [ ...]
git diff [opties] --in cache opgeslagen [ ] [--] [ ...]
git diff [opties] [--] [ ...]
git diff [opties]
git diff [opties] [--geen-index] [--]

PRODUCTBESCHRIJVING


Toon veranderingen tussen de werkende boom en de index of een boom, veranderingen tussen de index
en een boom, veranderingen tussen twee bomen, veranderingen tussen twee blobobjecten, of veranderingen
tussen twee bestanden op schijf.

git diff [--opties] [--] [ ...]
Dit formulier is bedoeld om de wijzigingen te bekijken die u hebt aangebracht ten opzichte van de index (verzamelgebied voor de
volgende opdracht). Met andere woorden, de verschillen zijn wat jij bent kon vertel Git om verder te gaan
toevoegen aan de index, maar dat heeft u nog steeds niet gedaan. U kunt deze wijzigingen doorvoeren met behulp van git-
toevoegen(1).

git diff --no-index [--opties] [--] [ ...]
Dit formulier is bedoeld om de twee gegeven paden op het bestandssysteem te vergelijken. Je kunt de
--no-index optie bij het uitvoeren van het commando in een werkende boom die wordt bestuurd door Git en at
minstens één van de paden wijst buiten de werkboom, of tijdens het uitvoeren van de opdracht
buiten een werkende boom die wordt beheerd door Git.

git diff [--opties] --in cache opgeslagen [ ] [--] [ ...]
Dit formulier is bedoeld om de wijzigingen te bekijken die je hebt doorgevoerd voor de volgende commit ten opzichte van de genoemde
. Normaal gesproken zou je een vergelijking willen met de laatste commit, dus als je dat niet doet
geven , standaard ingesteld op HEAD. Als HEAD niet bestaat (bijvoorbeeld ongeboren takken) en
is niet gegeven, het toont alle gefaseerde veranderingen. --staged is een synoniem van --cached.

git diff [--opties] [--] [ ...]
Dit formulier is bedoeld om de wijzigingen in uw werkboom te bekijken ten opzichte van de genoemde
. Je kunt HEAD gebruiken om het te vergelijken met de laatste commit, of met een branchnaam
vergelijk met de punt van een andere tak.

git diff [--opties] [--] [ ...]
Dit is om de veranderingen tussen twee willekeurige te bekijken .

git diff [--opties] .. [--] [ ...]
Dit is synoniem met de vorige vorm. Als aan de ene kant wordt weggelaten, zal dat wel gebeuren
hetzelfde effect hebben als het gebruik van HEAD.

git diff [--opties] ... [--] [ ...]
Dit formulier is bedoeld om de wijzigingen op de tak tot en met de tweede te bekijken
, beginnend bij een gemeenschappelijke voorouder van beide . "git diff A...B" is
gelijk aan "git diff $(git-merge-base AB) B". Je kunt er één van weglaten ,
wat hetzelfde effect heeft als het gebruik van HEAD.

Voor het geval u iets exotisch doet, moet u er rekening mee houden dat alle
in de bovenstaande beschrijving, behalve in de laatste twee vormen die ".."-notaties gebruiken,
kan elk zijn .

Voor een completere lijst met manieren om te spellen , zie het gedeelte "HERZIENINGEN SPECIFICEREN" in
gitrevisies(7). Bij 'diff' gaat het echter om het vergelijken van twee eindpunten, niet bereiken, en de
bereiknotaties (" .. " En " ... ") bedoelen niet een bereik als
gedefinieerd in de sectie "SPECIFICATIEBEREIK" in gitrevisies(7).

git diff [opties]
Dit formulier is bedoeld om de verschillen tussen de onbewerkte inhoud van twee blob-objecten te bekijken.

OPTIES


-p, -u, --patch
Genereer een patch (zie het gedeelte over het genereren van patches). Dit is de standaardinstelling.

-s, --geen-patch
Onderdruk diff-uitvoer. Handig voor commando's zoals git show die de patch laten zien door
standaard, of om het effect van --patch te annuleren.

-U , --unified=
Genereer diffs met contextregels in plaats van de gebruikelijke drie. Impliceert -p.

--rauw
Genereer de diff in onbewerkt formaat.

--patch-met-raw
Synoniem voor -p --raw.

--minimaal
Besteed extra tijd om ervoor te zorgen dat het kleinst mogelijke verschil wordt geproduceerd.

--geduld
Genereer een diff met behulp van het algoritme "geduld diff".

--histogram
Genereer een diff met behulp van het algoritme "histogram diff".

--diff-algoritme={geduld|minimaal|histogram|myers}
Kies een diff-algoritme. De varianten zijn als volgt:

standaard, myers
Het fundamentele hebzuchtige diff-algoritme. Momenteel is dit de standaard.

minimaal
Besteed extra tijd om ervoor te zorgen dat het kleinst mogelijke verschil wordt geproduceerd.

geduld
Gebruik het "geduld diff"-algoritme bij het genereren van patches.

histogram
Dit algoritme breidt het geduldalgoritme uit om "weinig voorkomend gemeenschappelijk gedrag te ondersteunen."
elementen".

Als u bijvoorbeeld de variabele diff.algorithm hebt geconfigureerd op een niet-standaardwaarde en
Als je de standaard wilt gebruiken, dan moet je de optie --diff-algorithm=default gebruiken.

--stat[= [, [, ]]]
Genereer een diffstat. Standaard wordt zoveel ruimte gebruikt als nodig is voor de
bestandsnaamgedeelte en de rest voor het grafiekgedeelte. De maximale breedte is standaard ingesteld op terminal
breedte, of 80 kolommen indien niet verbonden met een terminal, en kan worden overschreven door .
De breedte van het bestandsnaamgedeelte kan worden beperkt door een andere breedte op te geven
na een komma. De breedte van het grafiekgedeelte kan worden beperkt door gebruik te maken van
--stat-grafiekbreedte= (is van invloed op alle opdrachten die een statistische grafiek genereren) of door
instelling diff.statGraphWidth= (heeft geen invloed op git format-patch). Door het geven van een
derde parameter , kunt u de uitvoer beperken tot de eerste lijnen, gevolgd
door ... als er meer zijn.

Deze parameters kunnen ook individueel worden ingesteld met --stat-width= ,
--stat-naam-breedte= en --stat-count= .

--getalstat
Vergelijkbaar met --stat, maar toont het aantal toegevoegde en verwijderde regels in decimale notatie en
padnaam zonder afkorting, om het machinevriendelijker te maken. Voor binaire bestanden:
geeft twee uitgangen - in plaats van 0 0 te zeggen.

--kortstat
Voer alleen de laatste regel van het --stat-formaat uit, met daarin het totale aantal wijzigingen
bestanden, evenals het aantal toegevoegde en verwijderde regels.

--dirstat[= ]
Voer de verdeling van het relatieve aantal wijzigingen voor elke submap uit. De
Het gedrag van --dirstat kan worden aangepast door er een door komma's gescheiden lijst van door te geven
parameters. De standaardinstellingen worden bepaald door de configuratievariabele diff.dirstat
(Zie git-config(1)). De volgende parameters zijn beschikbaar:

veranderingen
Bereken de dirstat-getallen door de regels te tellen die uit het bestand zijn verwijderd
bron of toegevoegd aan de bestemming. Dit negeert de hoeveelheid pure code
bewegingen binnen een bestand. Met andere woorden, het herschikken van regels in een bestand is dat niet
evenveel geteld als andere wijzigingen. Dit is het standaardgedrag als er geen parameter is
is gegeven.

lijnen
Bereken de dirstat-getallen door de reguliere lijngebaseerde diff-analyse uit te voeren, en
het optellen van de verwijderde/toegevoegde regels. (Voor binaire bestanden tel je chunks van 64 bytes
in plaats daarvan, aangezien binaire bestanden geen natuurlijk concept van lijnen hebben). Dit is een meer
duur --dirstat-gedrag dan het veranderingsgedrag, maar het telt wel mee
herschikte regels binnen een bestand net zo goed als andere wijzigingen. De resulterende uitvoer is
consistent met wat u krijgt van de andere --*stat-opties.

bestanden
Bereken de dirstat-nummers door het aantal gewijzigde bestanden te tellen. Ieder veranderde
bestand telt evenveel mee in de dirstat-analyse. Dit is rekenkundig het goedkoopst
--dirstat gedrag, omdat het helemaal niet naar de bestandsinhoud hoeft te kijken.

cumulatieve
Tel wijzigingen in een onderliggende map ook voor de bovenliggende map. Let daar op
bij cumulatief kan de som van de gerapporteerde percentages groter zijn dan 100%. De
standaard (niet-cumulatief) gedrag kan worden gespecificeerd met het niet-cumulatieve
parameter.


Een geheel getalparameter specificeert een afkappercentage (standaard 3%). Telefoonboeken
die minder dan dit percentage van de veranderingen bijdragen, worden niet weergegeven in de uitvoer.

Voorbeeld: Het volgende telt de gewijzigde bestanden, terwijl mappen met minder worden genegeerd
dan 10% van het totale aantal gewijzigde bestanden, en het accumuleren van de aantallen onderliggende mappen
in de bovenliggende mappen: --dirstat=files,10,cumulatief.

--samenvatting
Voer een verkorte samenvatting uit van uitgebreide headerinformatie, zoals creaties en hernoemingen
en moduswijzigingen.

--patch-met-stat
Synoniem voor -p --stat.

-z
Als --raw, --numstat, --name-only of --name-status is opgegeven, mag u niet munge
padnamen en gebruik NUL's als terminators van het uitvoerveld.

Zonder deze optie zal elke padnaamuitvoer TAB, LF, dubbele aanhalingstekens en
backslash-tekens vervangen door respectievelijk \t, \n, \", en \\, en de padnaam
wordt tussen dubbele aanhalingstekens geplaatst als een van deze vervangingen heeft plaatsgevonden.

--alleen-naam
Toon alleen namen van gewijzigde bestanden.

--naam-status
Toon alleen namen en status van gewijzigde bestanden. Zie de beschrijving van het --diff-filter
optie over wat de statusletters betekenen.

--submodule[= ]
Geef op hoe verschillen in submodules worden weergegeven. Wanneer --submodule of --submodule=log
wordt gegeven, de inloggen formaat wordt gebruikt. Dit formaat geeft een overzicht van de commits in het bereik zoals git-
submodule(1) samenvatting wel. De optie --submodule weglaten of specificeren
--submodule=kort, gebruikt de kort formaat. Dit formaat toont alleen de namen van de
commits aan het begin en einde van het bereik. Kan worden aangepast via de diff.submodule
variabele configuratie.

--kleur[= ]
Toon gekleurd verschil. --kleur (dwz zonder =) is hetzelfde als --color=altijd.
kan een van altijd, nooit of automatisch zijn. Het kan worden gewijzigd door de color.ui en
color.diff configuratie-instellingen.

--geen kleur
Schakel kleurverschil uit. Dit kan worden gebruikt om configuratie-instellingen te overschrijven. Het is de
hetzelfde als --color=nooit.

--woord-diff[= ]
Toon een woordverschil, met behulp van de om gewijzigde woorden af ​​te bakenen. Standaard zijn woorden dat
begrensd door witruimte; zie --word-diff-regex hieronder. De standaard ingesteld op vlakte,
en moet een van zijn:

kleur
Markeer gewijzigde woorden met alleen kleuren. Impliceert --kleur.

vlakte
Toon woorden als [-verwijderd-] en {+toegevoegd+}. Onderneemt geen pogingen om aan de situatie te ontsnappen
scheidingstekens als deze in de invoer voorkomen, zodat de uitvoer dubbelzinnig kan zijn.

porselein
Gebruik een speciaal op regels gebaseerd formaat dat bedoeld is voor scriptgebruik.
Toegevoegde/verwijderde/ongewijzigde runs worden afgedrukt in het gebruikelijke uniforme diff-formaat,
beginnend met een +/-/` ` teken aan het begin van de regel en doorlopend tot
het einde van de lijn. Nieuwe regels in de invoer worden weergegeven door een tilde ~ op een regel
van zijn eigen.

geen
Schakel woordverschil opnieuw uit.

Merk op dat ondanks de naam van de eerste modus kleur wordt gebruikt om de gewijzigde te markeren
onderdelen in alle modi, indien ingeschakeld.

--word-diff-regex=
Gebruik om te beslissen wat een woord is, in plaats van rekening te houden met reeksen niet-witruimte
een woord zijn. Het impliceert ook --word-diff, tenzij dit al was ingeschakeld.

Elke niet-overlappende wedstrijd van de wordt als een woord beschouwd. Alles ertussen
deze overeenkomsten worden als witruimte beschouwd en genegeerd (!) voor zoekdoeleinden
verschillen. Mogelijk wilt u |[^[:spatie:]] aan uw reguliere expressie toevoegen
Zorg ervoor dat het overeenkomt met alle niet-witruimtetekens. Een overeenkomst die een nieuwe regel bevat, is
stil afgekapt(!) op de nieuwe regel.

Bijvoorbeeld --word-diff-regex=. zal elk personage als een woord behandelen en,
dienovereenkomstig, karakter voor karakter verschillen tonen.

De regex kan ook worden ingesteld via een diff-stuurprogramma of configuratie-optie, zie
gitattributen(1) of git-config(1). Als u dit expliciet geeft, worden eventuele diff-drivers of
configuratie-instelling. Diff-stuurprogramma's overschrijven de configuratie-instellingen.

--kleurwoorden[= ]
Equivalent aan --word-diff=color plus (als er een regex is opgegeven)
--word-diff-regex= .

--geen-hernoemen
Schakel hernoemingsdetectie uit, zelfs als het configuratiebestand de standaardinstelling aangeeft
zo.

--rekening
Waarschuw als wijzigingen witruimtefouten veroorzaken. Wat als witruimtefouten wordt beschouwd, is
gecontroleerd door core.whitespace-configuratie. Standaard achterliggende witruimte
(inclusief regels die uitsluitend uit witruimten bestaan) en een spatie
onmiddellijk gevolgd door een tabteken binnen de eerste inspringing van de regel
rekening gehouden met witruimtefouten. Sluit af met een niet-nulstatus als er problemen worden gevonden. Niet
compatibel met --exit-code.

--ws-error-highlight=
Markeer witruimtefouten op regels gespecificeerd door in de kleur aangegeven door
kleur.diff.witruimte. is een door komma's gescheiden lijst van oude, nieuwe context. Wanneer
deze optie wordt niet gegeven, alleen witruimtefouten in nieuwe regels worden gemarkeerd. Bijv
--ws-error-highlight=nieuw,oud markeert witruimtefouten bij zowel verwijderde als toegevoegde bestanden
lijnen. ze kunnen allemaal worden gebruikt als afkorting voor oud,nieuw,context.

--volledige index
Laat in plaats van het eerste handjevol tekens de volledige pre- en post-image-blob zien
objectnamen op de "index"-regel bij het genereren van uitvoer in patchformaat.

--binair
Voer naast --full-index een binaire diff uit die kan worden toegepast met git-apply.

--afkorting[= ]
In plaats van de volledige hexadecimale objectnaam van 40 bytes in diff-raw-indeling weer te geven
en diff-tree kopregels tonen slechts een gedeeltelijk voorvoegsel. Dit is onafhankelijk van de
--full-index optie hierboven, die het diff-patch uitvoerformaat bestuurt. Niet standaard
aantal cijfers kan worden opgegeven met --abbrev= .

-B[ ][/ ], --break-rewrites[=[ ][/ ]]
Verdeel volledige herschrijfwijzigingen in paren van verwijderen en maken. Dit serveert twee
doeleinden:

Het beïnvloedt de manier waarop een wijziging plaatsvindt die neerkomt op een totale herschrijving van een bestand en niet als een serie
van verwijderen en invoegen gemengd met een paar regels die toevallig overeenkomen
tekstueel als de context, maar als een enkele verwijdering van al het oude gevolgd door a
enkele invoeging van al het nieuwe, en het getal m bepaalt dit aspect van de -B
optie (standaard ingesteld op 60%). -B/70% specificeert dat minder dan 30% van het origineel zou moeten zijn
in het resultaat blijven zodat Git het als een totale herschrijving kan beschouwen (dat wil zeggen, anders wordt de
de resulterende patch zal een reeks verwijderingen en invoegingen zijn, vermengd met context
lijnen).

Bij gebruik met -M wordt een volledig herschreven bestand ook beschouwd als de bron van een
hernoemen (meestal beschouwt -M alleen een verdwenen bestand als de bron van een hernoeming),
en het getal n regelt dit aspect van de optie -B (standaard ingesteld op 50%). -B20%
specificeert dat een verandering met toevoeging en verwijdering vergeleken met 20% of meer van de
bestandsgrootte komen in aanmerking om te worden opgepikt als mogelijke bron voor een hernoeming
een ander bestand.

-M[ ], --vind-renames[= ]
Hernoemingen detecteren. Als n is opgegeven, is dit een drempelwaarde voor de gelijkenis-index (dwz
aantal toevoegingen/verwijderingen vergeleken met de bestandsgrootte). -M90% betekent bijvoorbeeld
Git zou een verwijder/toevoeg-paar moeten beschouwen als een hernoeming als het meer dan 90% van het bestand betreft
is niet veranderd. Zonder %-teken moet het getal gelezen worden als een breuk, met a
decimaalteken ervoor. Dat wil zeggen: -M5 wordt 0.5 en is dus hetzelfde als -M50%.
Op dezelfde manier is -M05 hetzelfde als -M5%. Gebruik -M100% om de detectie te beperken tot exacte hernoemingen.
De standaardovereenkomstindex is 50%.

-C[ ], --vind-kopieën[= ]
Detecteer zowel kopieën als hernoemingen. Zie ook --vind-kopieën-harder. Als n is opgegeven, is het
heeft dezelfde betekenis als voor -M .

--kopieën-vinden-moeilijker
Om prestatieredenen vindt de optie -C standaard alleen kopieën van het originele bestand
van de kopie is gewijzigd in dezelfde wijzigingenset. Deze vlag zorgt ervoor dat het commando wordt geïnspecteerd
ongewijzigde bestanden als kandidaten voor de bron van de kopie. Dit is een zeer dure
gebruik voor grote projecten, dus gebruik het met voorzichtigheid. Meer dan één -C-optie geven
heeft hetzelfde effect.

-D, --onomkeerbaar-verwijderen
Laat de voorafbeelding weg voor verwijderingen, dwz druk alleen de koptekst af, maar niet het verschil tussen de
preimage en /dev/null. De resulterende patch is niet bedoeld om te worden aangebracht met patch of
git toepassen; dit is uitsluitend bedoeld voor mensen die zich alleen willen concentreren op het beoordelen van de
tekst na de wijziging. Bovendien ontbreekt het de uitvoer duidelijk aan voldoende informatie
pas een dergelijke patch omgekeerd toe, zelfs handmatig, vandaar de naam van de optie.

Wanneer u het samen met -B gebruikt, laat dan ook de voorafbeelding weg in het verwijderingsgedeelte van a
paar verwijderen/maken.

-l
De opties -M en -C vereisen O(n^2) verwerkingstijd waarbij n het aantal is
potentiële hernoem/kopieerdoelen. Deze optie voorkomt dat de hernoemings-/kopieerdetectie wordt uitgevoerd
als het aantal hernoemings-/kopieerdoelen het opgegeven aantal overschrijdt.

--diff-filter=[(A|C|D|M|R|T|U|X|B)...[*]]
Selecteer alleen bestanden die zijn toegevoegd (A), gekopieerd (C), verwijderd (D), gewijzigd (M), hernoemd
(R), hun type (dwz normaal bestand, symlink, submodule, ...) gewijzigd (T), zijn
Niet-gemerged (U), onbekend (X), of hun koppeling is verbroken (B). Elke combinatie
van de filtertekens (inclusief geen) kunnen worden gebruikt. Wanneer * (Alles-of-geen) wordt toegevoegd
voor de combinatie worden alle paden geselecteerd als er een bestand is dat overeenkomt met een ander bestand
criteria in de vergelijking; als er geen bestand is dat aan andere criteria voldoet, niets
is geselecteerd.

-S
Zoek naar verschillen die het aantal keren dat de opgegeven tekenreeks voorkomt, veranderen
(dwz toevoeging/verwijdering) in een bestand. Bedoeld voor gebruik door de scripter.

Het is handig als u op zoek bent naar een exact codeblok (zoals een struct) en dat wilt
om de geschiedenis van dat blok te kennen sinds het voor het eerst ontstond: gebruik de functie
iteratief om het interessante blok in de voorafbeelding terug te voeren naar -S, en door te gaan
totdat je de allereerste versie van het blok krijgt.

-G
Zoek naar verschillen waarvan de patchtekst toegevoegde/verwijderde regels bevat die overeenkomen .

Om het verschil tussen -S te illustreren --houweel-regex en -G , overwegen
een commit met de volgende diff in hetzelfde bestand:

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

Terwijl git log -G"regexec\(regexp" deze commit zal tonen, zal git log -S"regexec\(regexp"
--pickaxe-regex zal dat niet doen (omdat het aantal keren dat die string voorkomt niet gebeurde).
verandering).

Zie de pikhouweel binnenkomst gitdiffcore(7) voor meer informatie.

--houweel-allemaal
Wanneer -S of -G een wijziging vindt, toon dan alle wijzigingen in die wijzigingenset, niet alleen de
bestanden die de wijziging bevatten .

--houweel-regex
Behandel de gegeven aan -S als een uitgebreide POSIX-reguliere expressie die overeenkomt.

-O
Voer de patch uit in de volgorde die is opgegeven in het , die één shell-glob heeft
patroon per lijn. Dit overschrijft de configuratievariabele diff.orderFile (zie git-
config(1)). Gebruik -O/dev/null om diff.orderFile te annuleren.

-R
Verwissel twee ingangen; dat wil zeggen: laat verschillen zien tussen index- of bestand op schijf en boomstructuur
inhoud.

--relatief[= ]
Wanneer het vanuit een submap van het project wordt uitgevoerd, kan worden aangegeven dat wijzigingen daarbuiten moeten worden uitgesloten
de map en toon de padnamen relatief daaraan met deze optie. Wanneer je niet binnen bent
een submap (bijvoorbeeld in een kale repository), kunt u een naam geven welke submap u wilt maken
de uitvoer ten opzichte van door a te geven als argument.

-een tekst
Behandel alle bestanden als tekst.

--negeer-ruimte-op-eol
Negeer wijzigingen in de witruimte bij EOL.

-b, --negeer-ruimte-verandering
Negeer veranderingen in de hoeveelheid witruimte. Dit negeert de witruimte aan het einde van de regel, en
beschouwt alle andere reeksen van een of meer witruimtetekens als gelijkwaardig.

-w, --negeer-alle-spatie
Negeer witruimte bij het vergelijken van lijnen. Dit negeert verschillen, zelfs als één regel dat wel heeft
witruimte waar de andere regel geen ruimte heeft.

--negeer-lege-regels
Negeer wijzigingen waarvan de regels allemaal leeg zijn.

--inter-hunk-context=
Toon daarbij de context tussen diff-hunks, tot het opgegeven aantal regels
samensmeltende hunks die dicht bij elkaar staan.

-W, --functie-context
Toon hele omringende functies van veranderingen.

--exit-code
Zorg ervoor dat het programma wordt afgesloten met codes die lijken op diff(1). Dat wil zeggen, het eindigt met 1 als het aanwezig is
er waren verschillen en 0 betekent geen verschillen.

--stil
Schakel alle uitvoer van het programma uit. Impliceert --exit-code.

--ext-diff
Sta toe dat een externe diff-helper wordt uitgevoerd. Als u een externe diff-driver instelt met
gitattributen(5), u moet deze optie gebruiken git-log(1) en vrienden.

--geen-ext-diff
Externe diff-stuurprogramma's niet toestaan.

--textconv, --no-textconv
Toestaan ​​(of niet toestaan) dat externe tekstconversiefilters worden uitgevoerd bij het vergelijken van binaire bestanden
bestanden. Zien gitattributen(5) voor details. Omdat textconv-filters doorgaans a
eenrichtingsconversie, het resulterende verschil is geschikt voor menselijke consumptie, maar kan dat niet
worden toegepast. Om deze reden zijn textconv-filters standaard alleen ingeschakeld voor git-
diff(1) en git-log(1), maar niet voor git-formaat-patch(1) of diff-loodgietersopdrachten.

--ignore-submodules[= ]
Negeer wijzigingen in submodules bij het genereren van diffs. kan "geen" zijn,
"untracked", "dirty" of "all", wat de standaard is. Als u "geen" gebruikt, wordt rekening gehouden met de
submodule gewijzigd wanneer deze niet-bijgehouden of gewijzigde bestanden of de HEAD ervan bevat
verschilt van de vastgelegde commit in het superproject en kan worden gebruikt om elke commit te overschrijven
instellingen van de negeren optie git-config(1) of gitmodules(5). Wanneer "untracked" is
gebruikte submodules worden niet als vies beschouwd als ze alleen niet-getrackte inhoud bevatten (maar
ze worden nog steeds gescand op gewijzigde inhoud). Het gebruik van "dirty" negeert alle wijzigingen in het
werkboom van submodules, er zijn alleen wijzigingen in de commits opgeslagen in het superproject
getoond (dit was het gedrag tot 1.7.0). Als u "alles" gebruikt, worden alle wijzigingen verborgen
ondermodules.

--src-voorvoegsel=
Toon het opgegeven bronvoorvoegsel in plaats van "a/".

--dst-voorvoegsel=
Toon het opgegeven bestemmingsvoorvoegsel in plaats van "b/".

--geen-voorvoegsel
Toon geen bron- of bestemmingsvoorvoegsel.

Voor meer gedetailleerde uitleg over deze veel voorkomende opties, zie ook gitdiffcore(7).

...
De parameters worden, indien opgegeven, gebruikt om de diff te beperken tot de benoemde paden (you
kan mapnamen geven en diff krijgen voor alle bestanden eronder).

RAW OUTPUT FORMAT


Het onbewerkte uitvoerformaat van "git-diff-index", "git-diff-tree", "git-diff-files" en "git
diff --raw" lijken erg op elkaar.

Deze commando's vergelijken allemaal twee sets dingen; wat wordt vergeleken verschilt:

git-diff-index
vergelijkt de en de bestanden op het bestandssysteem.

git-diff-index --cached
vergelijkt de en de index.

git-diff-boom [-r] [ ...]
vergelijkt de bomen die door de twee argumenten worden genoemd.

git-diff-bestanden [ ...]
vergelijkt de index en de bestanden op het bestandssysteem.

Het "git-diff-tree" commando begint zijn uitvoer met het afdrukken van de hash van wat er is
vergeleken. Daarna printen alle commando's één uitvoerregel per gewijzigd bestand.

Een uitvoerregel is op deze manier opgemaakt:

ter plaatse bewerken: 100644 100644 bcd1234... 0123456... M file0
kopiëren-bewerken: 100644 100644 abcd123... 1234567... C68 bestand1 bestand2
hernoemen-bewerken: 100644 100644 abcd123... 1234567... R86 bestand1 bestand3
creëren :000000 100644 0000000... 1234567... Een bestand4
verwijder :100644 000000 1234567... 0000000... D bestand5
niet-samengevoegd :000000 000000 0000000... 0000000... U-bestand6

Dat wil zeggen, van links naar rechts:

1. een dubbele punt.

2. modus voor "src"; 000000 indien aangemaakt of niet samengevoegd.

3. een spatie.

4. modus voor "dst"; 000000 indien verwijderd of niet samengevoegd.

5. een spatie.

6. sha1 voor "src"; 0{40} indien gemaakt of niet-samengevoegd.

7. een spatie.

8. sha1 voor "dst"; 0{40} indien gemaakt, niet samengevoegd of "kijk naar werkboom".

9. een spatie.

10. status, gevolgd door een optioneel "score"-nummer.

11. een tabblad of een NUL wanneer -z optie wordt gebruikt.

12. pad voor "src"

13. een tabblad of een NUL wanneer -z optie wordt gebruikt; bestaat alleen voor C of R.

14. pad voor "dst"; bestaat alleen voor C of R.

15. een LF of een NUL wanneer -z optie wordt gebruikt om de record te beëindigen.

Mogelijke statusbrieven zijn:

· A: toevoeging van een bestand

· C: kopie van een bestand naar een nieuw bestand

· D: verwijdering van een bestand

· M: wijziging van de inhoud of modus van een bestand

· R: hernoemen van een bestand

· T: wijziging van het type bestand

· U: bestand is niet meer samengevoegd (je moet het samenvoegen voltooien voordat het kan worden vastgelegd)

· X: "onbekend" wijzigingstype (waarschijnlijk een bug, rapporteer dit alstublieft)

Statusletters C en R worden altijd gevolgd door een score (die het percentage aangeeft).
gelijkenis tussen de bron en het doel van de verplaatsing of kopie). Statusletter M kan zijn
gevolgd door een score (die het percentage ongelijkheid aangeeft) voor het herschrijven van bestanden.

wordt weergegeven als allemaal nullen als een bestand nieuw is op het bestandssysteem en niet gesynchroniseerd is
de index.

Voorbeeld:

:100644 100644 5be4a4...... 000000...... M-bestand.c

Als de optie -z niet wordt gebruikt, worden TAB-, LF- en backslash-tekens in padnamen weergegeven
als respectievelijk \t, \n en \\.

VERSCHIL FORMAT VOOR SAMENVOEGEN


"git-diff-tree", "git-diff-files" en "git-diff --raw" kunnen -c or --cc optie om
genereer diff-uitvoer ook voor merge-commits. De uitvoer wijkt af van het beschreven formaat
hierboven op de volgende manier:

1. er is een dubbele punt voor elke ouder

2. er zijn meer "src"-modi en "src" sha1

3. status bestaat uit aaneengeschakelde statustekens voor elke ouder

4. geen optioneel "score"-nummer

5. enkel pad, alleen voor "dst"

Voorbeeld:

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

Merk op dat gecombineerde diff geeft alleen bestanden weer die zijn gewijzigd van alle bovenliggende bestanden.

GENEREREN PATCHES MET -P


Wanneer "git-diff-index", "git-diff-tree" of "git-diff-files" worden uitgevoerd met een -p optie, "git
diff" zonder de --rauw optie, of "git log" met de "-p" optie, produceren ze niet de
uitvoer hierboven beschreven; in plaats daarvan produceren ze een patchbestand. U kunt de creatie aanpassen
van dergelijke patches via de GIT_EXTERNAL_DIFF en de GIT_DIFF_OPTS omgevingsvariabelen.

Wat de optie -p produceert, verschilt enigszins van het traditionele diff-formaat:

1. Het wordt voorafgegaan door een "git diff" header die er als volgt uitziet:

diff --git a/bestand1 b/bestand2

De bestandsnamen a/ en b/ zijn hetzelfde, tenzij er sprake is van hernoemen/kopiëren. Vooral, zelfs
voor een creatie of een verwijdering is /dev/null niet gebruikt in plaats van de a/ of b/
bestandsnamen.

Als het om hernoemen/kopiëren gaat, tonen file1 en file2 de naam van het bronbestand van het
hernoemen/kopiëren en de naam van het bestand dat respectievelijk hernoemen/kopiëren produceert.

2. Het wordt gevolgd door een of meer uitgebreide kopregels:

oude modus
nieuwe modus
verwijderde bestandsmodus
nieuwe bestandsmodus
Kopieer van
kopiëren naar
hernoemen van
hernoemen naar
gelijkenis-index
ongelijkheidsindex
inhoudsopgave ..

Bestandsmodi worden afgedrukt als octale getallen van 6 cijfers, inclusief het bestandstype en het bestand
toestemming bits.

Padnamen in uitgebreide headers bevatten niet de voorvoegsels a/ en b/.

De gelijkenis-index is het percentage onveranderde lijnen en de ongelijkheidsindex
is het percentage gewijzigde regels. Het is een afgerond geheel getal, gevolgd door a
procent teken. De waarde van de gelijkenis-index van 100% is dus gereserveerd voor twee gelijke bestanden,
terwijl 100% ongelijkheid betekent dat geen enkele regel uit het oude bestand in het nieuwe is terechtgekomen
een.

De indexregel bevat de SHA-1-controlesom voor en na de wijziging. De is
inbegrepen als de bestandsmodus niet verandert; anders geven afzonderlijke regels het oude aan
en de nieuwe modus.

3. TAB-, LF-, dubbele aanhalingstekens en backslash-tekens in padnamen worden weergegeven als \t, \n,
\" en \\, respectievelijk. Als er behoefte is aan een dergelijke vervanging, dan is het geheel
padnaam wordt tussen dubbele aanhalingstekens geplaatst.

4. Alle file1-bestanden in de uitvoer verwijzen naar bestanden vóór de commit, en alle file2
bestanden verwijzen naar bestanden na de commit. Het is onjuist om elke wijziging op elke wijziging toe te passen
bestand opeenvolgend. Deze patch zal bijvoorbeeld a en b verwisselen:

diff --git a/ab/b
hernoemen van een
hernoemen naar b
diff --git a/bb/a
hernoemen van b
hernoemen naar een

GECOMBINEERDE VERSCHIL FORMAT


Elk diff-genererend commando kan de optie -c of --cc gebruiken om een gecombineerde diff wanneer
een fusie laten zien. Dit is het standaardformaat bij het weergeven van samenvoegingen met git-diff(1) of git-
tonen(1). Merk ook op dat u de optie -m kunt geven om elk van deze opdrachten te forceren
het genereren van diffs met individuele ouders van een fusie.

A gecombineerde diff formaat ziet er als volgt uit:

diff --gecombineerd beschrijven.c
indexfabadb8,cc95eb0..4866510
--- a/beschrijf.c
+++ b/beschrijf.c
@@@ -98,20 -98,12 +98,20 @@@
return (a_date > b_date) ? -1: (a_datum == b_datum) ? 0: 1;
}

- statische leegte beschrijven (char *arg)
-static void beschrijf(struct commit *cmit, int last_one)
++statische leegte beschrijven(char *arg, int last_one)
{
+ niet-ondertekende char sha1[20];
+ struct vastleggen *cmit;
struct commit_list *lijst;
statische int geïnitialiseerd = 0;
struct commit_naam *n;

+ als (get_sha1(arg, sha1) < 0)
+ gebruik(beschrijf_gebruik);
+ cmit = lookup_commit_reference(sha1);
+ als (!cmit)
+ gebruik(beschrijf_gebruik);
+
if (!geïnitialiseerd) {
geïnitialiseerd = 1;
for_each_ref(krijg_naam);

1. Het wordt voorafgegaan door een "git diff" header, die er als volgt uitziet (when -c Optie is
gebruikt):

diff --gecombineerd bestand

of zo (wanneer --cc optie wordt gebruikt):

diff --cc-bestand

2. Het wordt gevolgd door een of meer uitgebreide kopregels (dit voorbeeld toont een samenvoeging met
twee ouders):

inhoudsopgave , ..
modus , ..
nieuwe bestandsmodus
verwijderde bestandsmodus ,

De mode , .. lijn verschijnt alleen als ten minste één van de is
anders dan de rest. Uitgebreide headers met informatie over gedetecteerde inhoud
beweging (hernoemen en kopieerdetectie) zijn ontworpen om te werken met diff van twee
en worden niet gebruikt door het gecombineerde diff-formaat.

3. Het wordt gevolgd door een tweeregelige header van bestand/naar bestand

--- een bestand
+++ b/bestand

Vergelijkbaar met de koptekst met twee regels voor traditioneel unified diff-formaat, waar /dev/null aan gewend is
signaal aangemaakte of verwijderde bestanden.

4. Het formaat van de chunk-header is aangepast om te voorkomen dat mensen deze per ongeluk invoeren
pleister -p1. Er is een gecombineerd diff-formaat gemaakt voor het beoordelen van wijzigingen in merge-commits, en
was niet bedoeld om te solliciteren. De verandering is vergelijkbaar met de verandering in de uitgebreide index
koptekst:

@@@ @@@

Er zijn (aantal ouders + 1) @-tekens in de chunkheader voor gecombineerde diff
formaat.

In tegenstelling tot de traditionele unified diff-formaat, dat twee bestanden A en B toont met één
kolom met - (min – verschijnt in A maar verwijderd in B), + (plus – ontbreekt in A maar
toegevoegd aan B), of " " (spatie - ongewijzigd) voorvoegsel, dit formaat vergelijkt twee of meer bestanden
file1, file2,... met één bestand X, en laat zien hoe X verschilt van elk van fileN. Eén kolom
voor elk van fileN wordt vóór de uitvoerregel gezet om aan te geven hoe de regel van X verschilt van
het.

Een teken - in kolom N betekent dat de regel in bestand N voorkomt, maar niet
in het resultaat. Een + teken in de kolom N betekent dat de regel in het resultaat verschijnt,
en fileN heeft die regel niet (met andere woorden, de regel is toegevoegd vanaf het punt van
mening van die ouder).

In de bovenstaande voorbeelduitvoer is de functiehandtekening van beide bestanden gewijzigd (vandaar twee
- verwijderingen uit zowel bestand1 als bestand2, plus ++ om aan te geven dat één regel die is toegevoegd dat niet doet
verschijnen in bestand1 of bestand2). Ook acht andere regels zijn hetzelfde uit bestand1, maar doen dat wel
verschijnt niet in bestand2 (vandaar voorafgegaan door +).

Wanneer getoond door git diff-tree -c, vergelijkt het de ouders van een merge commit met de merge
resultaat (dwz file1..fileN zijn de ouders). Wanneer getoond door git diff-files -c, vergelijkt het
de twee onopgeloste fusie-ouders met het werkende boombestand (dat wil zeggen bestand1 is fase 2 oftewel
"onze versie", bestand2 is fase 3 oftewel "hun versie").

ANDERE VERSCHIL FORMATS


De optie --summary beschrijft nieuw toegevoegde, verwijderde, hernoemde en gekopieerde bestanden. De --stat
optie voegt toe verschil(1) grafiek naar de uitvoer. Deze opties kunnen met andere worden gecombineerd
opties, zoals -p, en zijn bedoeld voor menselijke consumptie.

Wanneer een wijziging wordt weergegeven die een hernoeming of een kopie met zich meebrengt, formatteert --stat de uitvoer van het
padnamen compact door het gemeenschappelijke voorvoegsel en achtervoegsel van de padnamen te combineren. Bijvoorbeeld, een
wijziging die arch/i386/Makefile naar arch/x86/Makefile verplaatst terwijl 4 regels worden gewijzigd, zal zijn
zo weergegeven:

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

De optie --numstat geeft de verschil(1) informatie, maar is ontworpen voor een eenvoudigere machine
consumptie. Een invoer in --numstat-uitvoer ziet er als volgt uit:

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

Dat wil zeggen, van links naar rechts:

1. het aantal toegevoegde regels;

2. een tabblad;

3. het aantal verwijderde regels;

4. een tabblad;

5. padnaam (eventueel met hernoem/kopieerinformatie);

6. een nieuwe regel.

Wanneer de uitvoeroptie -z actief is, wordt de uitvoer op deze manier opgemaakt:

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

Dat wil zeggen:

1. het aantal toegevoegde regels;

2. een tabblad;

3. het aantal verwijderde regels;

4. een tabblad;

5. een NUL (bestaat alleen als deze wordt hernoemd/gekopieerd);

6. padnaam in voorafbeelding;

7. een NUL (bestaat alleen als deze wordt hernoemd/gekopieerd);

8. padnaam in postimage (bestaat alleen als hernoemd/gekopieerd);

9. een NUL.

De extra NUL vóór het preimage-pad in de hernoemde hoofdletters is bedoeld om scripts toe te staan ​​die de
uitvoer om aan te geven of het huidige record dat wordt gelezen een record met één pad is of een hernoemen/kopiëren
opnemen zonder vooruit te lezen. Na het lezen van toegevoegde en verwijderde regels, lezen tot NUL
zou de padnaam opleveren, maar als dat NUL is, zal het record twee paden tonen.

Voorbeelden


Verschillende manieren om uw werkboom te controleren

$ git verschil (1)
$ git diff --cached (2)
$ git diff HEAD (3)

1. Wijzigingen in de werkboom die nog niet zijn doorgevoerd voor de volgende commit.
2. Veranderingen tussen de index en je laatste commit; wat je zou begaan als je
voer "git commit" uit zonder "-a" optie.
3. Veranderingen in de werkboom sinds je laatste commit; wat je zou begaan als
je voert "git commit -a" uit

Vergelijkbaar met willekeurige commits

$ git diff-test (1)
$ git diff HEAD -- ./test (2)
$ git diff HEAD^ HEAD (3)

1. In plaats van de punt van de huidige tak te gebruiken, vergelijk deze met de punt van "test"
tak.
2. In plaats van te vergelijken met de punt van de "test"-tak, vergelijk deze met de punt van de
huidige branch, maar beperk de vergelijking tot het bestand "test".
3. Vergelijk de versie vóór de laatste commit en de laatste commit.

Takken vergelijken

$ git diff onderwerpmaster (1)
$ git diff onderwerp..master (2)
$ git diff onderwerp...master (3)

1. Veranderingen tussen de tips van het onderwerp en de mastertakken.
2. Hetzelfde als hierboven.
3. Wijzigingen die hebben plaatsgevonden op de hoofdvertakking sinds het starten van de onderwerpvertakking
eraf.

Beperking van de diff-uitvoer

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

1. Toon alleen wijzigingen, hernoemen en kopiëren, maar geen toevoegingen of verwijderingen.
2. Toon alleen namen en de aard van de verandering, maar geen daadwerkelijke diff-uitvoer.
3. Beperk de diff-uitvoer tot benoemde subbomen.

Munging van de diff-uitvoer

$ git diff --find-copys-harder -B -C (1)
$ git diff-R (2)

1. Besteed extra cycli om hernamen, kopieën en volledige herschrijvingen te vinden (erg duur).
2. Uitgangsverschil omgekeerd.

Gebruik git-diff online met behulp van onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

Linux-commando's

Ad