Aceasta este comanda git-log care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
git-log - Afișează jurnalele de comitere
REZUMAT
merge log [ ] [ ] [[--] ...]
DESCRIERE
Afișează jurnalele de comitere.
Comanda preia opțiuni aplicabile comenzii git rev-list pentru a controla ceea ce este afișat
și cum și opțiunile aplicabile comenzilor git diff-* pentru a controla modul în care se modifică fiecare
sunt afișate introducerile de commit.
OPŢIUNI
--urma
Continuați să enumerați istoricul unui fișier dincolo de redenumiri (funcționează numai pentru un singur fișier).
--no-decorate, --decorate[=scurt|full|nu]
Tipăriți numele de referință ale oricăror comitere afișate. Dacă mic de statura este specificat, ref
prefixe de nume arbitri/capete/, refs/etichete/ și refs/telecomenzi/ nu vor fi tipărite. Dacă Complet
este specificat, va fi tipărit numele complet de referință (inclusiv prefixul). Opțiunea implicită
is mic de statura.
--sursă
Tipăriți numele de referință dat pe linia de comandă prin care a fost atins fiecare commit.
--use-mailmap
Utilizați fișierul mapp pentru a mapa numele și adresele de e-mail autorilor și ai comisionului la canonical
nume reale și adrese de e-mail. Vedea git-shortlog(1).
--complet-dif
Fără acest flag, git log -p ... arată comiterile care ating căile specificate,
și diferă aproximativ aceleași căi specificate. Cu aceasta, este afișată diferența completă pentru
comite care ating căile specificate; aceasta înseamnă că " ..." numai limite
comite și nu limitează diferența pentru acele comiteri.
Rețineți că acest lucru afectează toate tipurile de ieșiri bazate pe diferențe, de exemplu cele produse de --stat,
etc
--dimensiunea jurnalului
Includeți o linie „dimensiunea jurnalului ” în ieșirea pentru fiecare comitere, unde este
lungimea mesajului acelui commit în octeți. Destinat să accelereze instrumentele care citesc jurnalul
mesajele de la ieșirea git log, permițându-le să aloce spațiu în avans.
-L , : , -L : :
Urmăriți evoluția intervalului de linii dată de " , " (sau numele funcției
regex ) în cadrul . Nu puteți da niciun limitator de pathspec. Aceasta este
în prezent limitat la o plimbare pornind de la o singură revizuire, adică poți doar să dai
zero sau un argument pozitiv de revizuire. Puteți specifica această opțiune de mai multe ori.
și poate lua una dintre aceste forme:
· număr
Dacă sau este un număr, specifică un număr absolut de linie (liniile numără
din 1).
· /regex/
Acest formular va folosi prima linie care se potrivește cu expresia regex POSIX dată. Dacă este o
regex, va căuta de la sfârșitul intervalului anterior -L, dacă există, în caz contrar
de la începutul fișierului. Dacă este „^/regex/”, va căuta de la începutul
fişier. Dacă este un regex, va căuta începând de la linia dată de .
· +offset sau -offset
Acest lucru este valabil doar pentru și va specifica un număr de rânduri înainte sau după
linia dată de .
Dacă ": ” se dă în locul lui și , este o expresie regulată
care denotă intervalul de la prima linie funcname care se potrivește , până la
următoarea linie funcname. „: ” caută de la sfârșitul intervalului anterior -L, dacă
oricare, altfel de la începutul fișierului. „^: ” caută de la începutul fișierului.
Afișați numai comiterile în intervalul de revizuire specificat. Când nu este
specificat, implicit este HEAD (adică întregul istoric care duce la comiterea curentă).
origin..HEAD specifică toate commit-urile accesibile din commit-ul curent (adică HEAD),
dar nu de la origine. Pentru o listă completă a modalităților de ortografie , vezi
specificarea Ranges secțiune de gitreviziuni(7).
[--] ...
Afișați numai comiterile care sunt suficiente pentru a explica modul în care fișierele care se potrivesc cu cele specificate
căile au apărut. Vedea Istorie simplificare mai jos pentru detalii și altele
moduri de simplificare.
Este posibil ca căile să fie prefixate cu „-- „” pentru a le separa de opțiuni sau de
interval de revizuire, atunci când apare confuzie.
Comite limitativ
Pe lângă specificarea unei game de comiteri care ar trebui listate folosind notațiile speciale
explicat în descriere, se poate aplica o limitare suplimentară de comitere.
Utilizarea mai multor opțiuni, în general, limitează și mai mult rezultatul (de exemplu --since= limite la
comite mai nou decât , și folosind-o cu --grep= limite suplimentare ale comiterilor
al cărui mesaj de jurnal are o linie care se potrivește ), decât dacă este notat altfel.
Rețineți că acestea sunt aplicate înainte de comandarea și opțiunile de formatare, cum ar fi
--verso.
- , -n , --max-count=
Limitați numărul de comite la ieșire.
--skip=
Sări număr commit înainte de a începe să afișeze rezultatul commit.
--din moment ce= , --după=
Afișează comite mai recente decât o anumită dată.
--pana= , --inainte=
Afișați comisioane mai vechi decât o anumită dată.
--autor= , --committer=
Limitați rezultatul commit-urilor la cele cu linii de antet autor/committer care se potrivesc cu
model specificat (expresie regulată). Cu mai mult de un --author= , se comite
al căror autor se potrivește cu oricare dintre modelele date sunt alese (în mod similar pentru mai multe
--committer= ).
--grep-reflog=
Limitați ieșirea commit-urilor la cele cu intrări reflog care se potrivesc cu modelul specificat
(expresie uzuala). Cu mai mult de un --grep-reflog, comite al cărui mesaj reflog
se potrivesc cu oricare dintre modelele date sunt alese. Este o eroare să utilizați această opțiune decât dacă
--walk-reflogs este în uz.
--grep=
Limitați ieșirea commit-urilor la cele cu mesaj de jurnal care se potrivește cu modelul specificat
(expresie uzuala). Cu mai mult de un --grep= , comite al cărui mesaj
se potrivesc cu oricare dintre modelele date sunt alese (dar vezi --all-match).
Când --show-notes este în vigoare, mesajul din note se potrivește ca și cum ar fi
parte a mesajului de jurnal.
--all-metch
Limitați rezultatul commit-urilor la cele care se potrivesc cu toate date --grep, în loc de cele care
potrivește cel puțin unul.
--invert-grep
Limitați ieșirea commit-urilor la cele cu mesaj de jurnal care nu se potrivesc cu modelul
specificat cu --grep= .
-i, --regexp-ignore-case
Potriviți modelele de limitare a expresiilor regulate fără a ține cont de majuscule.
--basic-regexp
Considerați modelele limitative ca fiind expresii regulate de bază; acesta este implicit.
-E, --extended-regexp
Luați în considerare modelele de limitare a fi expresii regulate extinse în loc de
expresii regulate de bază implicite.
-F, --şiruri-fixe
Considerați modelele de limitare ca fiind șiruri fixe (nu interpretați modelul ca a
expresie uzuala).
--perl-regexp
Considerați modelele de limitare ca fiind expresii regulate compatibile cu Perl. Necesită
libpcre pentru a fi compilat.
--elimină-gol
Opriți-vă când o anumită cale dispare din copac.
--unește
Imprimați numai comiterile de îmbinare. Este exact la fel ca --min-parents=2.
--nu-imbina
Nu tipăriți commit-uri cu mai mult de un părinte. Acesta este exact la fel ca
--max-parinti=1.
--min-parinti= , --max-parinti= , --no-min-parinti, --no-max-parinti
Afișați numai comiterile care au cel puțin (sau cel mult) atâtea comiteri părinte. În
particular, --max-parents=1 este același cu --no-merges, --min-parents=2 este același cu
--unește. --max-parents=0 oferă toate comenzile rădăcină și --min-parents=3 toate caracatița
fuzionează.
--no-min-parents și --no-max-parents resetează aceste limite (la nicio limită).
Formele echivalente sunt --min-parents=0 (orice commit are 0 sau mai mulți părinți) și
--max-parents=-1 (numerele negative indică nicio limită superioară).
--primul-părinte
Urmăriți numai primul comit părinte când vedeți o comitere de îmbinare. Această opțiune poate oferi a
o imagine de ansamblu mai bună atunci când vizualizați evoluția unei anumite ramuri de subiect, deoarece
îmbinările într-o ramură de subiect tind să fie doar despre ajustarea la actualizat în amonte de
din când în când, iar această opțiune vă permite să ignorați comiterile individuale introduse
la istoria ta printr-o astfel de fuziune. Nu poate fi combinat cu --bisect.
--nu
Inversează sensul lui ^ prefix (sau lipsa acestuia) pentru toate revizuirile următoare
specificatori, până la următorul --nu.
--toate
Prefă-te ca și cum toate referințele din refs/ sunt listate pe linia de comandă ca .
--ramuri[= ]
Prefă-te ca și cum toate refs-urile din refs/heads sunt listate pe linia de comandă ca .
If este dat, limitați ramurile la cele care se potrivesc cu globul shell dat. Dacă model
îi lipsește ?, *, [, /* la final este subînțeles.
--etichete[= ]
Prefă-te ca și cum toate referințele din refs/tag-uri sunt listate pe linia de comandă ca . Dacă
este dat, limitează etichetele la cele care se potrivesc cu globul shell dat. Dacă modelul lipsește ?,
*, [, /* la final este subînțeles.
--telecomenzi[= ]
Prefă-te ca și cum toate referințele din refs/telecomenzi sunt listate pe linia de comandă ca .
If este dat, limitați ramurile de urmărire de la distanță la cele care se potrivesc cu shell-ul dat
glob. Dacă modelul lipsește ?, *, [, /* la final este subînțeles.
--glob=
Prefă-te că toți arbitrii se potrivesc cu shell glob sunt enumerate pe
linia de comandă ca . Conducere ref /, este adăugat automat dacă lipsește. Dacă
lipsește modelul ?, *, [, /* la final este subînțeles.
--exclude=
Nu includeți potrivirea referințelor că următoarele --toate, --ramuri, --etichete,
--remotes sau --glob ar lua în considerare altfel. Repetările acestei opțiuni se acumulează
modele de excludere până la următorul --all, --branches, --tags, --remotes sau --glob
opțiune (alte opțiuni sau argumente nu șterg tiparele acumulate).
Modelele date nu trebuie să înceapă cu refs/heads, refs/tags sau refs/remotes atunci când
aplicat la --branches, --tag-uri sau, respectiv, --remotes și trebuie să înceapă cu
refs/ când se aplică la --glob sau --all. Dacă o urmă /* este destinat, trebuie dat
explicit.
--reflog
Pretindeți-vă că toate obiectele menționate de reflogs sunt listate pe linia de comandă ca
.
--ignora-lipsește
După ce vedeți un nume de obiect nevalid în intrare, pretindeți-vă că intrarea greșită nu a fost
dat.
--împărţi în două
Prefă-te ca și cum bisectia proastă refs/bisect/bad a fost listată și ca și cum ar fi fost
urmat de --not și refs de bisectie bună refs/bisect/good-* pe linia de comandă.
Nu poate fi combinat cu --first-parent.
--stdin
În plus față de listate pe linia de comandă, citiți-le din standard
intrare. În cazul în care o -- separatorul este văzut, opriți citirea comiterilor și începeți să citiți căile către
limita rezultatul.
--mark-cireș
Cum ar fi --cherry-pick (vezi mai jos), dar marcați comiterile echivalente cu = în loc să omiteți
ele, și cele inechivalente cu +.
--curătură-cireș
Omite orice commit care introduce aceeași modificare ca un alt commit de pe „cealaltă parte”
când setul de comitere este limitat cu diferență simetrică.
De exemplu, dacă aveți două ramuri, A și B, o modalitate obișnuită de a enumera toate comitările
doar o parte a acestora este cu --stânga-dreapta (vezi exemplul de mai jos în descriere
a opțiunii --stânga-dreapta). Cu toate acestea, arată comenzile care au fost alese cu atenție
din cealaltă ramură (de exemplu, „3rd on b” poate fi cules cu cireșe din ramura A).
Cu această opțiune, astfel de perechi de comitere sunt excluse din ieșire.
--doar stânga, --doar dreapta
Listă se comite numai pe partea respectivă a unui interval simetric, adică numai pe cele care
ar fi marcat < resp. > prin --stânga-dreapta.
De exemplu, --cherry-pick --right-only A...B omite acele comiteri din B care sunt în
A sau sunt echivalente de patch-uri cu o comitere în A. Cu alte cuvinte, aceasta listează comiterile +
din git cherry A B. Mai precis, --cherry-pick --right-only --no-merges oferă
lista exacta.
--cireașă
Un sinonim pentru --right-only --cherry-mark --no-merges; util pentru a limita ieșirea la
se comite de partea noastră și le marchează pe cele care au fost aplicate pe cealaltă parte a a
istoric bifurcat cu git log --cherry upstream...mybranch, similar cu git cherry
în amonte ramura mea.
-g, --walk-reflogs
În loc să parcurgeți lanțul de ascendență commit, parcurgeți intrările de reflog din cele mai recente
unul la cei mai în vârstă. Când este utilizată această opțiune, nu puteți specifica comite de excludere
(acesta este, ^ commit, commit1..commit2 și commit1...commit2 notațiile nu pot fi folosite).
Cu formatul --pretty, altul decât oneline (din motive evidente), acest lucru determină ieșirea
pentru a avea două rânduri suplimentare de informații preluate din reflog. În mod implicit, commit@{Nth}
notația este utilizată în ieșire. Când comiterea de pornire este specificată ca commit@{acum},
ieșirea folosește și commit@{timestamp} notație în schimb. Sub --pretty=oneline, the
mesajul commit este prefixat cu aceste informații pe aceeași linie. Această opțiune nu poate
fi combinat cu --reverse. Vezi si git-reflog(1).
--combina
După o îmbinare eșuată, afișați referințele care ating fișierele care au un conflict și care nu există
toate capetele să fuzioneze.
--limite
Ieșire excluse delimitări. Comiterile de limite sunt prefixate cu -.
Istorie simplificare
Uneori ești interesat doar de părți ale istoriei, de exemplu commit-urile
modificarea unui anume . Dar există două părți ale Istorie simplificare, o parte
este selectarea commit-urilor, iar celălalt este cum să o faci, deoarece există diverse strategii
simplifica istoria.
Următoarele opțiuni selectează commit-urile care vor fi afișate:
Se angajează modificând date sunt selectate.
--simplifica-prin-decor
Sunt selectate comiterile la care se referă o ramură sau o etichetă.
Rețineți că comiterile suplimentare pot fi afișate pentru a oferi un istoric semnificativ.
Următoarele opțiuni afectează modul în care se realizează simplificarea:
Mod automat
Simplifica istoria la cea mai simpla istorie explicand starea finala a copacului.
Cel mai simplu, deoarece tunde unele ramuri laterale dacă rezultatul final este același (de ex
fuzionarea ramurilor cu același conținut)
--întreaga-istoria
La fel ca și modul implicit, dar nu reduce o parte din istoric.
--dens
Sunt afișate doar comiterile selectate, plus unele pentru a avea un istoric semnificativ.
--rar
Sunt afișate toate comitările din istoricul simplificat.
--simplificare-combină
Opțiune suplimentară pentru --full-history pentru a elimina unele îmbinări inutile din rezultatul
istoric, deoarece nu există nicio comitere selectată care să contribuie la această îmbinare.
--calea-strămoși
Când i se oferă o serie de comite de afișat (de ex commit1..commit2 or comite2 ^ commit1),
Afișează numai comiterile care există direct pe lanțul de ascendență dintre comite1 și
comite2, adică comite care sunt ambii descendenți ai comite1, și strămoșii lui comite2.
Urmează o explicație mai detaliată.
Să presupunem că ai specificat foo drept . Vom apela comite care modifică foo !TREESAME,
iar restul TREESAME. (Într-o diferență filtrată pentru foo, arată diferit și egal,
respectiv.)
În cele ce urmează, ne vom referi întotdeauna la același exemplu de istorie pentru a ilustra
diferențe între setările de simplificare. Presupunem că filtrați pentru un fișier
foo în acest grafic de comitere:
.-A---M---N---O---P---Q
//////
IBCDEY
\ / / / / /
`-------------' X
Linia orizontală a istoriei A---Q este considerată primul părinte al fiecărei îmbinări. The
comisiile sunt:
· I este commit-ul inițial, în care foo există cu conținut „asdf” și un fișier quux
există cu conținutul „quux”. Comiterile inițiale sunt comparate cu un arbore gol, așa că eu sunt
!COPII.
· În A, foo conține doar „foo”.
· B conține aceeași modificare ca și A. Fuziunea sa M este banală și, prin urmare, TREESAME pentru toți
părinţi.
· C nu schimbă foo, dar îmbinarea lui N îl schimbă în „foobar”, deci nu este TREESAME
oricărui părinte.
· D setează foo la „baz”. Combinația sa O combină șirurile de la N și D la „foobarbaz”;
adică nu este TREESAME pentru niciun părinte.
· E schimbă quux în „xyzzy”, iar îmbinarea P combină șirurile cu „quux xyzzy”. P este
TREESAME la O, dar nu la E.
· X este un commit rădăcină independent care a adăugat o nouă parte a fișierului, iar Y a modificat-o. Y este
TREESAME la X. Îmbinarea sa Q a adăugat latura la P, iar Q este TREESAME la P, dar nu la Y.
rev-list merge înapoi prin istorie, incluzând sau excluzând comiterile în funcție de dacă
Se utilizează --full-istory și/sau rescrierea părinților (prin --parents sau --children). The
sunt disponibile următoarele setări.
Mod automat
Comiterile sunt incluse dacă nu sunt TREESAME pentru niciun părinte (deși acest lucru poate fi
schimbat, vezi --sparse mai jos). Dacă commit-ul a fost o fuziune și a fost TREESAME la unul
părinte, urmărește doar acel părinte. (Chiar dacă există mai mulți părinți TREESAME, urmează
doar unul dintre ei.) În caz contrar, urmați toți părinții.
Rezultă:
.-UN NU
///
I---------D
Observați cum regula de a urma doar părintele TREESAME, dacă este disponibil, a eliminat B
din consideraţie în întregime. C a fost considerat prin N, dar este TREESAME. Root se comite
sunt comparate cu un copac gol, deci eu sunt !TREESAME.
Relațiile părinte/copil sunt vizibile numai cu --parinții, dar asta nu afectează
comite selectate în modul implicit, așa că am arătat liniile părinte.
--istorie completă fără rescrierea părintelui
Acest mod diferă de cel implicit într-un singur punct: urmăriți întotdeauna toți părinții unei îmbinări,
chiar dacă este TREESAME pentru unul dintre ei. Chiar dacă mai mult de o parte a fuziunii are
comite-urile care sunt incluse, aceasta nu înseamnă că îmbinarea în sine este! În
exemplu, primim
IABNDOPQ
M a fost exclus deoarece este TREESAME pentru ambii părinți. E, C și B au fost toți plimbați,
dar numai B a fost !TREESAME, deci celelalte nu apar.
Rețineți că fără rescrierea părinților, nu este cu adevărat posibil să vorbim despre
relațiile părinte/copil între comiteri, așa că le arătăm deconectate.
--istoric complet cu rescrierea părintelui
Comiterile obișnuite sunt incluse numai dacă sunt !TREESAME (deși acest lucru poate fi modificat,
vezi --rar mai jos).
Îmbinările sunt întotdeauna incluse. Cu toate acestea, lista lor de părinți este rescrisă: De-a lungul fiecăruia
părinte, eliminați comitetele care nu sunt incluse în sine. Aceasta are ca rezultat
.-A---M---N---O---P---Q
/////
IB / D /
\ / / / /
`-------------'
Comparați cu --full-history fără a rescrie mai sus. Rețineți că E a fost tăiată deoarece
este TREESAME, dar lista părinte a lui P a fost rescrisă pentru a conține părintele I al lui E.
același lucru s-a întâmplat pentru C și N și X, Y și Q.
În plus față de setările de mai sus, puteți modifica dacă TREESAME afectează includerea:
--dens
Commit-urile care sunt parcurse sunt incluse dacă nu sunt TREESAME pentru niciun părinte.
--rar
Toate commit-urile care sunt parcurse sunt incluse.
Rețineți că fără --full-history, acest lucru simplifică în continuare fuziunile: dacă unul dintre părinți
este TREESAME, o urmăm doar pe aceea, așa că celelalte părți ale fuziunii nu sunt niciodată
mers.
--simplificare-combină
Mai întâi, construiți un grafic istoric în același mod în care --full-history cu rescrierea părintelui
face (vezi mai sus).
Apoi simplificați fiecare commit C la înlocuirea sa C' în istoricul final conform
urmatoarele reguli:
· Setați C' la C.
· Înlocuiți fiecare părinte P al lui C' cu simplificarea lui P'. În acest proces, aruncați
părinții care sunt strămoșii altor părinți sau care sunt rădăcină îi commit TREESAME
un copac gol și eliminați duplicatele, dar aveți grijă să nu aruncați niciodată toți părinții asta
suntem TREESAME pentru.
· Dacă după această rescriere părinte, C' este o comitere rădăcină sau de îmbinare (are zero sau >1
părinți), un comit de graniță sau !TREESAME, rămâne. În caz contrar, se înlocuiește
cu singurul său părinte.
Efectul acestui lucru este cel mai bine arătat prin compararea cu --full-history cu părintele
rescrierea. Exemplul se transforma in:
.-A---M---N---O
///
IBD
\//
`---------'
Observați diferențele majore în N, P și Q în --full-istory:
· Am eliminat-o lista de părinți a lui N, deoarece este un strămoș al celuilalt părinte M.
Totuși, N a rămas pentru că este !TREESAME.
· Lista de părinți a lui P, în mod similar, am eliminat-o. P a fost apoi eliminat complet, deoarece
a avut un părinte și este TREESAME.
· Lista părinte a lui Q avea Y simplificat la X. X a fost apoi eliminat, deoarece era a
rădăcină de copac. Q a fost apoi eliminat complet, deoarece avea un părinte și este
COPACI.
În cele din urmă, există un al cincilea mod de simplificare disponibil:
--calea-strămoși
Limitați comite-urile afișate la cele direct din lanțul de ascendență dintre „de la”
și „to” se comite în intervalul de comitere dat. Adică afișați doar comiterile care sunt
strămoșul comitului „de la” și descendenții commitului „de la”.
Ca exemplu de caz de utilizare, luați în considerare următorul istoric de comitere:
D---E-------F
/ \ \
B---C---G---H---I---J
/\
A-------K---------------L--M
Un obișnuit D..M calculează setul de comite care sunt strămoșii lui M, dar exclude
cei care sunt strămoșii lui D. Acest lucru este util pentru a vedea ce s-a întâmplat cu istoria
ducând la M din D, în sensul că „ce are M care nu a existat în D”.
Rezultatul din acest exemplu ar fi toate comiterile, cu excepția A și B (și D însuși, de
curs).
Când vrem să aflăm ce commit-uri în M sunt contaminate cu bug-ul introdus de
D și necesită remediere, totuși, s-ar putea să dorim să vedem doar subsetul de D..M care sunt
de fapt descendenți ai lui D, adică excluzând C și K. Acesta este exact ceea ce
--ancestry-path opțiunea face. Aplicat la D..M interval, rezultă:
E-------F
\ \
G---H---I---J
\
L--M
Opțiunea --simplify-by-decoration vă permite să vizualizați doar imaginea de ansamblu a
topologia istoriei, prin omiterea comiterilor care nu sunt referite prin etichete. Comiterile sunt
marcat ca !TREESAME (cu alte cuvinte, păstrat după regulile de simplificare a istoriei descrise
mai sus) dacă (1) sunt referiți prin etichete sau (2) modifică conținutul căilor
dat pe linia de comandă. Toate celelalte comiteri sunt marcate ca TREESAME (supus să fie
simplificat).
Comite ordonare
În mod implicit, comiterile sunt afișate în ordine cronologică inversă.
--data-comanda
Nu arătați părinți înainte ca toți copiii săi să fie afișați, dar, în caz contrar, afișați se angajează
ordinea de marcare temporală de comitere.
--autor-data-comanda
Nu arătați părinți înainte ca toți copiii săi să fie afișați, dar, în caz contrar, afișați se angajează
ordinea marcajului de timp al autorului.
--topo-order
Nu arătați părinți înainte ca toți copiii săi să fie afișați și evitați să afișați comisioane
mai multe linii ale istoriei amestecate.
De exemplu, într-un istoric de comitere ca acesta:
---1----2----4----7
\ \
3----5----6----8---
unde numerele indică ordinea marcajelor de timp de comitere, git rev-list și prietenii cu
--date-order arată comitările în ordinea marcajului de timp: 8 7 6 5 4 3 2 1.
Cu --topo-order, ar arăta 8 6 5 3 7 4 2 1 (sau 8 7 4 2 6 5 3 1); unii mai în vârstă
commit-urile sunt afișate înaintea celor mai noi pentru a evita afișarea commit-urilor de la două
piste de dezvoltare paralelă amestecate.
--verso
Ieșiți commit-urile în ordine inversă. Nu poate fi combinat cu --walk-reflogs.
Obiect traversal
Aceste opțiuni sunt în mare parte vizate pentru împachetarea depozitelor Git.
--no-walk[=(sortat|nesortat)]
Arată doar comit-urile date, dar nu traversează strămoșii lor. Acest lucru nu are niciun efect
dacă este specificat un interval. Dacă argumentul nesortat este dat, commit-urile sunt afișate în
ordinea în care au fost date pe linia de comandă. În caz contrar (dacă a fost sortat sau nu a fost niciun argument
date), commit-urile sunt afișate în ordine cronologică inversă în funcție de timpul de comitere. Nu poate fi
combinat cu --graph.
--fa-plimbare
Ignoră un --no-walk anterior.
Comite Formatarea
--destul[= ], --format=
Imprimați destul de mult conținutul jurnalelor de comitere într-un format dat, unde poate fi
unul dintre o linie, mic de statura, mediu, Complet, Fuller, e-mail, crud, format: și
tformat:. Când nu este niciunul dintre cele de mai sus și are % substituent în ea, ea
actioneaza ca si cum --pretty=tformat: au fost date.
Consultați secțiunea „FORMATE DRUMOASE” pentru câteva detalii suplimentare pentru fiecare format. Cand
= parte este omisă, este implicit mediu.
Notă: puteți specifica formatul drăguț implicit în configurația depozitului (vezi
git-config(1)).
--abbrev-commit
În loc să afișați numele complet al obiectului commit hexazecimal de 40 de octeți, afișați numai a
prefix parțial. Numărul de cifre care nu este implicit poate fi specificat cu „--abbrev= "
(care modifică și ieșirea dif., dacă este afișată).
Acest lucru ar trebui să facă „--pretty=oneline” mult mai lizibil pentru utilizatorii
Terminale cu 80 de coloane.
--no-abbrev-commit
Afișați numele complet al obiectului commit hexazecimal de 40 de octeți. Acest lucru anulează --abbrev-commit și
acele opțiuni care o implică, cum ar fi „--oneline”. De asemenea, trece peste
log.abbrevCommit variabilă.
--o linie
Aceasta este o prescurtare pentru „--pretty=oneline --abbrev-commit” folosită împreună.
--encoding=
Obiectele commit înregistrează codificarea folosită pentru mesajul de jurnal în codificarea lor
antet; această opțiune poate fi folosită pentru a spune comenzii să recodice mesajul de jurnal de comitere
în codificarea preferată de utilizator. Pentru comenzile care nu sunt instalate, aceasta este implicită
UTF-8. Rețineți că, dacă un obiect pretinde a fi codificat în X și scoatem în X, vom
va scoate obiectul textual; aceasta înseamnă că secvențele invalide în original
commit poate fi copiat în ieșire.
--note[= ]
Arată notele (vezi git-note(1)) care notează comiterea, atunci când se arată comiterea
mesaj de jurnal. Aceasta este valoarea implicită pentru comenzile git log, git show și git whatchanged
când nu există nicio opțiune --pretty, --format sau --oneline dată pe linia de comandă.
În mod implicit, notele afișate provin din referintele de note enumerate în miez.noteRef și
note.displayRef variabile (sau suprascrieri de mediu corespunzătoare). Vedea git-config(1)
pentru mai multe detalii.
Cu un optional argument, arătați acest ref de note în loc de notele implicite
ref(e). Ref-ul specifică refname-ul complet când începe cu refs/notes/; atunci când
începe cu note/, refs/ și, în caz contrar, refs/notes/ este prefixat pentru a forma un nume complet al
ref.
Opțiuni multiple --note pot fi combinate pentru a controla ce note sunt afișate.
Exemple: „--notes=foo” va afișa numai notele de la „refs/notes/foo”; „--note=foo
--notes" va afișa atât notele de la "refs/notes/foo" cât și din notele implicite.
--nu-note
Nu arătați note. Acest lucru anulează opțiunea --notes de mai sus, prin resetarea listei de
note refs din care sunt afișate notele. Opțiunile sunt analizate în ordinea dată pe
linia de comandă, de exemplu, „--notes --notes=foo --no-notes --notes=bar” va afișa doar
note din „ref/note/bar”.
--arata-note[= ], --[no-]note-standard
Aceste opțiuni sunt depreciate. Utilizați în schimb opțiunile --notes/--no-notes de mai sus.
--arată-semnătură
Verificați validitatea unui obiect commit semnat prin transmiterea semnăturii către gpg --verify
și arată rezultatul.
--dată-relativă
Sinonim pentru --date=relative.
--data=
Are efect numai pentru datele afișate în format care poate fi citit de om, cum ar fi atunci când se utilizează
--frumos. Variabila de configurare log.date setează o valoare implicită pentru --date a comenzii log
opțiune. În mod implicit, datele sunt afișate în fusul orar inițial (fie al comisionului, fie al
ale autorului). Dacă -local este atașat la format (de exemplu, iso-local), localul utilizatorului
se folosește în schimb fusul orar.
--date=relative arată datele relativ la ora curentă, de exemplu, „acum 2 ore”. The
Opțiunea -local nu poate fi utilizată cu --raw sau --relative.
--date=local este un alias pentru --date=default-local.
--date=iso (sau --date=iso8601) arată marcajele de timp într-un format asemănător ISO 8601. The
diferențele față de formatul strict ISO 8601 sunt:
· un spațiu în locul delimitatorului de dată/oră T
· un spațiu între oră și fus orar
· fără două puncte între ore și minute ale fusului orar
--date=iso-strict (sau --date=iso8601-strict) afișează marcajele de timp în strict ISO 8601
format.
--date=rfc (sau --date=rfc2822) arată marcaje temporale în format RFC 2822, adesea găsite în
mesaje de e-mail.
--date=short arată doar data, dar nu și ora, în format AAAA-LL-ZZ.
--date=raw arată data în formatul intern brut Git %s %z.
--date=format:... alimentează formatul... în sistemul dumneavoastră strftime. Utilizați --date=format:%c
pentru a afișa data în formatul preferat al sistemului dumneavoastră. Consultați manualul strftime pentru
o listă completă de substituenți de format. Când utilizați -local, sintaxa corectă este
--date=format-local:....
--date=default este formatul implicit și este similar cu --date=rfc2822, cu câteva
exceptii:
· nu există virgulă după ziua săptămânii
· fusul orar este omis când este utilizat fusul orar local
--părinţi
Tipăriți și părinții commit-ului (în forma „commit parent...”). De asemenea, permite
rescrierea părintelui, vezi Istorie simplificare de mai jos.
--copii
Tipăriți și copiii commit-ului (sub forma „copil commit...”). De asemenea, permite
rescrierea părintelui, vezi Istorie simplificare de mai jos.
--stanga dreapta
Marcați din ce parte a unei diferențe simetrice este accesibil un commit. Se comite din stânga
latura sunt prefixate cu < iar cele din dreapta cu >. Dacă este combinat cu --boundary,
acele comite sunt prefixate cu -.
De exemplu, dacă aveți această topologie:
y---b---b ramura B
/ \ /
/.
//\
o---x---a---o ramură A
veți obține o ieșire ca aceasta:
$ git rev-list --left-right --boundary --pretty=oneline A...B
>bbbbbbb... 3 pe b
>bbbbbbb... 2 pe b
<aaaaaaa... 3 pe a
<aaaaaaa... 2 pe a
-aaaaaaa... 1 pe b
-xx... 1 pe a
--grafic
Desenați o reprezentare grafică bazată pe text a istoricului de comitere în partea stângă
a ieșirii. Acest lucru poate face ca linii suplimentare să fie tipărite între comiteri, în ordine
pentru ca istoricul graficului să fie trasat corespunzător. Nu poate fi combinat cu --no-walk.
Acest lucru permite rescrierea părintelui, vezi Istorie simplificare de mai jos.
Aceasta implică opțiunea --topo-order în mod implicit, dar și opțiunea --date-order poate
fi specificat.
--show-linear-break[= ]
Când nu se utilizează --graph, toate ramurile istorice sunt aplatizate, ceea ce poate îngreuna
vezi că cele două comite-uri consecutive nu aparțin unei ramuri liniare. Această opțiune
pune o barieră între ei în acest caz. Dacă este specificat, este
șir care va fi afișat în locul celui implicit.
Dif Formatarea
Mai jos sunt enumerate opțiunile care controlează formatarea ieșirii dif. Unii dintre ei sunt
specific git-rev-list(1), cu toate acestea pot fi date alte opțiuni de diferență. Vedea git-diff-
fișiere(1) pentru mai multe opțiuni.
-c
Cu această opțiune, ieșirea diff pentru o comitere de îmbinare arată diferențele față de fiecare dintre ele
părinții la rezultatul îmbinării simultan în loc să arate diferența pe perechi
între un părinte și rezultat pe rând. În plus, listează numai fișierele care
au fost modificate de la toți părinții.
--cc
Acest flag implică opțiunea -c și comprimă și mai mult rezultatul patch-ului prin omitere
frânturi neinteresante ale căror conținuturi în părinți au doar două variante și îmbinarea
rezultatul alege unul dintre ele fără modificare.
-m
Acest indicator face ca comitările de îmbinare să arate diferența completă ca și comitările obișnuite; pentru fiecare
părinte de îmbinare, se generează o intrare separată în jurnal și dif. O excepție este doar asta
diff față de primul părinte este afișat când este dată opțiunea --first-parent; in aceea
caz, rezultatul reprezintă modificările aduse de îmbinare în curentul de atunci
ramură.
-r
Afișați diferențele recursive.
-t
Afișați obiectele arbore în ieșirea dif. Aceasta implică -r.
FRUMOS FORMATE
Dacă commit-ul este o îmbinare, iar în cazul în care formatul destul de nu este o linie, e-mail or crud, O
linie suplimentară este introdusă înainte de Autor: linia. Această linie începe cu „Merge:” și
sunt tipărite sha1-urile comisiilor ancestrale, separate prin spații. Rețineți că cele enumerate
commits poate să nu fie neapărat lista de direcționa părintele se angajează dacă ai limitat
viziunea dvs. asupra istoriei: de exemplu, dacă sunteți interesat doar de modificări legate de a
anumit director sau fișier.
Există mai multe formate încorporate și puteți defini formate suplimentare setând a
frumos. opțiunea de configurare fie la alt nume de format, fie a format: sfoară, ca
descris mai jos (vezi git-config(1)). Iată detaliile formatelor încorporate:
· o linie
Acesta este conceput pentru a fi cât mai compact posibil.
· mic de statura
comite
Autor:
· mediu
comite
Autor:
Data:
· Complet
comite
Autor:
Angajați:
· Fuller
comite
Autor:
AutorData:
Angajați:
CommitDate:
Din
Din:
Data:
Subiect: [PATCH]
· crud
crud formatul arată întregul commit exact așa cum este stocat în obiectul commit.
În special, SHA-1-urile sunt afișate în întregime, indiferent dacă --abbrev sau
--no-abbrev sunt folosite și părinţi informațiile arată că adevăratul părinte se angajează, fără
luând în considerare grefele sau simplificarea istoriei. Rețineți că acest format afectează
modul în care sunt afișate commit-urile, dar nu și modul în care este afișat diferența, de exemplu cu git log
--brut. Pentru a obține nume de obiecte complete într-un format brut, utilizați --no-abbrev.
· format:
format: format vă permite să specificați ce informații doriți să afișați.
Funcționează puțin ca formatul printf, cu excepția notabilă că obțineți un
noua linie cu %n în loc de \n.
De exemplu, format: „The autor of %h a fost %un, %ar%nThe titlu a fost >>%s<<%n" ar arăta
ceva de genul:
Autorul cărții fe6e0ee a fost Junio C Hamano, acum 23 de ore
Titlul era >>t4119: test autocomputing -p pentru intrarea diferenţială tradiţională.<
Substituenții sunt:
· %H: comite hash
· %h: abreviat commit hash
· %T: hash de copac
· %t: tree hash prescurtat
· %P: hash-uri părinte
· %p: hash-uri părinte abreviate
· %un: numele autorului
· %un: numele autorului (respectând .mailmap, vezi git-shortlog(1) sau git-vina(1))
· %ae: e-mailul autorului
· %aE: e-mailul autorului (respectând .mailmap, vezi git-shortlog(1) sau git-vina(1))
· %anunț: data autorului (formatul respectă opțiunea --date=)
· %anunț: data autorului, stil RFC2822
· %ar: data autorului, rudă
· %la: data autorului, marcaj temporal UNIX
· %ai: data autorului, format asemănător ISO 8601
· %aI: data autorului, format strict ISO 8601
· %cn: numele comisarului
· %cN: numele committerului (respectând .mailmap, vezi git-shortlog(1) sau git-vina(1))
· %ce: e-mailul comisionarului
· %cE: e-mailul committerului (respectând .mailmap, vezi git-shortlog(1) sau git-vina(1))
· %CD: data comisiei (formatul respectă opțiunea --date=)
· %CD: data comiterii, stil RFC2822
· %cr: data comiterii, rudă
· %CT: data comiterii, marcaj temporal UNIX
· %ci: data commiterii, format asemănător ISO 8601
· %cI: data comisiei, format strict ISO 8601
· %d: nume de ref, cum ar fi opțiunea --decorate a git-log(1)
· %D: nume de ref fără împachetarea „(”, „)”.
· %e: codificare
· %s: subiect
· %f: linie de subiect igienizată, potrivită pentru un nume de fișier
· %b: corp
· %B: corp brut (subiect și corp neînveliți)
· %N: comite note
· %GG: mesaj de verificare brut de la GPG pentru un commit semnat
· %G?: afișați „G” pentru o semnătură bună, „B” pentru o semnătură proastă, „U” pentru o semnătură bună,
semnătură neîncrezătoare și „N” pentru nicio semnătură
· %GS: arată numele semnatarului pentru un commit semnat
· %GK: arată cheia folosită pentru a semna un commit semnat
· %gD: selector reflog, de exemplu, refs/stash@{1}
· %gd: selector de reflog scurtat, de exemplu, stash@{1}
· %gn: reflog nume de identitate
· %gN: numele de identitate reflog (respectând .mailmap, vezi git-shortlog(1) sau git-
vină(1))
· %GE: reflog identitate e-mail
· %GE: reflog identitate e-mail (respectând .mailmap, vezi git-shortlog(1) sau git-
vină(1))
· %gs: subiect reflog
· %Cred: comutați culoarea la roșu
· %Cverde: comută culoarea la verde
· %Cblue: comută culoarea la albastru
· %Creset: resetează culoarea
· %C(...): specificația culorii, așa cum este descris în opțiunea color.branch.* config; adăugând
automat, la început va emite culoare numai când culorile sunt activate pentru ieșirea jurnalului
(prin color.diff, color.ui sau --color și respectând setările automate ale
fosta daca mergem la un terminal). automat singur (adică %C(auto)) se va porni
colorare automată pe următorii substituenți până când culoarea este schimbată din nou.
· %m: stânga, dreapta sau marcaj de limită
· %n: linie nouă
· %%: un crud %
· %x00: imprimați un octet dintr-un cod hexadecimal
· %w([ [, [, ]]]): comutați împachetarea liniei, ca opțiunea -w a git-
shortlog(1).
· %<( [,trunc|ltrunc|mtrunc]): faceți ca următorul substituent să ia cel puțin N coloane,
spații de umplutură în partea dreaptă, dacă este necesar. Opțional, trunchiați la început
(ltrunc), mijlocul (mtrunc) sau capătul (trunc) dacă ieșirea este mai lungă decât N
coloane. Rețineți că trunchierea funcționează corect numai cu N >= 2.
· %<|( ): faceți următorul substituent să ia cel puțin până la a N-a coloane, umplutură
spatii din dreapta daca este necesar
· %>( ), %>|( ): asemănător cu %<( ), %<|( ) respectiv, dar spații de umplutură
pe stanga
· %>>( ), %>>|( ): asemănător cu %>( ), %>|( ) respectiv, cu excepția faptului că dacă
următorul substituent ocupă mai multe spații decât cele date și există spații în stânga lui,
utilizați acele spații
· %><( ), %></|( ): asemănător cu % <( ), %<|( ) respectiv, dar umplutură ambele
laturi (adică textul este centrat)
notițe
Unii substituenți pot depinde de alte opțiuni oferite motorului de traversare a revizuirii.
De exemplu, opțiunile %g* reflog vor insera un șir gol, dacă nu suntem
parcurgerea intrărilor reflog (de exemplu, prin git log -g). Se vor folosi substituenții %d și %D
formatul de decorare „scurt” dacă --decorate nu a fost deja furnizat în comandă
linia.
Dacă adăugați un + (semnul plus) după % al unui substituent, se inserează imediat un avans de linie
înainte de extindere dacă și numai dacă substituentul se extinde la un șir nevid.
Dacă adăugați un - (semnul minus) după % a unui substituent, line-feed-uri care preced imediat
expansiunea sunt șterse dacă și numai dacă substituentul se extinde la un șir gol.
Dacă adăugați un ` ` (spațiu) după % a unui substituent, un spațiu este inserat imediat înainte
extinderea dacă și numai dacă substituentul se extinde la un șir nevid.
· tformat:
tformat: formatul funcționează exact ca format:, cu excepția faptului că oferă „terminator”
semantică în loc de semantică „separatoare”. Cu alte cuvinte, fiecare commit are
caracterul de terminare a mesajului (de obicei o linie nouă) adăugat, mai degrabă decât un separator
plasat între intrări. Aceasta înseamnă că intrarea finală a unui format cu o singură linie va fi
să fie terminat corespunzător cu o nouă linie, la fel ca formatul „oneline”. Pentru
exemplu:
$ git log -2 --pretty=format:%h 4da45bef \
| perl -pe '$_ .= " -- FĂRĂ NEWLINE\n" decât dacă /\n/'
4da45be
7134973 -- FĂRĂ NEWLINE
$ git log -2 --pretty=tformat:%h 4da45bef \
| perl -pe '$_ .= " -- FĂRĂ NEWLINE\n" decât dacă /\n/'
4da45be
7134973
În plus, orice șir nerecunoscut care are un % în el este interpretat ca și cum ar avea
tformat: în fața acestuia. De exemplu, acestea două sunt echivalente:
$ git log -2 --pretty=tformat:%h 4da45bef
$ git log -2 --pretty=%h 4da45bef
COMUNĂ DIFER OPŢIUNI
-p, -u, --patch
Generați patch (vezi secțiunea despre generarea patch-urilor).
-s, --no-patch
Suprimați ieșirea dif. Util pentru comenzi precum git show care arată patch-ul de
implicit sau pentru a anula efectul --patch.
-U , --unificat=
Generați diferențe cu linii de context în loc de cele trei obișnuite. Implică -p.
--brut
Pentru fiecare commit, afișați un rezumat al modificărilor utilizând formatul brut diff. Vedeți „RAW
FORMAT DE IEȘIRE" din secțiunea git-diff(1). Acest lucru este diferit de afișarea jurnalului în sine
în format brut, pe care îl puteți realiza cu --format=raw.
--patch-cu-raw
Sinonim pentru -p --raw.
--minim
Petreceți timp suplimentar pentru a vă asigura că se produce cea mai mică diferență posibilă.
--răbdare
Generați o diferență folosind algoritmul „diferă răbdare”.
--histograma
Generați o diferență utilizând algoritmul „diferent histogramei”.
--diff-algorithm={răbdare|minimal|histogramă|myers}
Alegeți un algoritm de diferență. Variantele sunt următoarele:
implicit, myers
Algoritmul de bază greedy diff. În prezent, acesta este implicit.
minim
Petreceți timp suplimentar pentru a vă asigura că se produce cea mai mică diferență posibilă.
răbdare
Utilizați algoritmul „diferă răbdare” atunci când generați patch-uri.
histograma
Acest algoritm extinde algoritmul de răbdare pentru a „suporta obișnuința cu ocurență redusă
elemente”.
De exemplu, dacă ați configurat variabila diff.algorithm la o valoare care nu este implicită și
doriți să utilizați cea implicită, atunci trebuie să utilizați opțiunea --diff-algorithm=default.
--stat[= [, [, ]]]
Generați un diffstat. În mod implicit, va fi folosit atât spațiu cât este necesar pentru
partea de nume de fișier, iar restul pentru partea de grafic. Lățimea maximă este implicită la terminal
sau 80 de coloane dacă nu este conectat la un terminal și poate fi suprascris de .
Lățimea părții nume de fișier poate fi limitată prin acordarea unei alte lățime
după o virgulă. Lățimea părții graficului poate fi limitată prin utilizarea
--stat-graph-width= (afectează toate comenzile care generează un grafic statistic) sau prin
setarea diff.statGraphWidth= (nu afectează git format-patch). Dând o
al treilea parametru , puteți limita rezultatul la primul linii, urmate
de... dacă sunt mai multe.
Acești parametri pot fi, de asemenea, setați individual cu --stat-width= ,
--stat-name-width= și --stat-count= .
--numstat
Similar cu --stat, dar arată numărul de linii adăugate și șterse în notație zecimală și
cale fără abreviere, pentru a o face mai prietenoasă cu mașinile. Pentru fișierele binare,
iese doi - în loc să spună 0 0.
--shortstat
Ieșiți numai ultima linie a formatului --stat care conține numărul total de modificări
fișiere, precum și numărul de linii adăugate și șterse.
--dirstat[= ]
Produceți distribuția cantității relative de modificări pentru fiecare subdirector. The
comportamentul lui --dirstat poate fi personalizat prin trecerea unei liste separate prin virgulă
parametrii. Valorile implicite sunt controlate de variabila de configurare diff.dirstat
(A se vedea git-config(1)). Sunt disponibili următorii parametri:
schimbari
Calculați numerele dirstat numărând liniile care au fost eliminate din
sursă sau adăugată la destinație. Aceasta ignoră cantitatea de cod pur
mișcări în cadrul unui fișier. Cu alte cuvinte, rearanjarea liniilor într-un fișier nu este
contate la fel de mult ca și alte modificări. Acesta este comportamentul implicit când nu există niciun parametru
este dată.
linii
Calculați numerele de dirstat făcând analiza obișnuită a diferențelor bazate pe linii și
însumând numărul de linii eliminate/adăugate. (Pentru fișierele binare, numărați bucățile de 64 de octeți
în schimb, deoarece fișierele binare nu au un concept natural de linii). Acesta este un mai mult
comportamentul --dirstat scump decât comportamentul modificări, dar contează
linii rearanjate într-un fișier la fel de mult ca și alte modificări. Rezultatul rezultat este
în concordanță cu ceea ce obțineți de la celelalte opțiuni --*stat.
fișiere
Calculați numerele de dirstat numărând numărul de fișiere modificate. Fiecare s-a schimbat
fișierul contează în mod egal în analiza dirstat. Acesta este cel mai ieftin din punct de vedere computațional
--dirstat comportament, deoarece nu trebuie să se uite deloc la conținutul fișierului.
cumulat
Numărați modificările dintr-un director copil și pentru directorul părinte. Rețineți că
la utilizarea cumulativă, suma procentelor raportate poate depăși 100%. The
comportamentul implicit (non-cumulativ) poate fi specificat cu non-cumulative
parametru.
Un parametru întreg specifică un procent de limită (3% implicit). Directoare
care contribuie mai puțin decât acest procent din modificări nu sunt afișate în rezultat.
Exemplu: Următoarele vor număra fișierele modificate, ignorând în același timp directoarele cu mai puțin
mai mult de 10% din cantitatea totală de fișiere modificate și numărul total de directoare copii acumulate
în directoarele părinte: --dirstat=files,10,cumulative.
--rezumat
Produceți un rezumat condensat al informațiilor extinse din antet, cum ar fi creații, redenumiri
și schimbări de mod.
--patch-with-stat
Sinonim pentru -p --stat.
-z
Separați commit-urile cu NUL-uri în loc de noi linii noi.
De asemenea, atunci când a fost dat --raw sau --numstat, nu folosiți nume de căi și folosiți NUL ca
terminatoare de câmp de ieșire.
Fără această opțiune, fiecare cale de ieșire va avea TAB, LF, ghilimele duble și
Caracterele bară oblică inversă înlocuite cu \t, \n, \", și, respectiv, \\ și calea
vor fi incluse între ghilimele duble dacă a avut loc vreuna dintre aceste înlocuiri.
--numai-nume
Afișați numai numele fișierelor modificate.
--name-status
Afișați numai numele și starea fișierelor modificate. Consultați descrierea --diff-filter
opțiune despre ce înseamnă literele de stare.
--submodul[= ]
Specificați modul în care sunt afișate diferențele dintre submodule. Când --submodule sau --submodule=log
este dat, cel log este utilizat formatul. Acest format listează commit-urile din interval like git-
submodulul(1) rezumatul face. Omiterea opțiunii --submodule sau specificarea
--submodule=scurt, folosește mic de statura format. Acest format arată doar numele
se comite la începutul și la sfârșitul intervalului. Poate fi ajustat prin intermediul submodulului diff
variabila de configurare.
--culoare[= ]
Afișați diferența colorată. --culoare (adică fără =) este la fel cu --color=always.
poate fi unul dintre întotdeauna, niciodată sau automat.
--fara-culoare
Dezactivați diferența colorată. Este la fel ca --color=never.
--cuvânt-dif[= ]
Afișați un cuvânt diferență, folosind a delimita cuvintele schimbate. În mod implicit, cuvintele sunt
delimitat de spații albe; vezi mai jos --word-diff-regex. The implicit la simplu,
și trebuie să fie unul dintre:
culoare
Evidențiați cuvintele modificate folosind doar culori. Implica --culoare.
simplu
Afișați cuvintele ca [-removed-] și {+added+}. Nu face nicio încercare de a scăpa de
delimitatori dacă apar în intrare, deci ieșirea poate fi ambiguă.
porţelan
Utilizați un format special bazat pe linii destinat consumului de scripturi.
Execuțiile adăugate/eliminate/neschimbate sunt tipărite în formatul obișnuit de diferență unificată,
începând cu un caracter +/-/` ` la începutul liniei și extinzându-se până la
capătul liniei. Liniile noi din intrare sunt reprezentate printr-un tilde ~ pe o linie
Pe cont propriu.
nici unul
Dezactivați din nou diferența de cuvinte.
Rețineți că, în ciuda numelui primului mod, culoarea este folosită pentru a evidenția cele modificate
piese în toate modurile dacă sunt activate.
--word-diff-regex=
Utilizare pentru a decide ce este un cuvânt, în loc să luați în considerare șiruri de non-spații albe
fii un cuvânt. De asemenea, implică --word-diff dacă nu a fost deja activat.
Fiecare meci care nu se suprapune din este considerat un cuvânt. Orice între
aceste potriviri sunt considerate spații albe și ignorate(!) în scopul găsirii
diferențe. Poate doriți să adăugați |[^[:space:]] la expresia dvs. obișnuită de făcut
asigurați-vă că se potrivește cu toate caracterele care nu sunt spații albe. O potrivire care conține o linie nouă este
trunchiat în tăcere(!) la noua linie.
De exemplu, --word-diff-regex=. va trata fiecare personaj ca pe un cuvânt și,
în mod corespunzător, arată diferențele caracter cu caracter.
Regex poate fi, de asemenea, setat printr-un driver de diferență sau o opțiune de configurare, vezi
gitattributes(1) sau git-config(1). Oferându-l în mod explicit, suprascrie orice driver de diferență sau
setare de configurare. Driverele diferite anulează setările de configurare.
--culoare-cuvinte[= ]
Echivalent cu --word-diff=color plus (dacă a fost specificată o expresie regex)
--word-diff-regex= .
--fără-denumiri
Dezactivați detectarea redenumirii, chiar și atunci când fișierul de configurare oferă opțiunea implicită
soare
--Verifica
Avertizați dacă modificările introduc erori de spații albe. Ceea ce sunt considerate erori de spațiu alb este
controlat de configurația core.spațiu alb. În mod implicit, spațiile albe în urmă
(inclusiv linii care constau numai din spații albe) și un caracter de spațiu care este
urmat imediat de un caracter de tabulație în interiorul indentării inițiale a liniei sunt
considerate erori de spațiu alb. Iese cu starea diferită de zero dacă sunt găsite probleme. Nu
compatibil cu --exit-code.
--ws-error-highlight=
Evidențiați erorile de spații albe pe liniile specificate de în culoarea specificată de
culoare.diff.spațiu alb. este o listă separată prin virgulă de context vechi, nou. Cand
această opțiune nu este dată, sunt evidențiate doar erorile de spații albe din liniile noi. De exemplu
--ws-error-highlight=nou, vechi evidențiază erorile de spații albe atât pentru șterse cât și pentru adăugate
linii. toate pot fi folosite ca prescurtare pentru vechi, nou, context.
--full-index
În loc de prima mână de caractere, afișați întregul blob pre- și post-imagine
nume de obiecte pe linia „index” atunci când se generează formatul de corecție.
--binar
Pe lângă --full-index, scoateți un difer binar care poate fi aplicat cu git-apply.
--abbrev[= ]
În loc să afișeze numele complet al obiectului hexazecimal de 40 de octeți în formatul diff-raw
și liniile de antet arborele diff, arată doar un prefix parțial. Aceasta este independentă de
--full-index opțiunea de mai sus, care controlează formatul de ieșire al patch-ului diff. Neimplicit
numărul de cifre poate fi specificat cu --abbrev= .
-B[ ][/ ], --break-rewrites[=[ ][/ ]]
Împărțiți modificările complete de rescrie în perechi de ștergere și creați. Aceasta servește două
scopuri:
Afectează modul în care o modificare care echivalează cu o rescrie totală a unui fișier, nu ca o serie
de ștergere și inserare amestecate împreună cu foarte puține linii care se întâmplă să se potrivească
textual ca context, ci ca o singură ștergere a tot ceea ce este vechi, urmată de a
inserarea unică a tot ceea ce este nou, iar numărul m controlează acest aspect al -B
opțiune (implicit la 60%). -B/70% specifică că mai puțin de 30% din original ar trebui
rămâne în rezultat pentru ca Git să-l considere o rescrire totală (adică, în caz contrar,
patch-ul rezultat va fi o serie de ștergere și inserare amestecate împreună cu contextul
linii).
Când este utilizat cu -M, un fișier rescris în totalitate este, de asemenea, considerat sursă a unui
redenumire (de obicei -M consideră doar un fișier care a dispărut ca sursă a unei redenumiri),
iar numărul n controlează acest aspect al opțiunii -B (implicit la 50%). -B20%
specifică că o modificare cu adăugare și ștergere în comparație cu 20% sau mai mult din
dimensiunea fișierului sunt eligibile pentru a fi preluate ca o posibilă sursă de redenumire
alt dosar.
-M[ ], --find-renames[= ]
Dacă se generează diferențe, detectați și raportați redenumiri pentru fiecare comitere. Pentru următoarele fișiere
prin redenumiri în timp ce parcurgeți istoria, vedeți --follow. Dacă n este specificat, este a
pragul indicelui de similitudine (adică cantitatea de adăugare/ștergere în comparație cu
dimensiunea fișierului). De exemplu, -M90% înseamnă că Git ar trebui să considere o pereche de ștergere/adăugare drept a
redenumiți dacă mai mult de 90% din fișier nu s-a modificat. Fără semnul %, numărul este to
se citește ca o fracție, cu un punct zecimal înainte. Adică, -M5 devine 0.5 și este
deci la fel ca -M50%. În mod similar, -M05 este același cu -M5%. Pentru a limita detectarea la
redenumiri exacte, utilizați -M100%. Indicele de similaritate implicit este de 50%.
-C[ ], --găsește-copii[= ]
Detectează copii, precum și redenumiri. Vezi și --find-copies-harder. Dacă n este specificat, acesta
are aceeași semnificație ca și pentru -M .
--găsește-copii-mai greu
Din motive de performanță, în mod implicit, opțiunea -C găsește copii numai dacă fișierul original
a copiei a fost modificată în același set de modificări. Acest steag face comanda inspectării
fișiere nemodificate ca candidați pentru sursa copiei. Acesta este un foarte scump
operațiune pentru proiecte mari, așa că utilizați-l cu precauție. Oferă mai mult de o opțiune -C
are același efect.
-D, --ireversibil-stergere
Omiteți preimaginea pentru ștergere, adică imprimați doar antetul, dar nu și diferența dintre
preimage și /dev/null. Plasturele rezultat nu este destinat să fie aplicat cu plasture sau
git apply; acest lucru este doar pentru persoanele care doresc să se concentreze doar pe revizuirea
text după modificare. În plus, de ieşire, evident, lipsesc suficiente informaţii pentru a
aplica un astfel de patch invers, chiar si manual, de unde si denumirea optiunii.
Când este utilizat împreună cu -B, omiteți și preimaginea din partea de ștergere a lui a
sterge/creeaza pereche.
-l
Opțiunile -M și -C necesită timp de procesare O(n^2), unde n este numărul de
potențiale ținte de redenumire/copiere. Această opțiune împiedică rularea detectării de redenumire/copiere
dacă numărul de ținte de redenumire/copiere depășește numărul specificat.
--diff-filter=[(A|C|D|M|R|T|U|X|B)...[*]]
Selectați numai fișierele adăugate (A), copiate (C), șterse (D), modificate (M), redenumite
(R), tipul lor (adică fișier obișnuit, legătură simbolică, submodul, ...) schimbat (T), sunt
Necontopite (U), sunt Necunoscute (X) sau au avut împerecherea întreruptă (B). Orice combinație
dintre caracterele de filtru (inclusiv niciunul) pot fi utilizate. Când se adaugă * (Totul sau niciunul).
la combinație, toate căile sunt selectate dacă există vreun fișier care se potrivește cu altele
criterii în comparație; daca nu exista nici un dosar care sa corespunda altor criterii, nimic
este selectat.
-S
Căutați diferențele care modifică numărul de apariții ale șirului specificat
(adică adăugare/ștergere) într-un fișier. Destinat utilizării scriptorului.
Este util atunci când căutați un bloc exact de cod (cum ar fi o structură) și doriți
pentru a cunoaște istoria acelui bloc de când a apărut pentru prima dată: utilizați caracteristica
iterativ pentru a alimenta blocul interesant din preimagine înapoi în -S și continuați
până când obțineți prima versiune a blocului.
-G
Căutați diferențele al căror text de corecție conține linii adăugate/eliminate care se potrivesc .
Pentru a ilustra diferența dintre -S --pickaxe-regex și -G , considera
o comitere cu următoarea diferență în același fișier:
+ return !regexec(regexp, two->ptr, 1, ®match, 0);
...
- hit = !regexec(regexp, mf2.ptr, 1, ®match, 0);
În timp ce git log -G"regexec\(regexp" va afișa acest commit, git log -S"regexec\(regexp"
--pickaxe-regex nu va (deoarece numărul de apariții ale acelui șir nu a făcut-o
Schimbare).
A se vedea târnăcop intrare in gitdiffcore(7) pentru mai multe informații.
--târnăcope-toate
Când -S sau -G găsește o modificare, afișați toate modificările din acel set de modificări, nu doar
fișierele care conțin modificarea în .
--târnăcop-regex
Tratează dat la -S ca o expresie regulată POSIX extinsă pentru a se potrivi.
-O
Ieșiți patch-ul în ordinea specificată în , care are un shell glob
model pe linie. Aceasta suprascrie variabila de configurare diff.orderFile (vezi git-
config(1)). Pentru a anula diff.orderFile, utilizați -O/dev/null.
-R
Schimbați două intrări; adică, arată diferențele de la index sau fișier de pe disc la arbore
cuprins.
--relativ[= ]
Când rulează dintr-un subdirector al proiectului, i se poate spune să excludă modificările din exterior
directorul și afișați căile legate de acesta cu această opțiune. Când nu ești în
un subdirector (de exemplu, într-un depozit simplu), puteți numi ce subdirector să faceți
ieșirea relativ la dând a ca argument.
-un text
Tratați toate fișierele ca text.
--ignore-space-at-eol
Ignorați modificările în spațiul alb la EOL.
-b, --ignora-schimbarea-spațiului
Ignorați modificările cantității de spațiu alb. Acest lucru ignoră spațiile albe la sfârșitul liniei și
consideră că toate celelalte secvențe ale unuia sau mai multor caractere de spațiu alb sunt echivalente.
-w, --ignore-tot-spațiul
Ignorați spațiile albe când comparați liniile. Acest lucru ignoră diferențele chiar dacă o linie are
spațiu alb unde cealaltă linie nu are niciuna.
--ignora-linii-albe
Ignorați modificările ale căror linii sunt toate goale.
--inter-hunk-context=
Afișați contextul dintre bucățile de diferență, până la numărul specificat de linii, astfel
fuzionarea unor bucăți care sunt aproape una de alta.
-W, --funcție-context
Arată toate funcțiile din jur ale modificărilor.
--ext-dif
Permiteți executarea unui ajutor extern de diferență. Dacă setați un driver de diferență extern cu
gitattributes(5), trebuie să utilizați această opțiune cu git-log(1) și prieteni.
--no-ext-diff
Nu permiteți driverele de diferență externe.
--textconv, --no-textconv
Permiteți (sau interziceți) rularea filtrelor externe de conversie a textului la compararea binarului
fișiere. Vedea gitattributes(5) pentru detalii. Deoarece filtrele textconv sunt de obicei a
conversie unidirecțională, diferența rezultată este potrivită pentru consumul uman, dar nu poate
a fi aplicat. Din acest motiv, filtrele textconv sunt activate implicit numai pentru git-
dif(1) și git-log(1), dar nu pentru git-format-patch(1) sau diferite comenzi de instalații sanitare.
--ignore-submodule[= ]
Ignorați modificările aduse submodulelor în generarea dif. poate fi fie „niciunul”,
„untracked”, „dirty” sau „all”, care este implicit. Folosind „niciunul” se va lua în considerare
submodulul modificat atunci când conține fie fișiere neurmărite sau modificate, fie HEAD
diferă de commit-ul înregistrat în superproiect și poate fi folosit pentru a suprascrie oricare
setările de ignora opțiune în git-config(1) sau gitmodules(5). Când „ne urmărit” este
submodulele folosite nu sunt considerate murdare atunci când conțin doar conținut neurmărit (dar
sunt încă scanate pentru conținut modificat). Utilizarea „dirty” ignoră toate modificările aduse
arborele de lucru al submodulelor, doar modificările aduse commit-urilor stocate în superproiect sunt
afișat (acesta a fost comportamentul până la 1.7.0). Utilizarea „toate” ascunde toate modificările aduse
submodule.
--src-prefix=
Afișați prefixul sursă dat în loc de „a/”.
--dst-prefix=
Afișați prefixul de destinație dat în loc de „b/”.
--fără-prefix
Nu afișați niciun prefix sursă sau destinație.
Pentru explicații mai detaliate despre aceste opțiuni comune, consultați și gitdiffcore(7).
GENERATOR PLASTURI CU -P
Când „git-diff-index”, „git-diff-tree” sau „git-diff-files” sunt executate cu un -p opțiunea, „git
dif” fără --brut opțiunea sau „git log” cu opțiunea „-p”, acestea nu produc
ieșire descrisă mai sus; în schimb produc un fișier de corecție. Puteți personaliza creația
a unor astfel de patch-uri prin variabilele de mediu GIT_EXTERNAL_DIFF și GIT_DIFF_OPTS.
Ceea ce produce opțiunea -p este ușor diferit de formatul tradițional de diferență:
1. Este precedat de un antet „git diff” care arată astfel:
diff --git a/fișier1 b/fișier2
Numele fișierelor a/ și b/ sunt aceleași, cu excepția cazului în care este implicată redenumirea/copierea. Mai ales, chiar
pentru o creare sau o ștergere, /dev/null este nu folosit în locul a/ sau b/
nume de fișiere.
Când este implicată redenumirea/copiere, fișierul1 și fișierul2 arată numele fișierului sursă al fișierului
rename/copy și respectiv numele fișierului pe care îl produce rename/copy.
2. Este urmată de una sau mai multe linii de antet extinse:
mod vechi
mod nou
modul fișier șters
nou mod de fișier
copie de la
copiaza in
redenumi din
redenumiți în
indice de similitudine
indicele de disimilare
index ..
Modurile de fișiere sunt tipărite ca numere octale din 6 cifre, inclusiv tipul și fișierul
biți de permisiune.
Numele căilor din anteturile extinse nu includ prefixele a/ și b/.
Indicele de similitudine este procentul de linii neschimbate, iar indicele de disimilaritate
este procentul liniilor modificate. Este un număr întreg rotunjit în jos, urmat de a
semn de procente. Valoarea indicelui de similaritate de 100% este astfel rezervată pentru două fișiere egale,
în timp ce diferența de 100% înseamnă că nicio linie din fișierul vechi nu a ajuns în noul
unul.
Linia de index include suma de control SHA-1 înainte și după modificare. The este
inclus dacă modul fișier nu se schimbă; în caz contrar, linii separate indică vechiul
și noul mod.
3. Caracterele TAB, LF, ghilimele duble și bara oblică inversă în numele căilor sunt reprezentate ca \t, \n,
\" și respectiv \\. Dacă este nevoie de o astfel de înlocuire, atunci întregul
calea este pusă între ghilimele duble.
4. Toate fișierele fișier1 din ieșire se referă la fișiere înainte de comitere și toate fișierele2
fișierele se referă la fișiere după comitere. Este incorect să aplicați fiecare modificare fiecăruia
fişier secvenţial. De exemplu, acest patch va schimba a și b:
diff --git a/ab/b
redenumiți de la a
redenumiți în b
diff --git a/bb/a
redenumiți din b
redenumiți în a
COMBINAT DIFER FORMAT
Orice comandă de generare a diferențelor poate lua opțiunea -c sau --cc pentru a produce a combinate dif cand
arătând o îmbinare. Acesta este formatul implicit când se afișează îmbinările cu git-diff(1) sau git-
Arăta(1). Rețineți, de asemenea, că puteți da opțiunea -m oricăreia dintre aceste comenzi pentru a forța
generarea de diferențe cu părinții individuali ai unei fuziuni.
A combinate dif formatul arată astfel:
diff --combined describe.c
index fabadb8,cc95eb0..4866510
--- a/descrie.c
+++ b/descrie.c
@@@ -98,20 -98,12 +98,20 @@@
return (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1;
}
- static void describe(char *arg)
-static void describe(struct commit *cmit, int last_one)
++ static void describe(char *arg, int last_one)
{
+ nesemnat char sha1[20];
+ struct commit *cmit;
struct commit_list *listă;
static int initializat = 0;
struct commit_name *n;
+ if (get_sha1(arg, sha1) < 0)
+ utilizare(descrie_utilizare);
+ cmit = lookup_commit_reference(sha1);
+ dacă (!cmit)
+ utilizare(descrie_utilizare);
+
dacă (!inițializat) {
initializat = 1;
for_each_ref(get_name);
1. Este precedat de un antet „git diff”, care arată astfel (când -c opțiunea este
folosit):
diff --fișier combinat
sau așa (când --cc este folosită opțiunea):
diff --cc fișier
2. Este urmată de una sau mai multe linii de antet extinse (acest exemplu arată o îmbinare cu
doi părinți):
index , ..
modul , ..
nou mod de fișier
modul fișier șters ,
Modul , .. linia apare numai dacă cel puțin unul dintre este
diferit de restul. Antete extinse cu informații despre conținutul detectat
mișcarea (redenumirea și detectarea copierii) sunt proiectate să funcționeze cu diferențe de două
și nu sunt utilizate de formatul de dif. combinat.
3. Este urmată de antetul cu două linii de la fișier/în fișier
--- un fișier
+++ b/fișier
Similar cu antetul pe două rânduri pentru tradițional unificat diff, pentru care este folosit /dev/null
semnal de fișiere create sau șterse.
4. Formatul antetului blocului este modificat pentru a preveni ca oamenii să-l alimenteze accidental
patch -p1. Formatul combinat de diferențe a fost creat pentru revizuirea modificărilor de comitere de îmbinare și
nu a fost destinat să se aplice. Modificarea este similară cu schimbarea extinsului index
antet:
@@@ @@@
Există (număr de părinți + 1) @ caractere în antetul fragmentului pentru diferența combinată
format.
Spre deosebire de tradițional unificat diff, care arată două fișiere A și B cu un singur
coloană care are - (minus — apare în A, dar eliminată în B), + (plus — lipsește în A dar
adăugat la B) sau prefixul „ ” (spațiu — neschimbat), acest format compară două sau mai multe fișiere
fișier1, fișier2,... cu un fișier X și arată cum diferă X de fiecare fișier N. O coloană
pentru fiecare dintre fișierele N este adăugată la linia de ieșire pentru a observa modul în care linia lui X este diferită de
aceasta.
A - caracterul din coloana N înseamnă că linia apare în fișierul N, dar nu apare
în rezultat. Un caracter + în coloana N înseamnă că linia apare în rezultat,
și fileN nu are acea linie (cu alte cuvinte, linia a fost adăugată, din punctul de
punctul de vedere al părintelui respectiv).
În rezultatul exemplului de mai sus, semnătura funcției a fost schimbată din ambele fișiere (de aici două
- eliminări atât din fișierul1 cât și din fișierul2, plus ++ pentru a însemna că o linie care a fost adăugată nu
apar fie în fișierul1, fie în fișierul2). De asemenea, alte opt linii sunt aceleași din file1, dar nu
nu apar în fișierul 2 (deci prefixat cu +).
Când este afișat de git diff-tree -c, compară părinții unui comit de îmbinare cu îmbinare
rezultat (adică file1..fileN sunt părinții). Când este afișat de git diff-files -c, se compară
cei doi părinți de îmbinare nerezolvați cu fișierul arbore de lucru (adică fișierul 1 este etapa 2 aka
„versiunea noastră”, fișierul 2 este etapa 3, alias „versiunea lor”).
EXEMPLE
git log --no-merges
Afișează întregul istoric al comitărilor, dar omite orice îmbinări
git log v2.6.12.. include/scsi drivers/scsi
Afișați toate comiterile de la versiune v2.6.12 care a schimbat orice fișier din include/scsi sau
drivere/subdirectoare scsi
git log --since="acum 2 săptămâni" -- gitk
Afișați modificările din ultimele două săptămâni ale fișierului gitk. „--” este necesar pentru a
evitați confuzia cu ramură numit gitk
git log --name-status release..test
Afișați commit-urile care sunt în ramura „test”, dar care nu sunt încă în ramura „release”,
împreună cu lista de căi pe care fiecare commit le modifică.
git log --follow builtin/rev-list.c
Afișează comiterile care s-au modificat builtin/rev-list.c, inclusiv acele comite care
a avut loc înainte ca fișierul să primească numele actual.
git log --branches --not --remotes=origin
Afișează toate commit-urile care sunt în oricare dintre filialele locale, dar nu în niciuna de urmărire la distanță
ramuri pentru origine (ceea ce ai acea origine nu are).
git log master --not --remotes=*/master
Afișează toate commit-urile care sunt în master local, dar nu în orice master de depozit la distanță
ramuri.
git log -p -m --primul-părinte
Afișează istoricul, inclusiv diferențele de modificare, dar numai din perspectiva „ramurului principal”,
omiterea comiterilor care provin din ramuri îmbinate și afișarea diferențelor complete de modificări
introduse prin fuziuni. Acest lucru are sens numai atunci când urmează o politică strictă de
îmbinarea tuturor ramurilor de subiect atunci când rămâneți pe o singură ramură de integrare.
git log -L '/int main/',/^}/:main.c
Arată modul în care funcția main() din fișierul main.c a evoluat în timp.
git log -3
Limitează numărul de comite de afișat la 3.
DISCUŢIE
Git este într-o oarecare măsură codificarea caracterelor agnostic.
· Conținutul obiectelor blob sunt secvențe neinterpretate de octeți. Nu este
codificarea traducerii la nivel de bază.
· Numele căilor sunt codificate în forma de normalizare UTF-8 C. Acest lucru se aplică obiectelor arborescente,
fișierul index, numele referințelor, precum și numele căilor în argumentele liniei de comandă,
variabilele de mediu și fișierele de configurare (.git/config (vezi git-config(1)), gitignore(5),
gitattributes(5) și gitmodules(5)).
Rețineți că Git la nivelul de bază tratează numele căilor pur și simplu ca secvențe de non-NUL
octeți, nu există conversii de codificare a numelui căii (cu excepția Mac și Windows).
Prin urmare, utilizarea numelor de căi non-ASCII va funcționa în cea mai mare parte chiar și pe platforme și fișiere
sisteme care utilizează codificări ASCII extinse vechi. Cu toate acestea, depozitele create pe
astfel de sisteme nu vor funcționa corect pe sisteme bazate pe UTF-8 (de exemplu, Linux, Mac, Windows)
si invers. În plus, multe instrumente bazate pe Git presupun pur și simplu că sunt numele de căi
UTF-8 și nu va afișa corect alte codificări.
· Mesajele de jurnal de comitere sunt de obicei codificate în UTF-8, dar alte codificări ASCII extinse
sunt de asemenea suportate. Aceasta include ISO-8859-x, CP125x și multe altele, dar nu
Codări multi-octeți UTF-16/32, EBCDIC și CJK (GBK, Shift-JIS, Big5, EUC-x, CP9xx
etc.).
Deși încurajăm ca mesajele de jurnal de comitere să fie codificate în UTF-8, atât nucleul, cât și
Git Porcelain sunt concepute pentru a nu forța UTF-8 pe proiecte. Dacă toți participanții a
un anumit proiect consideră că este mai convenabil să folosească codificări vechi, Git nu interzice
aceasta. Cu toate acestea, există câteva lucruri de reținut.
1. merge comite și merge commit-tree emite un avertisment dacă mesajul de jurnal de comitere care i-a fost dat
nu arată ca un șir UTF-8 valid, cu excepția cazului în care spuneți în mod explicit că proiectul dvs. folosește a
codificare moștenită. Modul de a spune acest lucru este să aveți i18n.commitencoding în .git/config
fișier, așa:
[i18n]
commitencoding = ISO-8859-1
Obiectele Commit create cu setarea de mai sus înregistrează valoarea i18n.commitencoding
în antetul său de codificare. Acest lucru este pentru a ajuta alți oameni care se uită la ele mai târziu. Lipsă
acest antet implică faptul că mesajul de jurnal de comitere este codificat în UTF-8.
2. merge log, merge Arăta, merge vină iar prietenii se uită la antetul de codificare al unui commit
obiect și încercați să recodificați mesajul de jurnal în UTF-8, dacă nu se specifică altfel. Tu
poate specifica codificarea de ieșire dorită cu i18n.logoutputencoding în .git/config
fișier, așa:
[i18n]
codificare logoutput = ISO-8859-1
Dacă nu aveți această variabilă de configurare, valoarea i18n.commitencoding este
folosit în schimb.
Rețineți că am ales în mod deliberat să nu recodificăm mesajul de jurnal de comitere atunci când o comitere este
făcut pentru a forța UTF-8 la nivelul obiectului de comitere, deoarece recodificarea la UTF-8 nu este
neapărat o operaţie reversibilă.
CONFIGURARE
Vedea git-config(1) pentru variabilele de bază și git-diff(1) pentru setările legate de dif
generaţie.
format.destul
Implicit pentru opțiunea --format. (Vedea Frumos Formate mai sus.) Implicit la mediu.
i18n.logOutputEncoding
Codificare de utilizat la afișarea jurnalelor. (Vedea Discuție mai sus.) Implicit la valoarea de
i18n.commitEncoding dacă este setat și UTF-8 în caz contrar.
jurnal.data
Format implicit pentru date care pot fi citite de om. (Comparați opțiunea --date.) Implicit la
„implicit”, ceea ce înseamnă să scrieți date precum Sat May 8 19:35:34 2010 -0500.
log.urmare
Dacă este adevărat, git log va acționa ca și cum opțiunea --follow a fost folosită atunci când o singură este
dat. Acesta are aceleași limitări ca --follow, adică nu poate fi folosit pentru a urmări
fișiere multiple și nu funcționează bine în istoricul neliniar.
log.showRoot
Dacă este fals, git log și comenzile aferente nu vor trata commit-ul inițial ca pe un mare
eveniment de creație. Orice comitere rădăcină în ieșirea git log -p ar fi afișată fără un difer
atașat. Valoarea implicită este adevărată.
hartă poștală.*
Vedea git-shortlog(1).
note.displayRef
Care refs, în plus față de setarea implicită de core.notesRef sau GIT_NOTES_REF, a citi
note de la afișarea mesajelor de comitere cu familia de comenzi de jurnal. Vedea git-
notiţe(1).
Poate fi un nume de referință neabreviat sau un glob și poate fi specificat de mai multe ori. A
avertismentul va fi emis pentru referințe care nu există, dar un glob care nu se potrivește cu niciunul
refs este ignorat în tăcere.
Această setare poate fi dezactivată de opțiunea --no-notes, înlocuită de
GIT_NOTES_DISPLAY_REF variabilă de mediu și înlocuită de --notes=
opțiune.
GIT
O parte din merge(1) apartament
Utilizați git-log online folosind serviciile onworks.net