Git diff nuovi file

-p
-u
--patch

Genera patch (vedi Generare testo patch con -p).

-s
--no-patch

Sopprime tutto l'output dal meccanismo diff. Utile per comandi come questo mostrano la patch per impostazione predefinita per ridurre il loro output o per annullare l'effetto di opzioni come , precedentemente sulla riga di comando in un alias.

-U<n>
--unified=<n>

Genera differenze con <n> righe di contesto invece delle solite tre. Implica.

--output=<file>

Output su un file specifico invece che su stdout.

--output-indicator-new=<char>
--output-indicator-old=<char>
--output-indicator-context=<char>

Specifica il carattere utilizzato per indicare le righe nuove, vecchie o di contesto nella patch generata. Normalmente sono + , - e ' ' rispettivamente.

--raw

Genera il diff in formato raw. Questa è l'impostazione predefinita.

--patch-with-raw

Sinonimo di .

--indent-heuristic

Abilita l'euristica che sposta i confini del diff hunk per rendere le patch più facili da leggere. Questa è l'impostazione predefinita.

--no-indent-heuristic

Disabilita l'euristica del rientro.

--minimal

Spendi più tempo per assicurarti che venga prodotto il diff più piccolo possibile.

--patience

Genera un diff usando l'algoritmo "patience diff".

--histogram

Genera un diff usando l'algoritmo "histogram diff".

--anchored=<text>

Genera un diff usando l'algoritmo "anchored diff".

Questa opzione può essere specificata più di una volta.

Se esiste una riga sia nell'origine che in quella destinazione, esiste una sola volta e inizia con questo testo, questo algoritmo tenta di impedirne la visualizzazione come eliminazione o aggiunta nell'output. Utilizza internamente l'algoritmo "patience diff".

--diff-algorithm={pazienza|minimo|istogramma|myers}

Scegli un algoritmo diff. Le varianti sono le seguenti:

,

L'algoritmo di base greedy diff. Attualmente, questa è l'impostazione predefinita.

Dedica più tempo per assicurarti che venga prodotto il diff più piccolo possibile.

Usa l'algoritmo "patience diff" quando generi patch.

Questo algoritmo estende l'algoritmo di pazienza per "supportare elementi comuni a bassa occorrenza".

Ad esempio, se hai configurato la variabile su un valore non predefinito e desideri utilizzare quello predefinito, devi utilizzare l'opzione.

--stat[=<width>[,<nome-larghezza>[,<count>]]]

Genera un diffstat. Per impostazione predefinita, verrà utilizzato tutto lo spazio necessario per la parte del nome del file e il resto per la parte del grafico. La larghezza massima è impostata per impostazione predefinita sulla larghezza del morsetto o su 80 colonne se non è collegata a un morsetto e può essere sostituita da . La larghezza della parte del nome del file può essere limitata assegnando un'altra larghezza dopo una virgola o impostando . La larghezza della parte del grafico può essere limitata utilizzando o impostando . L'uso o influisce su tutti i comandi che generano un grafico delle statistiche, mentre l'impostazione o non influisce su . Fornendo un terzo parametro , è possibile limitare l'output alle prime righe, seguito da se ce ne sono di più.

Questi parametri possono anche essere impostati singolarmente con , e .

--compact-summary

Emette un riassunto condensato delle informazioni estese dell'intestazione, come la creazione o l'eliminazione di file ("nuovo" o "andato", opzionalmente "+l" se è un collegamento simbolico) e cambia modalità ("+x" o "-x" per aggiungere o rimuovere rispettivamente bit eseguibile) in diffstat. L'informazione viene inserita tra la parte del nome del file e la parte del grafico. Implica .

--numstat

Simile a , ma mostra il numero di righe aggiunte ed eliminate in notazione decimale e il nome del percorso senza abbreviazioni, per renderlo più facile da usare. Per i file binari, restituisce due invece di dire .

--shortstat

Emette solo l'ultima riga del formato contenente il numero totale di file modificati, così come il numero di righe aggiunte ed eliminate.

-X[<param1,param2,...>]
--dirstat[=<param1,param2,...>]

Emette la distribuzione della quantità relativa di modifiche per ogni sottodirectory. Il comportamento di può essere personalizzato passandogli un elenco di parametri separati da virgole. Le impostazioni predefinite sono controllate dalla configurazione (vedi git-config[1]). Sono disponibili i seguenti parametri:

Calcola i numeri dirstat contando le righe che sono state rimosse dall'origine o aggiunte alla destinazione. In questo modo viene ignorata la quantità di movimenti di codice puro all'interno di un file. In altre parole, la riorganizzazione delle righe in un file non viene conteggiata tanto quanto le altre modifiche. Questo è il comportamento predefinito quando non viene specificato alcun parametro.

Calcola i numeri dirstat eseguendo la normale analisi delle differenze basata su righe e sommando i conteggi delle righe rimosse/aggiunte. Per i file binari, contare invece i blocchi da 64 byte, poiché i file binari non hanno un concetto naturale di linee. Si tratta di un comportamento più costoso rispetto al comportamento, ma conta le righe riorganizzate all'interno di un file tanto quanto le altre modifiche. L'output risultante è coerente con ciò che si ottiene dalle altre opzioni.

Calcola i numeri dirstat per Contando il numero di file modificati. Ogni file modificato conta allo stesso modo nell'analisi dirstat. Questo è il comportamento più economico dal punto di vista computazionale, poiché non deve esaminare affatto il contenuto del file.

Conta le modifiche in una directory figlio anche per la directory padre. Si noti che quando si utilizza , la somma delle percentuali riportate può superare il 100%. Il comportamento predefinito (non cumulativo) può essere specificato con il parametro.

<limite>

un parametro intero specifica una percentuale di cut-off (3% per impostazione predefinita). Le directory che contribuiscono meno di questa percentuale delle modifiche non vengono mostrate nell'output.

Esempio: i seguenti file vengono conteggiati, ignorando le directory con meno del 10% della quantità totale di file modificati e accumulando i conteggi delle directory secondarie nelle directory padre: .

--cumulativo

Sinonimo per --dirstat=cumulativo

--dirstat-by-file[=<param1,param2>...]

Sinonimo per --dirstat=files,<param1>,<param2>...

--summary

Genera un riepilogo condensato delle informazioni estese dell'intestazione come creazioni, rinominazioni e cambi di modalità.

--patch-with-stat

Sinonimo per .

-z

Quando è stato specificato , , o , non modificare i nomi dei percorsi e utilizzare i NUL come terminatori del campo di output.

Senza questa opzione, i nomi dei percorsi con caratteri "insoliti" vengono citati come spiegato per la variabile di configurazione (vedi git-config[1]).

Mostra

solo il nome di ogni file modificato nell'albero post-immagine. I nomi dei file sono spesso codificati in UTF-8. Per maggiori informazioni si veda la discussione sulla codifica nella pagina di manuale di git-log[1].

--nome-stato

Mostra solo il nome o i nomi e lo stato di ogni file modificato. Vedere la descrizione dell'opzione sul significato delle lettere di stato. Proprio come i nomi dei file sono spesso codificati in UTF-8.

--submodule[=<format>]

Specifica come vengono mostrate le differenze nei sottomoduli. Quando si specifica il formato breve, viene utilizzato il formato breve. Questo formato mostra solo i nomi dei commit all'inizio e alla fine dell'intervallo. Quando viene specificato o , viene utilizzato il formato di registro. Questo formato elenca i commit nell'intervallo come fa git-submodule[1]. Quando viene specificato, viene utilizzato il formato diff. Questo formato mostra una differenza in linea delle modifiche nel contenuto del sottomodulo tra l'intervallo di commit. Il valore predefinito è il formato breve o se l'opzione config non è impostata.

--color[=<when>]

Mostra la differenza colorata (cioè senza =<when> ) è uguale a . <Quando> può essere uno dei seguenti , , o .

--no-color

Disattiva la differenza colorata. È uguale a .

--color-moved[=<mode>]

Le righe di codice spostate sono colorate in modo diverso. Il valore predefinito <mode> è no se l'opzione non è specificata e zebra se è specificata l'opzione senza modalità. La modalità deve essere una delle seguenti:

no

Le linee spostate non vengono evidenziate.

default

È un sinonimo di . Questo potrebbe cambiare in una modalità più sensata in futuro.

pianura

Qualsiasi riga aggiunta in una posizione e rimossa in un'altra verrà colorata con color.diff.newMoved . Allo stesso modo , color.diff.oldMoved verrà utilizzato per le righe rimosse che vengono aggiunte da qualche altra parte nel diff. Questa modalità raccoglie qualsiasi riga spostata, ma non è molto utile in una revisione per determinare se un blocco di codice è stato spostato senza permutazione.

blocchi

I blocchi di testo spostati di almeno 20 caratteri alfanumerici vengono rilevati avidamente. I blocchi rilevati vengono dipinti utilizzando il color.diff.{ vecchio,nuovo}Colore spostato. I blocchi adiacenti non possono essere distinti.

zebra

I blocchi di testo spostato vengono rilevati come in modalità blocchi. I blocchi sono dipinti utilizzando il color.diff.{ old,new}Colore spostato o color.diff.{ vecchio,nuovo}Alternativa spostata . Il cambiamento tra i due colori indica che è stato rilevato un nuovo blocco.

dimmed-zebra

Simile a zebra , ma viene eseguito un oscuramento aggiuntivo delle parti non interessanti del codice spostato. Le linee di confine di due blocchi adiacenti sono considerate interessanti, il resto non è interessante. è un sinonimo deprecato.

--no-color-moved

Disattiva il rilevamento delle mosse. Questo può essere utilizzato per sovrascrivere le impostazioni di configurazione. È uguale a .

--color-moved-ws=<modalità>

Configura come gli spazi bianchi vengono ignorati quando si esegue il rilevamento del movimento per . Queste modalità possono essere fornite come un elenco separato da virgole:

no

Non ignorare gli spazi bianchi quando si esegue il rilevamento dello spostamento.

ignore-space-at-eol

Ignora le modifiche negli spazi bianchi a EOL.

ignore-space-change

Ignora le modifiche nella quantità di spazi bianchi. In questo modo vengono ignorati gli spazi vuoti alla fine della riga e tutte le altre sequenze di uno o più caratteri di spazio vuoto vengono considerate equivalenti.

ignora gli

spazi bianchi quando si confrontano le righe. In questo modo vengono ignorate le differenze anche se una riga contiene spazi bianchi mentre l'altra riga non ne ha.

allow-indentation-change

Inizialmente ignora qualsiasi spazio bianco nello spostamento , quindi raggruppare i blocchi di codice spostati in un blocco solo se la modifica degli spazi vuoti è la stessa per riga. Questo è incompatibile con le altre modalità.

Non

ignorare gli spazi bianchi quando si esegue il rilevamento del movimento. Questo può essere utilizzato per sovrascrivere le impostazioni di configurazione. È uguale a .

><Mostra

una differenza di parole, usando la <modalità> per delimitare le parole modificate. Per impostazione predefinita, le parole sono delimitate da spazi bianchi; Vedi sotto. Il <mode> predefinito è plain , e deve essere uno di:

colore

Evidenzia le parole modificate utilizzando solo i colori. Implica.

semplice

Mostra parole come e . Non tenta di eseguire l'escape dei delimitatori se vengono visualizzati nell'input, pertanto l'output potrebbe essere ambiguo.

porcellana Utilizzare uno speciale formato a linee destinato a Consumo di script. Le tirature aggiunte/rimosse/non modificate vengono stampate nel consueto formato diff unificato, iniziando con un carattere //' ' all'inizio della riga e estendendosi fino alla fine della riga. Le nuove righe nell'input sono rappresentate da una tilde su una riga a sé stante.

none

Disabilita di nuovo la differenza di parole.

Si noti che, nonostante il nome della prima modalità, il colore viene utilizzato per evidenziare le parti modificate in tutte le modalità, se abilitato.

--word-diff-regex=<regex>

Usa <regex> per decidere cos'è una parola, invece di considerare le sequenze di non-spazi bianchi come una parola. Implica anche che non sia già stato abilitato.

Ogni corrispondenza non sovrapposta della <regex> è considerata una parola. Tutto ciò che si trova tra queste corrispondenze è considerato spazio bianco e ignorato (!) allo scopo di trovare differenze. È possibile aggiungere all'espressione regolare per rendere Assicurarsi che corrisponda a tutti i caratteri non spazi vuoti. Una corrispondenza che contiene una nuova riga viene troncata silenziosamente (!) alla nuova riga.

Ad esempio, tratterà ogni carattere come una parola e, di conseguenza, mostrerà le differenze carattere per carattere.

La regex può anche essere impostata tramite un driver diff o un'opzione di configurazione, vedi gitattributes[5] o git-config[1]. Assegnarlo in modo esplicito sovrascrive qualsiasi driver diff o impostazione di configurazione. I driver diff sovrascrivono le impostazioni di configurazione.

--color-words[=<regex>]

Equivalente a più (se è stata specificata un'espressione regolare) .

--no-renames

Disattiva il rilevamento delle rinominazioni, anche quando il file di configurazione fornisce l'impostazione predefinita per farlo.

--[no-]rename-empty

Indica se utilizzare i blob vuoti come origine per la rinomina.

--check

Avvisa se le modifiche introducono marcatori di conflitto o spazi bianchi errori. Quelli che sono considerati errori di spazi bianchi sono controllati dalla configurazione. Per impostazione predefinita, gli spazi vuoti finali (incluse le righe costituite esclusivamente da spazi bianchi) e uno spazio immediatamente seguito da un carattere di tabulazione all'interno del rientro iniziale della riga sono considerati errori di spazi vuoti. Esce con stato diverso da zero se vengono rilevati problemi. Non compatibile con --exit-code.

--ws-error-highlight=<kind>

Evidenzia gli errori di spazio bianco nelle righe o nelle linee del diff. I valori multipli sono separati da virgola, ripristina i valori precedenti, ripristina l'elenco a ed è una scorciatoia per . Quando questa opzione non è specificata e la variabile di configurazione non è impostata, vengono evidenziati solo gli errori di spazio bianco nelle righe. Gli errori di spazio bianco sono colorati con .

Invece della prima manciata di caratteri, mostra i nomi completi degli oggetti blob pre e post immagine sulla riga "index" quando Generazione dell'output in formato patch.

--binary

Oltre a , genera un diff binario che può essere applicato con . Implica.

--abbrev[=<n>]

Invece di mostrare il nome completo dell'oggetto esadecimale a 40 byte nell'output in formato diff-raw e nelle righe di intestazione dell'albero diff, mostra il prefisso più breve che è lungo almeno <n> cifre esadecimali che si riferisce in modo univoco all'oggetto. Nel formato di output diff-patch, ha una precedenza più alta, cioè se viene specificato, i nomi completi dei blob verranno mostrati indipendentemente da . Il numero di cifre non predefinito può essere specificato con .

-B[<n>][/<m>]
--break-rewrites[=[<n>][/<m>]]

Suddividi le modifiche di riscrittura completa in coppie di delete e create. Questo serve a due scopi:

Influisce sul modo in cui una modifica che equivale a una riscrittura totale di un file non come una serie di cancellazione e inserimento mescolati insieme a un pochissime righe che corrispondono testualmente al contesto, ma come una singola eliminazione di tutto ciò che è vecchio seguita da un singolo inserimento di tutto ciò che è nuovo, e il numero controlla questo aspetto dell'opzione -B (il valore predefinito è 60%). specifica che meno del 30% dell'originale deve rimanere nel risultato perché Git lo consideri una riscrittura totale (cioè altrimenti la patch risultante sarà una serie di cancellazioni e inserimenti mescolati insieme a righe di contesto).

Quando viene utilizzato con -M, un file completamente riscritto viene considerato anche come la fonte di una ridenominazione (di solito -M considera solo un file che è scomparso come fonte di una rinomina), e il numero controlla questo aspetto dell'opzione -B (il valore predefinito è 50%). Specifica che una modifica con aggiunta ed eliminazione rispetto al 20% o più della dimensione del file è idonea per essere presa come possibile fonte di una rinomina a un altro file.

-M[<n>]
--find-renames[=<n>]

Rileva le ridenominazioni. Se è specificato, è una soglia sull'indice di somiglianza (cioè la quantità di aggiunte/eliminazioni rispetto alla dimensione del file). Ad esempio, significa che Git dovrebbe considerare una coppia di eliminazione/aggiunta come una ridenominazione se più del 90% del file non è stato modificato. Senza segno, il numero deve essere letto come una frazione, con un punto decimale preceduto. Cioè, diventa 0,5, ed è quindi lo stesso di . Analogamente, è uguale a . Per limitare il rilevamento alle ridenominazioni esatte, utilizzare . L'indice di somiglianza predefinito è 50%.

-C[<n>]
--find-copies[=<n>]

Rileva copie e rinomina. Vedere anche . Se è specificato, ha lo stesso significato di .

Per

motivi di prestazioni, per impostazione predefinita, l'opzione trova le copie solo se il file originale della copia è stato modificato nello stesso insieme di modifiche. Questo flag fa sì che il comando ispezioni file non modificati come candidati per l'origine della copia. Questa è un'operazione molto costosa per progetti di grandi dimensioni, quindi usala con cautela. Dare più di un'opzione ha lo stesso effetto.

-D
--irreversible-delete

Omette la preimmagine per le cancellazioni, cioè stampa solo l'intestazione ma non la differenza tra la preimmagine e . La patch risultante non deve essere applicata con o ; Questo è solo per le persone che vogliono concentrarsi solo sulla revisione del testo dopo la modifica. Inoltre, l'output ovviamente manca di informazioni sufficienti per applicare tale patch al contrario, anche manualmente, da cui il nome dell'opzione.

Se usato insieme a , omette anche la preimmagine nella parte di cancellazione di una coppia di eliminazione/creazione.

><Le

opzioni e comportano alcuni passaggi preliminari che possono rilevare sottoinsiemi di ridenominazioni/copie a basso costo, seguiti da una parte di fallback esaustiva che Confronta tutte le restanti destinazioni non abbinate con tutte le fonti pertinenti. (Per le ridenominazioni, sono rilevanti solo le fonti non abbinate rimanenti; per le copie, sono rilevanti tutte le fonti originali.) Per N origini e destinazioni, questo controllo esaustivo è O(N^2). Questa opzione impedisce l'esecuzione della parte completa del rilevamento della ridenominazione/copia se il numero di file di origine/destinazione coinvolti supera il numero specificato. Il valore predefinito è diff.renameLimit. Si noti che un valore pari a 0 viene considerato come illimitato.

--diff-filter=[(A|C|D|M|R|T|U|X|B)...[*]]

Seleziona solo i file che sono Aggiunti (), Copiati (), Eliminati (), Modificati (), Rinominati (), hanno il loro tipo (ad esempio file normale, collegamento simbolico, sottomodulo, ...) modificato (), sono Non uniti (), sono Sconosciuti (), o hanno avuto il loro accoppiamento Interrotto (). È possibile utilizzare qualsiasi combinazione di caratteri del filtro (incluso nessuno). Quando si aggiunge (Tutto o nessuno) alla combinazione, vengono selezionati tutti i percorsi se è presente un file che corrisponde ad altri criteri nel confronto; Se non è presente alcun file che corrisponde ad altri criteri, non viene selezionato nulla.

Inoltre, queste lettere maiuscole possono essere scritte in minuscolo per escludere, ad esempio esclude i percorsi aggiunti ed eliminati.

Si noti che non tutte le differenze possono includere tutti i tipi. Ad esempio, le voci copiate e rinominate non possono essere visualizzate se il rilevamento per tali tipi è disabilitato.

-S<string>

cerca le differenze che modificano il numero di occorrenze della stringa specificata (ad esempio aggiunta/eliminazione) in un file. Destinato all'uso da parte dello scripter.

È utile quando si sta cercando un blocco di codice esatto (come una struttura) e si vuole conoscere la storia di quel blocco da quando è nato: utilizzare la funzione in modo iterativo per alimentare nuovamente il blocco interessante nella preimmagine in , e continuare fino a quando non si ottiene la prima versione del blocco.

Vengono cercati anche i file binari.

-G<regex>

Cerca le differenze il cui testo della patch contiene righe aggiunte/rimosse che corrispondono a <regex>.

Per illustrare la differenza tra e , considera un commit con il seguente diff nello stesso file:

+ return frotz(nitfol, two->ptr, 1, 0); ... - hit = frotz(nitfol, mf2.ptr, 1, 0);

Mentre mostrerà questo commit, non lo farà (perché il numero di occorrenze di quella stringa non è cambiato).

A meno che non venga fornito patch di file binari senza un filtro textconv verrà ignorato.

--find-object=<object-id>

Cerca le differenze che cambiano il numero di occorrenze dell'oggetto specificato. Simile a , solo che l'argomento è diverso in quanto non cerca una stringa specifica ma un ID oggetto specifico.

L'oggetto può essere un BLOB o un commit di sottomodulo. Implica l'opzione di trovare anche gli alberi.

--pickaxe-all

Quando o trova una modifica, mostra tutte le modifiche in quell'insieme di modifiche, non solo i file che contengono la modifica in <stringa>.

--pickaxe-regex

Tratta la <stringa> data come un'espressione regolare POSIX estesa per corrispondere.

-O<orderfile>

Controlla l'ordine in cui i file appaiono nell'output. Questo sovrascrive la variabile di configurazione (vedi git-config[1]). Per annullare , utilizzare .

L'ordine di output è determinato dall'ordine dei modelli glob in <orderfile>. Tutti i file con nomi di percorso che corrispondono al primo modello vengono emessi per primi, tutti i file con nomi di percorso che corrispondono al secondo modello (ma non al primo) vengono emessi successivamente e così via. Tutti i file con nomi di percorso che non corrispondono ad alcun modello vengono emessi per ultimi, come se Alla fine del file era presente un modello di corrispondenza implicito. Se più nomi di percorso hanno lo stesso rango (corrispondono allo stesso modello ma non a modelli precedenti), il loro ordine di output rispetto l'uno all'altro è l'ordine normale.

<orderfile> viene analizzato come segue:

  • Le righe vuote vengono ignorate, quindi possono essere utilizzate come separatori per la leggibilità.

  • Le righe che iniziano con un cancelletto ("") vengono ignorate, quindi possono essere utilizzate per i commenti. Aggiungi una barra rovesciata ("") all'inizio del modello se inizia con un hash.

  • Ogni altra riga contiene un singolo modello.

I modelli hanno la stessa sintassi e semantica dei modelli utilizzati per fnmatch(3) senza il flag FNM_PATHNAME, tranne per il fatto che un nome di percorso corrisponde anche a un modello se la rimozione di un numero qualsiasi dei componenti finali del nome di percorso corrisponde al modello. Ad esempio, il modello "" corrisponde a "" e "" ma non a "".

--skip-to=<file>
--rotate-to=<file>

Elimina i file prima del <file> dall'output (cioè salta a ), o spostali alla fine dell'output (cioè ruota a ). Queste opzioni sono state inventate principalmente per l'uso del comando e potrebbero non essere molto utili in caso contrario.

-R

Scambia due input; cioè, mostra le differenze dall'indice o dal file su disco al contenuto dell'albero.

--relative[=<percorso>]
--no-relative

Quando viene eseguito da una sottodirectory del progetto, può essere detto di escludere le modifiche al di fuori della directory e mostrare i percorsi relativi ad essa con questa opzione. Quando non ci si trova in una sottodirectory (ad esempio in un repository nudo), è possibile nominare a quale sottodirectory rendere l'output relativo fornendo un <percorso> come argomento. può essere utilizzato per contrastare sia l'opzione di configurazione che il precedente .

-a
--text

Considera tutti i file come testo.

--ignore-cr-at-eol

Ignora il ritorno a capo alla fine della riga quando si effettua un confronto.

--ignore-space-at-eol

Ignora le modifiche negli spazi bianchi a EOL.

-b
--ignore-space-change

Ignora le modifiche nella quantità di spazi bianchi. In questo modo vengono ignorati gli spazi vuoti alla fine della riga e tutte le altre sequenze di uno o più caratteri di spazio vuoto vengono considerate equivalenti.

-w
--ignore-all-space

Ignora gli spazi bianchi quando si confrontano le righe. In questo modo vengono ignorate le differenze anche se una riga contiene spazi bianchi mentre l'altra riga non ne ha.

--ignore-blank-lines

Ignora le modifiche le cui righe sono tutte vuote.

-I<regex>
--ignore-matching-lines=<regex>

Ignora le modifiche le cui righe corrispondono a <regex>. Questa opzione può essere specificata più di una volta.

--inter-hunk-context=<lines>

Mostra il contesto tra i fusti diff, fino al numero specificato di linee, fondendo così i fusti che sono vicini l'uno all'altro. Il valore predefinito è o 0 se l'opzione config non è impostata.

-W
--function-context

Mostra l'intera funzione come righe di contesto per ogni modifica. I nomi delle funzioni sono determinati nello stesso modo in cui elabora le intestazioni hunk delle patch (vedi Definizione di un'intestazione hunk personalizzata in gitattributes[5]).

--exit-code

Fa uscire il programma con codici simili a diff(1). Cioè, esce con 1 se ci sono differenze e 0 significa nessuna differenza.

--quiet

Disabilita tutti gli output del programma. Implica. Disabilita l'esecuzione degli helper diff esterni il cui codice di uscita non è attendibile, ad esempio la rispettiva opzione di configurazione o l'ambiente è false.

--ext-diff

Permette l'esecuzione di un helper diff esterno. Se imposti un driver diff esterno con gitattributes[5], devi usare questa opzione con git-log[1] e amici.

--no-ext-diff

Non consente i driver di confronto esterni.

--textconv
--no-textconv

Permette (o non consente) l'esecuzione di filtri di conversione del testo esterno quando si confrontano i file binari. Vedi gitattributes[5] per i dettagli. Poiché i filtri textconv sono in genere una conversione unidirezionale, il diff risultante è adatto per il consumo umano, ma non può essere applicato. Per questo motivo, i filtri textconv sono abilitati di default solo per git-diff[1] e git-log[1], ma non per i comandi git-format-patch[1] o diff plumbing.

--ignore-submodules[=<when>]

Ignora le modifiche ai sottomoduli nella generazione diff. <when> può essere "none", "untracked", "sporco" o "tutto", che è l'impostazione predefinita. L'uso di "none" considererà il sottomodulo modificato quando contiene file non tracciati o modificati o il suo HEAD differisce dal commit registrato nel superprogetto e può essere utilizzato per sovrascrivere qualsiasi impostazione dell'opzione ignore in git-config[1] o gitmodules[5]. Quando si utilizza l'opzione "non tracciato", i sottomoduli non vengono considerati sporchi quando contengono solo contenuti non tracciati (ma vengono comunque analizzati alla ricerca di contenuti modificati). L'uso di "dirty" ignora tutte le modifiche all'albero di lavoro dei sottomoduli, vengono mostrate solo le modifiche ai commit memorizzati nel superprogetto (questo era il comportamento fino alla 1.7.0). L'uso di "all" nasconde tutte le modifiche ai sottomoduli.

--src-prefix=<prefisso>

Mostra il prefisso di origine dato invece di "a/".

--dst-prefix=<prefisso>

Mostra il prefisso di destinazione dato invece di "b/".

--no-prefix

Non mostrare qualsiasi prefisso di origine o di destinazione.

--default-prefix

Utilizza i prefissi di origine e destinazione predefiniti ("a/" e "b/"). Questo sovrascrive le variabili di configurazione come , , , e (vedi (1)).

--line-prefix=<prefisso>

Anteponi un prefisso aggiuntivo a ogni riga di output.

--ita-invisible-in-index

Per impostazione predefinita, le voci aggiunte da "git add -N" appaiono come un file vuoto esistente in "git diff" e un nuovo file in "git diff --cached". Questa opzione fa apparire la voce come un nuovo file in "git diff" e inesistente in "git diff --cached". Questa opzione può essere ripristinata con . Entrambe le opzioni sono sperimentali e potrebbero essere eliminate in futuro.