git-rev-list(1): Skillnad mellan sidversioner

Från Wiki.linux.se -Linux wikipedia på Svenska.
Hoppa till navigering Hoppa till sök
(Skapade sidan med '== NAMN == '''git-rev-list''' — listar commit-objekt i omvänd kronologisk ordning == SYNOPSIS == <pre> git rev-list [<flaggor>] <commit>... [--] [<sökväg>...] </pre> == BESKRIVNING == '''git rev-list''' listar commits som kan nås genom att följa '''parent'''-länkarna från de angivna commit-objekten, men utesluter commits som kan nås från de objekt som anges med ett '''^''' framför sig. Utdata ges som standard i omvänd kronologisk ordning. Man kan tänk...')
 
 
(2 mellanliggande sidversioner av samma användare visas inte)
Rad 611: Rad 611:


Flaggan kan anges flera gånger. Om så sker inkluderas en commit om den är någon av de angivna commitsen, eller om den är förfader eller ättling till någon av dem.
Flaggan kan anges flera gånger. Om så sker inkluderas en commit om den är någon av de angivna commitsen, eller om den är förfader eller ättling till någon av dem.
'''--simplify-by-decoration'''
Flaggan '''--simplify-by-decoration''' gör det möjligt att bara se den stora bilden av historikens topologi genom att utelämna commits som inte refereras av taggar.
Commits markeras som '''!TREESAME''' — med andra ord behålls de efter reglerna för historieförenkling ovan — om:
1. de refereras av taggar, eller
2. de ändrar innehållet i de sökvägar som anges på kommandoraden.
Alla andra commits markeras som '''TREESAME''' och kan därmed förenklas bort.
=== Hjälp för bisect ===
'''--bisect'''
Begränsa utdata till ett enda commit-objekt som ligger ungefär halvvägs mellan inkluderade och exkluderade commits.
Observera att den dåliga bisect-referensen:
<pre>
refs/bisect/bad
</pre>
läggs till bland de inkluderade commitsen, om den finns. De goda bisect-referenserna:
<pre>
refs/bisect/good-*
</pre>
läggs till bland de exkluderade commitsen, om de finns.
Om det inte finns några referenser i:
<pre>
refs/bisect/
</pre>
och följande kommando:
<pre>
$ git rev-list --bisect foo ^bar ^baz
</pre>
skriver ut <i>midpoint</i>, kommer följande två kommandon att ge utdata av ungefär samma längd:
<pre>
$ git rev-list foo ^midpoint
$ git rev-list midpoint ^bar ^baz
</pre>
Att hitta den ändring som introducerar en regression reduceras därmed till en binär sökning: generera och testa upprepade gånger nya "mittpunkter" tills commit-kedjan har längden ett.
'''--bisect-vars'''
Beräknar samma sak som '''--bisect''', men använder inte referenser i:
<pre>
refs/bisect/
</pre>
Dessutom skrivs text ut som är redo att köras med shellens '''eval'''.
Raderna tilldelar:
'''bisect_rev'''
Namnet på mittpunktsrevisionen.
'''bisect_nr'''
Förväntat antal commits som återstår att testa efter att '''bisect_rev''' har testats.
'''bisect_good'''
Förväntat antal commits som återstår att testa om '''bisect_rev''' visar sig vara god.
'''bisect_bad'''
Förväntat antal commits som återstår att testa om '''bisect_rev''' visar sig vara dålig.
'''bisect_all'''
Antalet commits som för närvarande ingår i bisect-sökningen.
'''--bisect-all'''
Skriver ut alla commit-objekt mellan inkluderade och exkluderade commits, sorterade efter deras avstånd till de inkluderade och exkluderade commitsen.
Referenser i:
<pre>
refs/bisect/
</pre>
används inte.
Den commit som ligger längst bort visas först. Det är denna enda commit som visas när '''--bisect''' används.
Detta är användbart eftersom det gör det enkelt att välja en bra commit att testa när man av någon anledning vill undvika att testa vissa commits, till exempel om de inte kan kompileras.
Flaggan kan användas tillsammans med '''--bisect-vars'''. I så fall skrivs samma text ut som med '''--bisect-vars''' efter alla sorterade commit-objekt.
=== Commit-sortering ===
Som standard visas commits i omvänd kronologisk ordning.
'''--date-order'''
Visa ingen parent före att alla dess children har visats, men visa i övrigt commits i ordning efter commit-tidsstämpel.
'''--author-date-order'''
Visa ingen parent före att alla dess children har visats, men visa i övrigt commits i ordning efter author-tidsstämpel.
'''--topo-order'''
Visa ingen parent före att alla dess children har visats, och undvik att blanda commits från flera parallella historiklinjer.
Exempel på commit-historik:
<pre>
---1----2----4----7
    \              \
    3----5----6----8---
</pre>
där siffrorna anger commit-tidsstämplarnas ordning.
Med '''git rev-list''' och liknande kommandon med '''--date-order''' visas commits i tidsstämpelordning:
<pre>
8 7 6 5 4 3 2 1
</pre>
Med '''--topo-order''' kan de i stället visas som:
<pre>
8 6 5 3 7 4 2 1
</pre>
eller:
<pre>
8 7 4 2 6 5 3 1
</pre>
Det innebär att vissa äldre commits kan visas före nyare commits för att undvika att parallella utvecklingsspår blandas ihop.
'''--reverse'''
Skriv ut de valda commitsen i omvänd ordning.
Kan inte kombineras med '''--walk-reflogs'''.
=== Objekttraversering ===
Dessa flaggor är främst avsedda för packning av Git-arkiv.
'''--objects'''
Skriv ut objekt-ID:n för alla objekt som refereras av de listade commitsen.
Exempel:
<pre>
--objects foo ^bar
</pre>
betyder ungefär: "ge mig alla objekt-ID:n som jag behöver ladda ner om jag har commit-objektet '''bar''' men inte '''foo'''".
Se även '''--object-names''' nedan.
'''--in-commit-order'''
Skriv ut träd- och blob-ID:n i commit-ordning. Träd- och blob-ID:n skrivs ut efter att de först refererats av en commit.
'''--objects-edge'''
Liknar '''--objects''', men skriver även ut ID:n för exkluderade commits med ett '''-''' framför.
Detta används av [[git-pack-objects(1)]] för att bygga ett "tunt" pack, där objekt lagras i deltaform baserat på objekt som finns i dessa exkluderade commits. Det minskar nätverkstrafiken.
'''--objects-edge-aggressive'''
Liknar '''--objects-edge''', men försöker hårdare att hitta exkluderade commits, till priset av längre körningstid.
Detta används i stället för '''--objects-edge''' för att bygga tunna pack för grunda arkiv.
'''--indexed-objects'''
Låtsas som om alla träd och blobbar som används av indexet angivits på kommandoraden.
Observera att man troligen även vill använda '''--objects'''.
'''--unpacked'''
Endast användbar tillsammans med '''--objects'''. Skriv ut objekt-ID:n som inte finns i packfiler.
'''--object-names'''
Endast användbar tillsammans med '''--objects'''. Skriv ut namnen på de objekt-ID:n som hittas. Detta är standardbeteendet.
Observera att "namnet" på varje objekt är tvetydigt och främst är avsett som en ledtråd vid packning av objekt.
I synnerhet gäller:
* ingen skillnad görs mellan namn på taggar, träd och blobbar,
* sökvägsnamn kan ändras för att ta bort radbrytningar,
* om ett objekt förekommer flera gånger med olika namn visas endast ett namn.
'''--no-object-names'''
Endast användbar tillsammans med '''--objects'''. Skriv inte ut namnen på objekt-ID:n som hittas.
Detta inverterar '''--object-names''' och gör utdata enklare att tolka för kommandon som [[git-cat-file(1)]].
'''--filter='''<i><filter-spec></i>
Endast användbar tillsammans med någon av '''--objects'''-flaggorna. Utelämnar objekt, vanligen blobbar, från listan över utskrivna objekt.
<i><filter-spec></i> kan ha följande former:
'''--filter=blob:none'''
Utelämnar alla blobbar.
'''--filter=blob:limit='''<i><n></i>['''kmg''']
Utelämnar blobbar med storlek minst <i><n></i> byte eller enheter. <i><n></i> kan vara noll.
Suffixen '''k''', '''m''' och '''g''' kan användas för KiB, MiB eller GiB.
Exempel:
<pre>
blob:limit=1k
</pre>
är samma som:
<pre>
blob:limit=1024
</pre>
'''--filter=object:type='''('''tag'''|'''commit'''|'''tree'''|'''blob''')
Utelämnar alla objekt som inte är av den begärda typen.
Observera att uttryckligen angivna objekt ignorerar filter och alltid skrivs ut, om inte '''--filter-provided-objects''' också anges.
'''--filter=sparse:oid='''<i><blob-ish></i>
Använder en sparse-checkout-specifikation som finns i blobben, eller blob-uttrycket, <i><blob-ish></i> för att utelämna blobbar som inte skulle krävas för en sparse checkout på de begärda referenserna.
'''--filter=tree:'''<i><djup></i>
Utelämnar alla blobbar och träd vars djup från rotträdet är större än eller lika med <i><djup></i>.
Om ett objekt finns på flera djup används minsta djup.
<pre>
<djup>=0
</pre>
inkluderar inga träd eller blobbar, om de inte uttryckligen anges på kommandoraden eller via standard in när '''--stdin''' används.
<pre>
<djup>=1
</pre>
inkluderar endast trädet och blobbarna som refereras direkt av en commit som kan nås från <i><commit></i>, eller från ett uttryckligen angivet objekt.
<pre>
<djup>=2
</pre>
är som <i><djup>=1</i>, men inkluderar även träd och blobbar ytterligare en nivå bort från en uttryckligen angiven commit eller ett uttryckligen angivet träd.
Observera att formen:
<pre>
--filter=sparse:path=<sökväg>
</pre>
som ville läsa från en godtycklig sökväg i filsystemet har tagits bort av säkerhetsskäl.
Flera '''--filter='''-flaggor kan anges för att kombinera filter. Endast objekt som accepteras av varje filter inkluderas.
Formen:
<pre>
--filter=combine:<filter1>+<filter2>+...+<filterN>
</pre>
kan också användas för att kombinera flera filter, men detta är svårare än att bara upprepa '''--filter''' och är normalt inte nödvändigt.
Filter fogas samman med '''+''' och enskilda filter procentkodas, det vill säga URL-kodas.
Förutom '''+''' och '''%''' är följande tecken reserverade och måste också kodas:
<pre>
~ ! @ # $ ^ & * ( ) [ ] { } ; " , < > ? ' `
</pre>
samt alla tecken med ASCII-kod mindre än eller lika med:
<pre>
0x20
</pre>
vilket inkluderar mellanslag och radbrytning.
Andra godtyckliga tecken kan också kodas.
Exempelvis är följande likvärdiga:
<pre>
combine:tree:3+blob:none
combine:tree%3A3+blob%3Anone
</pre>
'''--no-filter'''
Stäng av tidigare angiven '''--filter='''-flagga.
'''--filter-provided-objects'''
Filtrera listan över uttryckligen angivna objekt. Dessa skrivs annars alltid ut även om de inte matchar något filter.
Endast användbar tillsammans med '''--filter='''.
'''--filter-print-omitted'''
Endast användbar tillsammans med '''--filter='''. Skriver ut en lista över objekten som utelämnades av filtret. Objekt-ID:n får prefixet '''~'''.
'''--missing='''<i><åtgärd-för-saknat></i>
En felsökningsflagga som hjälper framtida utveckling av "partial clone". Den anger hur saknade objekt ska hanteras.
'''--missing=error'''
Stoppa '''rev-list''' med fel om ett saknat objekt påträffas. Detta är standard.
'''--missing=allow-any'''
Tillåt objekttraversering att fortsätta om ett saknat objekt påträffas. Saknade objekt utelämnas tyst från resultatet.
'''--missing=allow-promisor'''
Som '''allow-any''', men tillåt endast traversering att fortsätta för förväntade promisor-saknade objekt. Oväntade saknade objekt ger fel.
'''--missing=print'''
Som '''allow-any''', men skriver också ut en lista över saknade objekt. Objekt-ID:n får prefixet '''?'''.
'''--missing=print-info'''
Som '''print''', men skriver även ut ytterligare information om det saknade objektet, härledd från det objekt som innehåller det.
Informationen skrivs på samma rad som det saknade objektets ID i formen:
<pre>
?<oid> [<token>=<värde>]...
</pre>
Par av typen <i><token></i>=''''''<i><värde></i> separeras med mellanslag.
Värdet kodas på ett sätt som beror på token-typen, men mellanslag och radbrytningar i värdet förväntas alltid representeras så att resultatet inte innehåller någon av dessa problematiska byte.
Möjliga token-värden är bland annat:
'''path='''<i><sökväg></i>
Visar sökvägen för det saknade objektet, härledd från ett innehållande objekt. En sökväg som innehåller mellanslag eller specialtecken omges med dubbla citattecken i C-stil vid behov.
'''type='''<i><typ></i>
Visar typen för det saknade objektet, härledd från ett innehållande objekt.
Om vissa tips som skickas till traverseringen saknas, betraktas de också som saknade och traverseringen ignorerar dem. Om deras objekt-ID inte kan hämtas uppstår dock ett fel.
'''--exclude-promisor-objects'''
Endast för internt bruk.
Förfiltrerar objekttraversering vid promisor-gränsen. Detta används med partial clone.
Detta är starkare än '''--missing=allow-promisor''', eftersom det begränsar själva traverseringen i stället för att bara tysta fel om saknade objekt.
'''--no-walk'''['''='''('''sorted'''|'''unsorted''')]
Visa endast de angivna commitsen, men traversera inte deras förfäder.
Detta har ingen effekt om ett intervall anges.
Om argumentet '''unsorted''' anges visas commits i den ordning de gavs på kommandoraden.
Annars, om '''sorted''' anges eller inget argument ges, visas commits i omvänd kronologisk ordning efter commit-tid.
Kan inte kombineras med '''--graph'''.
'''--do-walk'''
Åsidosätter tidigare '''--no-walk'''.
=== Commit-formatering ===
Med dessa flaggor kan [[git-rev-list(1)]] bete sig ungefär som den mer specialiserade familjen av commit-loggverktyg: [[git-log(1)]], [[git-show(1)]] och [[git-whatchanged(1)]].
'''--pretty'''['''='''<i><format></i>], '''--format='''<i><format></i>
Skriv ut innehållet i commit-loggarna i ett angivet format.
<i><format></i> kan vara något av:
<pre>
oneline
short
medium
full
fuller
reference
email
raw
format:<sträng>
tformat:<sträng>
</pre>
Om <i><format></i> inte är något av formaten ovan, men innehåller:
<pre>
%<platshållare>
</pre>
behandlas det som om:
<pre>
--pretty=tformat:<format>
</pre>
hade angetts.
Se avsnittet '''PRETTY FORMATS''' för mer information om varje format.
Om delen:
<pre>
=<format>
</pre>
utelämnas används formatet '''medium''' som standard.
Observera att standardformatet för pretty-utdata kan anges i arkivets konfiguration. Se [[git-config(1)]].
'''--abbrev-commit'''
Visa en förkortad commit-hash i stället för hela objekt-ID:t på 40 hexadecimala tecken.
Detta gör utdata lättare att läsa för människor.
'''--no-abbrev-commit'''
Visa hela commit-objektets namn. Detta återställer effekten av '''--abbrev-commit''', antingen uttryckligen eller genom andra flaggor som '''--oneline'''.
'''--oneline'''
En förkortning för:
<pre>
--pretty=oneline --abbrev-commit
</pre>
Detta visar varje commit på en rad.
'''--encoding='''<i><kodning></i>
Commit-objekt lagrar den teckenkodning som används för loggmeddelandet i sin encoding-header. Denna flagga kan användas för att tala om för kommandot att loggmeddelanden ska kodas om till den kodning som användaren föredrar.
För icke-plumbing-kommandon är standardvärdet UTF-8.
Observera att om ett objekt anger:
<pre>
encoding X
</pre>
och utdata begärs i samma kodning, skrivs objektet ut oförändrat.
Det betyder att ogiltiga sekvenser i den ursprungliga commiten kan kopieras till utdata om ingen omkodning sker.
'''--expand-tabs='''<i><n></i>, '''--expand-tabs''', '''--no-expand-tabs'''
Utför tabbexpansion, det vill säga ersätt tabbar med mellanslag, i loggmeddelandet innan det visas.
Med '''--expand-tabs''' används åtta kolumner som standard.
'''--no-expand-tabs''' stänger av tabbexpansion.
Som standard expanderas tabbar i pretty-format som drar in loggmeddelandet med fyra mellanslag, exempelvis:
<pre>
medium
full
fuller
</pre>
'''--notes'''['''='''<i><ref></i>]
Visa notes som antecknar den aktuella commiten.
Detta är standard för kommandon som kan visa notes, om inte '''--pretty=raw''' används.
Standardinställningen kan ändras med konfigurationsvariabeln:
<pre>
core.notesRef
</pre>
eller:
<pre>
notes.displayRef
</pre>
Se [[git-config(1)]].
'''--no-notes'''
Visa inga notes.
Detta återställer effekten av tidigare '''--notes'''-flaggor.
'''--show-notes-by-default'''
Visa standard-notes, om ingen särskild notes-ref har angetts.
'''--show-notes='''<i><ref></i>, '''--standard-notes'''
Dessa flaggor är föråldrade synonymer för '''--notes''' respektive '''--notes=default'''.
'''--show-signature'''
Kontrollera giltigheten hos ett signerat commit-objekt genom att skicka signaturen till:
<pre>
gpg --verify
</pre>
och visa resultatet.
'''--relative-date'''
Synonym för:
<pre>
--date=relative
</pre>
'''--date='''<i><format></i>
Påverkar hur datum visas i flera pretty-format.
Formatet '''relative''' visar datum relativt till aktuell tid, till exempel:
<pre>
2 hours ago
</pre>
Formatet '''local''' är ett alias för standardformatet, men använder den lokala tidszonen.
Formatet '''iso''' eller '''iso8601''' visar datum i ett ISO 8601-liknande format.
Formatet '''iso-strict''' eller '''iso8601-strict''' visar datum i strikt ISO 8601-format.
Formatet '''rfc''' eller '''rfc2822''' visar datum i RFC 2822-format.
Formatet '''short''' visar endast datum, inte tid, i formen:
<pre>
YYYY-MM-DD
</pre>
Formatet '''raw''' visar datumet som sekunder sedan epoken, följt av tidszonsförskjutning.
Formatet '''human''' visar datum på ett mänskligt anpassat sätt. Det kan utelämna vissa fält om de är uppenbara i sammanhanget, till exempel året om datumet är från aktuellt år.
Formatet '''unix''' visar datum som Unix-tidsstämpel, alltså sekunder sedan 1970-01-01 00:00:00 UTC.
Formatet '''format:'''<i><sträng></i> matar formatsträngen till systemets '''strftime'''.
Formatet '''default''' är standardformatet.
'''--parents'''
Skriv även ut parent-commits för varje commit.
Detta gör att utdata kan visa hur commit-grafen hänger ihop.
'''--children'''
Skriv även ut child-commits för varje commit.
'''--left-right'''
Markera vilken sida av en symmetrisk skillnad en commit kan nås från.
Commits från vänster sida får prefixet:
<pre>
<
</pre>
och commits från höger sida får prefixet:
<pre>
>
</pre>
Exempel:
<pre>
git rev-list --left-right A...B
</pre>
visar vilka commits som bara finns på A-sidan respektive B-sidan.
'''--graph'''
Rita en textbaserad graf över commit-historiken till vänster om utdata.
Detta kan göra att extra rader skrivs ut mellan commits för att visa grafens grenar korrekt.
Kan inte kombineras med '''--no-walk'''.
'''--show-linear-break'''['''='''<i><barriär></i>]
När '''--graph''' inte används visas alla historikgrenar hopslagna i en enda linjär lista. Denna flagga lägger in en barriär mellan två efterföljande commits som inte hör ihop linjärt.
Om <i><barriär></i> anges används den texten som avskiljare. Annars används en standardbarriär.
'''--count'''
Skriv ut ett tal som anger hur många commits som skulle ha visats, i stället för att visa själva commitsen.
När '''--left-right''' används skrivs i stället antalet commits på vänster och höger sida, separerade med tabb.
När '''--cherry-mark''' används utelämnas patch-ekvivalenta commits från dessa antal och räknas i stället separat.
=== Pretty formats ===
Om commiten är en merge och pretty-formatet inte är '''oneline''', '''email''' eller '''raw''', skrivs en extra rad in före raden '''Author:'''.
Raden börjar med:
<pre>
Merge:
</pre>
och följs av förkortade hashvärden för de parent-commits som visas.
Observera att de parent-commits som visas inte nödvändigtvis är de direkta parent-commitsen om historiken har begränsats, exempelvis om man bara visar ändringar som rör en viss katalog eller fil.
Formaten har följande struktur:
'''oneline'''
<pre>
<hash> <title-line>
</pre>
Detta är utformat för att vara så kompakt som möjligt.
'''short'''
<pre>
commit <hash>
Author: <author>
<title-line>
</pre>
'''medium'''
<pre>
commit <hash>
Author: <author>
Date:  <author-date>
<title-line>
<full-commit-message>
</pre>
Detta är standardformatet.
'''full'''
<pre>
commit <hash>
Author: <author>
Commit: <committer>
<title-line>
<full-commit-message>
</pre>
'''fuller'''
<pre>
commit <hash>
Author:    <author>
AuthorDate: <author-date>
Commit:    <committer>
CommitDate: <committer-date>
<title-line>
<full-commit-message>
</pre>
'''reference'''
<pre>
<abbrev-hash> (<title-line>, <short-author-date>)
</pre>
Detta format används för att hänvisa till en annan commit i ett commit-meddelande.
Det motsvarar i praktiken:
<pre>
--pretty='format:%C(auto)%h (%s, %ad)'
</pre>
Som standard används:
<pre>
--date=short
</pre>
om ingen annan '''--date'''-flagga uttryckligen har angetts.
Precis som andra '''format:'''-format påverkas det inte av flaggor som '''--decorate''' och '''--walk-reflogs'''.
'''email'''
<pre>
From <hash> <date>
From: <author>
Date: <author-date>
Subject: [PATCH] <title-line>
<full-commit-message>
</pre>
'''mboxrd'''
Som '''email''', men rader i commit-meddelandet som börjar med:
<pre>
From
</pre>
föregångna av noll eller flera:
<pre>
>
</pre>
citeras med ytterligare:
<pre>
>
</pre>
så att de inte förväxlas med början på en ny commit.
'''raw'''
Formatet '''raw''' visar hela commiten exakt som den lagras i commit-objektet.
Hashvärden visas i full längd oavsett om '''--abbrev''' eller '''--no-abbrev''' används. Parent-informationen visar de verkliga parent-commitsen, utan att ta hänsyn till grafts eller historieförenkling.
Observera att detta format påverkar hur commits visas, men inte hur diffen visas, exempelvis med:
<pre>
git log --raw
</pre>
För att få fullständiga objektnamn i rått diff-format används:
<pre>
--no-abbrev
</pre>
'''format:'''<i><format-sträng></i>
Formatet '''format:'''<i><format-sträng></i> låter dig själv ange vilken information som ska visas.
Det fungerar ungefär som '''printf''', med den viktiga skillnaden att radbrytning skrivs som:
<pre>
%n
</pre>
i stället för:
<pre>
\n
</pre>
Exempel:
format:"Författaren till %h var %an, %ar%nTiteln var >>%s<<%n"
kan ge något i stil med:
Författaren till fe6e0ee var Junio C Hamano, 23 hours ago
Titeln var >>t4119: test autocomputing -p<n> for traditional diff input.<<
= Sidslut =
Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/git-rev-list.1.html
Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
<BR><BR>Tack till [https://datorhjalp.se/web/datorhjalp-hemma// Datorhjälp hemma] som har  sponsrat [https://www.linux.se Linux.se] med webbhotell.
[[Kategori:Linuxmanual grupp 1]]
[[Kategori:Linuxmanual]]

Nuvarande version från 24 maj 2026 kl. 06.19

NAMN

git-rev-list — listar commit-objekt i omvänd kronologisk ordning

SYNOPSIS

git rev-list [<flaggor>] <commit>... [--] [<sökväg>...]

BESKRIVNING

git rev-list listar commits som kan nås genom att följa parent-länkarna från de angivna commit-objekten, men utesluter commits som kan nås från de objekt som anges med ett ^ framför sig. Utdata ges som standard i omvänd kronologisk ordning.

Man kan tänka på detta som en mängdoperation. Commits som kan nås från någon av de commits som anges på kommandoraden bildar en mängd. Därefter dras de commits bort som kan nås från någon av de commits som anges med ^ framför sig. De återstående commitsen är de som skrivs ut.

Olika andra flaggor och sökvägsparametrar kan användas för att begränsa resultatet ytterligare.

Exempel:

$ git rev-list foo bar ^baz

betyder: lista alla commits som kan nås från foo eller bar, men inte från baz.

En särskild notation:

<commit1>..<commit2>

kan användas som kortform för:

^<commit1> <commit2>

Exempelvis är följande två kommandon likvärdiga:

$ git rev-list origin..HEAD
$ git rev-list HEAD ^origin

En annan särskild notation är:

<commit1>...<commit2>

Den är användbar vid sammanslagningar. Den resulterande mängden commits är den symmetriska differensen mellan de två operanderna.

Följande två kommandon är likvärdiga:

$ git rev-list A B --not $(git merge-base --all A B)
$ git rev-list A...B

rev-list är ett grundläggande Git-kommando, eftersom det ger möjlighet att bygga och traversera commit-grafer. Därför har det många olika flaggor som gör att det kan användas av så olika kommandon som git bisect och git repack.

FLAGGOR

Begränsning av commits

Förutom att ange ett intervall av commits som ska listas med de särskilda notationerna ovan, kan ytterligare begränsningar användas.

Fler flaggor begränsar i allmänhet utdata ytterligare. Exempel: --since=<datum1> begränsar till commits nyare än <datum1>, och om den används tillsammans med --grep=<mönster> begränsas resultatet ytterligare till commits vars loggmeddelande innehåller en rad som matchar <mönster>, om inget annat anges.

Dessa begränsningar tillämpas före sorterings- och formateringsflaggor, som till exempel --reverse.

-<antal>, -n <antal>, --max-count=<antal>

Begränsa utdata till <antal> commits.

--skip=<antal>

Hoppa över <antal> commits innan utdata börjar visas.

--since=<datum>, --after=<datum>

Visa commits som är nyare än <datum>.

--since-as-filter=<datum>

Visa alla commits som är nyare än <datum>. Detta besöker alla commits i intervallet, i stället för att stanna vid den första commit som är äldre än <datum>.

--until=<datum>, --before=<datum>

Visa commits som är äldre än <datum>.

--max-age=<tidsstämpel>, --min-age=<tidsstämpel>

Begränsa utdata till ett angivet tidsintervall.

--author=<mönster>, --committer=<mönster>

Begränsa commit-utdata till commits vars author- eller committer-rader matchar det reguljära uttrycket <mönster>.

Om flera --author=<mönster> anges väljs commits där författaren matchar något av mönstren. Detsamma gäller flera --committer=<mönster>.

--grep-reflog=<mönster>

Begränsa commit-utdata till commits med reflog-poster som matchar det reguljära uttrycket <mönster>.

Om flera --grep-reflog anges väljs commits vars reflog-meddelande matchar något av mönstren.

Det är ett fel att använda denna flagga om inte --walk-reflogs används.

--grep=<mönster>

Begränsa commit-utdata till commits vars loggmeddelande matchar det reguljära uttrycket <mönster>.

Om flera --grep=<mönster> anges väljs commits vars meddelande matchar något av mönstren, se dock --all-match.

--all-match

Begränsa commit-utdata till commits som matchar alla angivna --grep-mönster, i stället för commits som matchar minst ett.

--invert-grep

Begränsa commit-utdata till commits vars loggmeddelande inte matchar mönstret som angivits med --grep=<mönster>.

-i, --regexp-ignore-case

Matcha reguljära uttryck utan hänsyn till versaler och gemener.

--basic-regexp

Tolkar begränsningsmönstren som grundläggande reguljära uttryck. Detta är standard.

-E, --extended-regexp

Tolkar begränsningsmönstren som utökade reguljära uttryck i stället för grundläggande reguljära uttryck.

-F, --fixed-strings

Tolkar begränsningsmönstren som fasta strängar. Mönstret tolkas alltså inte som ett reguljärt uttryck.

-P, --perl-regexp

Tolkar begränsningsmönstren som Perl-kompatibla reguljära uttryck.

Stöd för dessa reguljära uttryck är ett valfritt kompileringsberoende. Om Git inte kompilerats med stöd för dem kommer kommandot att avslutas med fel när denna flagga används.

--remove-empty

Stanna när en angiven sökväg försvinner från trädet.

--merges

Skriv endast ut merge-commits. Detta är exakt samma som:

--min-parents=2

--no-merges

Skriv inte ut commits med mer än en parent. Detta är exakt samma som:

--max-parents=1

--min-parents=<antal>, --max-parents=<antal>, --no-min-parents, --no-max-parents

Visa endast commits som har minst, eller högst, det angivna antalet parent-commits.

Särskilda fall:

--max-parents=1

är samma som --no-merges.

--min-parents=2

är samma som --merges.

--max-parents=0

ger alla rot-commits.

--min-parents=3

ger alla octopus-merges.

--no-min-parents och --no-max-parents återställer dessa begränsningar. Likvärdiga former är:

--min-parents=0
--max-parents=-1

Negativa tal betyder ingen övre gräns.

--first-parent

När commits som ska inkluderas hittas, följ endast den första parent-commiten när en merge-commit påträffas.

Detta kan ge en bättre överblick när man visar utvecklingen av en viss topic branch, eftersom sammanslagningar in i en topic branch ofta bara handlar om att anpassa sig till uppdaterad upstream. Flaggan gör att man kan ignorera de enskilda commits som fördes in i historiken av en sådan merge.

--exclude-first-parent-only

När commits ska uteslutas med ^, följ endast den första parent-commiten när en merge-commit påträffas.

Detta kan användas för att hitta mängden ändringar i en topic branch från den punkt där den skilde sig från fjärrgrenen, även när godtyckliga merges är giltiga ändringar i topic branchen.

--not

Vänder betydelsen av prefixet ^, eller frånvaron av det, för alla efterföljande revisionsangivelser fram till nästa --not.

När flaggan används på kommandoraden före --stdin påverkas inte revisioner som skickas via standard in. Omvänt gäller att när --not skickas via standard in påverkas inte revisioner som angivits på kommandoraden.

--all

Låtsas som om alla referenser i:

refs/

tillsammans med HEAD angivits på kommandoraden som <commit>.

--branches[=<mönster>]

Låtsas som om alla referenser i:

refs/heads

angivits på kommandoraden som <commit>.

Om <mönster> anges begränsas grenarna till de som matchar ett shell-glob. Om mönstret saknar ?, * eller [ läggs /* implicit till i slutet.

--tags[=<mönster>]

Låtsas som om alla referenser i:

refs/tags

angivits på kommandoraden som <commit>.

Om <mönster> anges begränsas taggarna till de som matchar ett shell-glob. Om mönstret saknar ?, * eller [ läggs /* implicit till i slutet.

--remotes[=<mönster>]

Låtsas som om alla referenser i:

refs/remotes

angivits på kommandoraden som <commit>.

Om <mönster> anges begränsas fjärrspårande grenar till de som matchar ett shell-glob. Om mönstret saknar ?, * eller [ läggs /* implicit till i slutet.

--glob=<glob-mönster>

Låtsas som om alla referenser som matchar shell-globen <glob-mönster> angivits på kommandoraden som <commit>.

Prefixet refs/ läggs automatiskt till om det saknas. Om mönstret saknar ?, * eller [ läggs /* implicit till i slutet.

--exclude=<glob-mönster>

Inkludera inte referenser som matchar <glob-mönster> och som nästa --all, --branches, --tags, --remotes eller --glob annars skulle ha tagit med.

Upprepningar av denna flagga ackumulerar exkluderingsmönster fram till nästa --all, --branches, --tags, --remotes eller --glob. Andra flaggor eller argument rensar inte de ackumulerade mönstren.

Mönster ska inte börja med:

refs/heads
refs/tags
refs/remotes

när de används med --branches, --tags respektive --remotes.

De måste däremot börja med refs/ när de används med --glob eller --all.

Om ett avslutande /* är avsett måste det anges uttryckligen.

--exclude-hidden=(fetch|receive|uploadpack)

Ta inte med referenser som skulle döljas av git-fetch, git-receive-pack eller git-upload-pack genom att läsa respektive konfiguration:

fetch.hideRefs
receive.hideRefs
uploadpack.hideRefs
transfer.hideRefs

Se git-config(1). Denna flagga påverkar nästa pseudo-ref-flagga --all eller --glob och rensas efter att den behandlats.

--reflog

Låtsas som om alla objekt som nämns av reflogs angivits på kommandoraden som <commit>.

--alternate-refs

Låtsas som om alla objekt som nämns som ref-spetsar i alternativa arkiv angivits på kommandoraden.

Ett alternativt arkiv är ett arkiv vars objektkatalog anges i:

objects/info/alternates

Mängden inkluderade objekt kan ändras med bland annat core.alternateRefsCommand. Se git-config(1).

--single-worktree

Som standard undersöks alla arbetsträd av följande flaggor när det finns fler än ett arbetsträd, se git-worktree(1):

--all
--reflog
--indexed-objects

Denna flagga tvingar dem att endast undersöka det aktuella arbetsträdet.

--ignore-missing

När ett ogiltigt objektnamn påträffas i indata, låtsas som om den felaktiga indatan inte angavs.

--stdin

Utöver argument från kommandoraden läses argument även från standard in. Detta accepterar commits och pseudo-flaggor som --all och --glob=.

När separatorn -- påträffas behandlas efterföljande indata som sökvägar och används för att begränsa resultatet.

Flaggor som --not som läses via standard in respekteras endast för argument som skickats på samma sätt och påverkar inte efterföljande kommandoradsargument.

--quiet

Skriv ingenting till standardutmatning. Denna form är främst avsedd för att låta anroparen testa avslutningsstatusen för att se om ett objektintervall är fullständigt sammanhängande eller inte.

Detta är snabbare än att omdirigera standardutmatning till:

/dev/null

eftersom utdata inte behöver formateras.

--disk-usage, --disk-usage=human

Undertryck normal utdata. Skriv i stället ut summan av antalet byte som används för lagring på disk av de valda commitsen eller objekten.

Detta motsvarar att skicka utdata till:

git cat-file --batch-check='%(objectsize:disk)'

men kör mycket snabbare, särskilt med --use-bitmap-index.

Se avsnittet CAVEATS i git-cat-file(1) för begränsningar kring vad "lagring på disk" betyder.

Med det valfria värdet human visas lagringsstorleken i ett läsbart format, till exempel:

12.24 KiB
3.50 MiB

--cherry-mark

Som --cherry-pick, se nedan, men markera likvärdiga commits med = i stället för att utelämna dem, och icke-likvärdiga commits med +.

--cherry-pick

Utelämna commits som introducerar samma ändring som en annan commit på "andra sidan" när commit-mängden begränsas med symmetrisk differens.

Om du till exempel har två grenar, A och B, är ett vanligt sätt att lista alla commits som bara finns på en sida att använda --left-right. Men då visas commits som cherry-pickats från den andra grenen. Med denna flagga utesluts sådana par av commits från utdata.

--left-only, --right-only

Lista endast commits på respektive sida av en symmetrisk differens, det vill säga endast de som skulle markeras med < respektive > av --left-right.

Exempel:

--cherry-pick --right-only A...B

utelämnar de commits från B som finns i A eller är patch-likvärdiga med en commit i A.

Med andra ord listar detta +-commits från:

git cherry A B

Mer exakt ger:

--cherry-pick --right-only --no-merges

den exakta listan.

--cherry

Synonym för:

--right-only --cherry-mark --no-merges

Användbar för att begränsa utdata till commits på vår sida och markera de som redan har tillämpats på andra sidan av en förgrenad historik:

git log --cherry upstream...mybranch

Det liknar:

git cherry upstream mybranch

-g, --walk-reflogs

I stället för att gå genom commit-ancestry, gå genom reflog-poster från den senaste till äldre poster.

När denna flagga används kan commits som ska exkluderas inte anges. Det betyder att notationer som:

^<commit>
<commit1>..<commit2>
<commit1>...<commit2>

inte kan användas.

Med --pretty i annat format än oneline och reference får utdata två extra rader med information från refloggen.

Reflog-angivelsen i utdata kan visas som:

ref@{<Nth>}

där <Nth> är det omvända kronologiska indexet i refloggen, eller som:

ref@{<tidsstämpel>}

beroende på reglerna nedan:

1. Om startpunkten anges som ref@{<Nth>} visas indexformatet.

2. Om startpunkten anges som ref@{now} visas tidsstämpelformat.

3. Om inget av ovanstående används men --date angavs på kommandoraden, visas tidsstämpeln i det format som begärdes med --date.

4. Annars visas indexformatet.

Med --pretty=oneline läggs denna information före commit-meddelandet på samma rad.

Flaggan kan inte kombineras med --reverse.

Se även git-reflog(1).

Med --pretty=reference visas inte denna information alls.

--merge

Visa commits som rör konfliktfyllda sökvägar i intervallet:

HEAD...<other>

där <other> är den första befintliga pseudoreferensen i:

MERGE_HEAD
CHERRY_PICK_HEAD
REVERT_HEAD
REBASE_HEAD

Fungerar endast när indexet har omatchade poster. Flaggan kan användas för att visa relevanta commits vid lösning av konflikter från en trevägsmerge.

--boundary

Skriv ut exkluderade gränscommits. Gränscommits får prefixet -.

--use-bitmap-index

Försök snabba upp traverseringen med pack bitmap-index, om ett sådant finns.

Observera att när traversering görs med --objects kommer träd och blobbar inte att få sina tillhörande sökvägar utskrivna.

--progress=<rubrik>

Visa förloppsrapporter på standardfel medan objekt behandlas. Texten <rubrik> skrivs ut vid varje förloppsuppdatering.

-z

I stället för att utdata avgränsas med radbrytning avgränsas varje objekt och tillhörande metadata med NUL-byte.

Utdata skrivs i följande form:

<OID> NUL [<token>=<värde> NUL]...

Ytterligare objektmetadata, till exempel objektsökvägar eller gränsobjekt, skrivs med formen:

<token>=<värde>

Tokenvärden skrivs som de är, utan kodning eller trunkering. En OID-post innehåller aldrig tecknet = och används därför för att markera början på en ny objektpost.

Exempel:

<OID> NUL
<OID> NUL path=<sökväg> NUL
<OID> NUL boundary=yes NUL
<OID> NUL missing=yes NUL [<token>=<värde> NUL]...

Detta läge är endast kompatibelt med utdataflaggorna:

--objects
--boundary
--missing

Historieförenkling

Ibland är man bara intresserad av delar av historiken, till exempel de commits som ändrar en viss <sökväg>. Historieförenkling består av två delar: dels vilka commits som väljs, dels hur historiken förenklas. Det finns flera strategier för detta.

Följande flaggor väljer vilka commits som ska visas:

<sökvägar>

Commits som ändrar de angivna sökvägarna väljs.

--simplify-by-decoration

Commits som refereras av någon gren eller tagg väljs.

Observera att extra commits kan visas för att ge en meningsfull historik.

Följande flaggor påverkar hur förenklingen utförs:

Standardläge

Förenklar historiken till den enklaste historiken som förklarar trädets slutliga tillstånd. Den är "enklast" eftersom vissa sidogrenar beskärs om slutresultatet är detsamma, till exempel när grenar med samma innehåll slås samman.

--show-pulls

Ta med alla commits från standardläget, men även merge-commits som inte är TREESAME med första parent men är TREESAME med en senare parent. Detta läge är användbart för att visa de merge-commits som "först introducerade" en ändring till en gren.

--full-history

Samma som standardläget, men beskär inte viss historik.

--dense

Endast de valda commitsen visas, plus vissa extra commits som behövs för att ge en meningsfull historik.

--sparse

Alla commits i den förenklade historiken visas.

--simplify-merges

Ytterligare flagga till --full-history för att ta bort vissa onödiga merges från den resulterande historiken, när inga valda commits bidrar till denna merge.

--ancestry-path[=<commit>]

När ett intervall av commits ska visas, till exempel:

<commit1>..<commit2>

eller:

<commit2> ^<commit1>

och en commit <commit> i intervallet anges, visas endast commits i intervallet som är förfäder till <commit>, ättlingar till <commit>, eller <commit> själv.

Om ingen commit anges används <commit1>, alltså den exkluderade delen av intervallet, som <commit>.

Flaggan kan anges flera gånger. Om så sker inkluderas en commit om den är någon av de angivna commitsen, eller om den är förfader eller ättling till någon av dem.

--simplify-by-decoration

Flaggan --simplify-by-decoration gör det möjligt att bara se den stora bilden av historikens topologi genom att utelämna commits som inte refereras av taggar.

Commits markeras som !TREESAME — med andra ord behålls de efter reglerna för historieförenkling ovan — om:

1. de refereras av taggar, eller 2. de ändrar innehållet i de sökvägar som anges på kommandoraden.

Alla andra commits markeras som TREESAME och kan därmed förenklas bort.

Hjälp för bisect

--bisect

Begränsa utdata till ett enda commit-objekt som ligger ungefär halvvägs mellan inkluderade och exkluderade commits.

Observera att den dåliga bisect-referensen:

refs/bisect/bad

läggs till bland de inkluderade commitsen, om den finns. De goda bisect-referenserna:

refs/bisect/good-*

läggs till bland de exkluderade commitsen, om de finns.

Om det inte finns några referenser i:

refs/bisect/

och följande kommando:

$ git rev-list --bisect foo ^bar ^baz

skriver ut midpoint, kommer följande två kommandon att ge utdata av ungefär samma längd:

$ git rev-list foo ^midpoint
$ git rev-list midpoint ^bar ^baz

Att hitta den ändring som introducerar en regression reduceras därmed till en binär sökning: generera och testa upprepade gånger nya "mittpunkter" tills commit-kedjan har längden ett.

--bisect-vars

Beräknar samma sak som --bisect, men använder inte referenser i:

refs/bisect/

Dessutom skrivs text ut som är redo att köras med shellens eval.

Raderna tilldelar:

bisect_rev

Namnet på mittpunktsrevisionen.

bisect_nr

Förväntat antal commits som återstår att testa efter att bisect_rev har testats.

bisect_good

Förväntat antal commits som återstår att testa om bisect_rev visar sig vara god.

bisect_bad

Förväntat antal commits som återstår att testa om bisect_rev visar sig vara dålig.

bisect_all

Antalet commits som för närvarande ingår i bisect-sökningen.

--bisect-all

Skriver ut alla commit-objekt mellan inkluderade och exkluderade commits, sorterade efter deras avstånd till de inkluderade och exkluderade commitsen.

Referenser i:

refs/bisect/

används inte.

Den commit som ligger längst bort visas först. Det är denna enda commit som visas när --bisect används.

Detta är användbart eftersom det gör det enkelt att välja en bra commit att testa när man av någon anledning vill undvika att testa vissa commits, till exempel om de inte kan kompileras.

Flaggan kan användas tillsammans med --bisect-vars. I så fall skrivs samma text ut som med --bisect-vars efter alla sorterade commit-objekt.

Commit-sortering

Som standard visas commits i omvänd kronologisk ordning.

--date-order

Visa ingen parent före att alla dess children har visats, men visa i övrigt commits i ordning efter commit-tidsstämpel.

--author-date-order

Visa ingen parent före att alla dess children har visats, men visa i övrigt commits i ordning efter author-tidsstämpel.

--topo-order

Visa ingen parent före att alla dess children har visats, och undvik att blanda commits från flera parallella historiklinjer.

Exempel på commit-historik:

---1----2----4----7
    \              \
     3----5----6----8---

där siffrorna anger commit-tidsstämplarnas ordning.

Med git rev-list och liknande kommandon med --date-order visas commits i tidsstämpelordning:

8 7 6 5 4 3 2 1

Med --topo-order kan de i stället visas som:

8 6 5 3 7 4 2 1

eller:

8 7 4 2 6 5 3 1

Det innebär att vissa äldre commits kan visas före nyare commits för att undvika att parallella utvecklingsspår blandas ihop.

--reverse

Skriv ut de valda commitsen i omvänd ordning.

Kan inte kombineras med --walk-reflogs.

Objekttraversering

Dessa flaggor är främst avsedda för packning av Git-arkiv.

--objects

Skriv ut objekt-ID:n för alla objekt som refereras av de listade commitsen.

Exempel:

--objects foo ^bar

betyder ungefär: "ge mig alla objekt-ID:n som jag behöver ladda ner om jag har commit-objektet bar men inte foo".

Se även --object-names nedan.

--in-commit-order

Skriv ut träd- och blob-ID:n i commit-ordning. Träd- och blob-ID:n skrivs ut efter att de först refererats av en commit.

--objects-edge

Liknar --objects, men skriver även ut ID:n för exkluderade commits med ett - framför.

Detta används av git-pack-objects(1) för att bygga ett "tunt" pack, där objekt lagras i deltaform baserat på objekt som finns i dessa exkluderade commits. Det minskar nätverkstrafiken.

--objects-edge-aggressive

Liknar --objects-edge, men försöker hårdare att hitta exkluderade commits, till priset av längre körningstid.

Detta används i stället för --objects-edge för att bygga tunna pack för grunda arkiv.

--indexed-objects

Låtsas som om alla träd och blobbar som används av indexet angivits på kommandoraden.

Observera att man troligen även vill använda --objects.

--unpacked

Endast användbar tillsammans med --objects. Skriv ut objekt-ID:n som inte finns i packfiler.

--object-names

Endast användbar tillsammans med --objects. Skriv ut namnen på de objekt-ID:n som hittas. Detta är standardbeteendet.

Observera att "namnet" på varje objekt är tvetydigt och främst är avsett som en ledtråd vid packning av objekt.

I synnerhet gäller:

  • ingen skillnad görs mellan namn på taggar, träd och blobbar,
  • sökvägsnamn kan ändras för att ta bort radbrytningar,
  • om ett objekt förekommer flera gånger med olika namn visas endast ett namn.

--no-object-names

Endast användbar tillsammans med --objects. Skriv inte ut namnen på objekt-ID:n som hittas.

Detta inverterar --object-names och gör utdata enklare att tolka för kommandon som git-cat-file(1).

--filter=<filter-spec>

Endast användbar tillsammans med någon av --objects-flaggorna. Utelämnar objekt, vanligen blobbar, från listan över utskrivna objekt.

<filter-spec> kan ha följande former:

--filter=blob:none

Utelämnar alla blobbar.

--filter=blob:limit=<n>[kmg]

Utelämnar blobbar med storlek minst <n> byte eller enheter. <n> kan vara noll.

Suffixen k, m och g kan användas för KiB, MiB eller GiB.

Exempel:

blob:limit=1k

är samma som:

blob:limit=1024

--filter=object:type=(tag|commit|tree|blob)

Utelämnar alla objekt som inte är av den begärda typen.

Observera att uttryckligen angivna objekt ignorerar filter och alltid skrivs ut, om inte --filter-provided-objects också anges.

--filter=sparse:oid=<blob-ish>

Använder en sparse-checkout-specifikation som finns i blobben, eller blob-uttrycket, <blob-ish> för att utelämna blobbar som inte skulle krävas för en sparse checkout på de begärda referenserna.

--filter=tree:<djup>

Utelämnar alla blobbar och träd vars djup från rotträdet är större än eller lika med <djup>.

Om ett objekt finns på flera djup används minsta djup.

<djup>=0

inkluderar inga träd eller blobbar, om de inte uttryckligen anges på kommandoraden eller via standard in när --stdin används.

<djup>=1

inkluderar endast trädet och blobbarna som refereras direkt av en commit som kan nås från <commit>, eller från ett uttryckligen angivet objekt.

<djup>=2

är som <djup>=1, men inkluderar även träd och blobbar ytterligare en nivå bort från en uttryckligen angiven commit eller ett uttryckligen angivet träd.

Observera att formen:

--filter=sparse:path=<sökväg>

som ville läsa från en godtycklig sökväg i filsystemet har tagits bort av säkerhetsskäl.

Flera --filter=-flaggor kan anges för att kombinera filter. Endast objekt som accepteras av varje filter inkluderas.

Formen:

--filter=combine:<filter1>+<filter2>+...+<filterN>

kan också användas för att kombinera flera filter, men detta är svårare än att bara upprepa --filter och är normalt inte nödvändigt.

Filter fogas samman med + och enskilda filter procentkodas, det vill säga URL-kodas.

Förutom + och % är följande tecken reserverade och måste också kodas:

~ ! @ # $ ^ & * ( ) [ ] { } ; " , < > ? ' `

samt alla tecken med ASCII-kod mindre än eller lika med:

0x20

vilket inkluderar mellanslag och radbrytning.

Andra godtyckliga tecken kan också kodas.

Exempelvis är följande likvärdiga:

combine:tree:3+blob:none
combine:tree%3A3+blob%3Anone

--no-filter

Stäng av tidigare angiven --filter=-flagga.

--filter-provided-objects

Filtrera listan över uttryckligen angivna objekt. Dessa skrivs annars alltid ut även om de inte matchar något filter.

Endast användbar tillsammans med --filter=.

--filter-print-omitted

Endast användbar tillsammans med --filter=. Skriver ut en lista över objekten som utelämnades av filtret. Objekt-ID:n får prefixet ~.

--missing=<åtgärd-för-saknat>

En felsökningsflagga som hjälper framtida utveckling av "partial clone". Den anger hur saknade objekt ska hanteras.

--missing=error

Stoppa rev-list med fel om ett saknat objekt påträffas. Detta är standard.

--missing=allow-any

Tillåt objekttraversering att fortsätta om ett saknat objekt påträffas. Saknade objekt utelämnas tyst från resultatet.

--missing=allow-promisor

Som allow-any, men tillåt endast traversering att fortsätta för förväntade promisor-saknade objekt. Oväntade saknade objekt ger fel.

--missing=print

Som allow-any, men skriver också ut en lista över saknade objekt. Objekt-ID:n får prefixet ?.

--missing=print-info

Som print, men skriver även ut ytterligare information om det saknade objektet, härledd från det objekt som innehåller det.

Informationen skrivs på samma rad som det saknade objektets ID i formen:

?<oid> [<token>=<värde>]...

Par av typen <token>='<värde> separeras med mellanslag.

Värdet kodas på ett sätt som beror på token-typen, men mellanslag och radbrytningar i värdet förväntas alltid representeras så att resultatet inte innehåller någon av dessa problematiska byte.

Möjliga token-värden är bland annat:

path=<sökväg>

Visar sökvägen för det saknade objektet, härledd från ett innehållande objekt. En sökväg som innehåller mellanslag eller specialtecken omges med dubbla citattecken i C-stil vid behov.

type=<typ>

Visar typen för det saknade objektet, härledd från ett innehållande objekt.

Om vissa tips som skickas till traverseringen saknas, betraktas de också som saknade och traverseringen ignorerar dem. Om deras objekt-ID inte kan hämtas uppstår dock ett fel.

--exclude-promisor-objects

Endast för internt bruk.

Förfiltrerar objekttraversering vid promisor-gränsen. Detta används med partial clone.

Detta är starkare än --missing=allow-promisor, eftersom det begränsar själva traverseringen i stället för att bara tysta fel om saknade objekt.

--no-walk[=(sorted|unsorted)]

Visa endast de angivna commitsen, men traversera inte deras förfäder.

Detta har ingen effekt om ett intervall anges.

Om argumentet unsorted anges visas commits i den ordning de gavs på kommandoraden.

Annars, om sorted anges eller inget argument ges, visas commits i omvänd kronologisk ordning efter commit-tid.

Kan inte kombineras med --graph.

--do-walk

Åsidosätter tidigare --no-walk.

Commit-formatering

Med dessa flaggor kan git-rev-list(1) bete sig ungefär som den mer specialiserade familjen av commit-loggverktyg: git-log(1), git-show(1) och git-whatchanged(1).

--pretty[=<format>], --format=<format>

Skriv ut innehållet i commit-loggarna i ett angivet format.

<format> kan vara något av:

oneline
short
medium
full
fuller
reference
email
raw
format:<sträng>
tformat:<sträng>

Om <format> inte är något av formaten ovan, men innehåller:

%<platshållare>

behandlas det som om:

--pretty=tformat:<format>

hade angetts.

Se avsnittet PRETTY FORMATS för mer information om varje format.

Om delen:

=<format>

utelämnas används formatet medium som standard.

Observera att standardformatet för pretty-utdata kan anges i arkivets konfiguration. Se git-config(1).

--abbrev-commit

Visa en förkortad commit-hash i stället för hela objekt-ID:t på 40 hexadecimala tecken.

Detta gör utdata lättare att läsa för människor.

--no-abbrev-commit

Visa hela commit-objektets namn. Detta återställer effekten av --abbrev-commit, antingen uttryckligen eller genom andra flaggor som --oneline.

--oneline

En förkortning för:

--pretty=oneline --abbrev-commit

Detta visar varje commit på en rad.

--encoding=<kodning>

Commit-objekt lagrar den teckenkodning som används för loggmeddelandet i sin encoding-header. Denna flagga kan användas för att tala om för kommandot att loggmeddelanden ska kodas om till den kodning som användaren föredrar.

För icke-plumbing-kommandon är standardvärdet UTF-8.

Observera att om ett objekt anger:

encoding X

och utdata begärs i samma kodning, skrivs objektet ut oförändrat.

Det betyder att ogiltiga sekvenser i den ursprungliga commiten kan kopieras till utdata om ingen omkodning sker.

--expand-tabs=<n>, --expand-tabs, --no-expand-tabs

Utför tabbexpansion, det vill säga ersätt tabbar med mellanslag, i loggmeddelandet innan det visas.

Med --expand-tabs används åtta kolumner som standard.

--no-expand-tabs stänger av tabbexpansion.

Som standard expanderas tabbar i pretty-format som drar in loggmeddelandet med fyra mellanslag, exempelvis:

medium
full
fuller

--notes[=<ref>]

Visa notes som antecknar den aktuella commiten.

Detta är standard för kommandon som kan visa notes, om inte --pretty=raw används.

Standardinställningen kan ändras med konfigurationsvariabeln:

core.notesRef

eller:

notes.displayRef

Se git-config(1).

--no-notes

Visa inga notes.

Detta återställer effekten av tidigare --notes-flaggor.

--show-notes-by-default

Visa standard-notes, om ingen särskild notes-ref har angetts.

--show-notes=<ref>, --standard-notes

Dessa flaggor är föråldrade synonymer för --notes respektive --notes=default.

--show-signature

Kontrollera giltigheten hos ett signerat commit-objekt genom att skicka signaturen till:

gpg --verify

och visa resultatet.

--relative-date

Synonym för:

--date=relative

--date=<format>

Påverkar hur datum visas i flera pretty-format.

Formatet relative visar datum relativt till aktuell tid, till exempel:

2 hours ago

Formatet local är ett alias för standardformatet, men använder den lokala tidszonen.

Formatet iso eller iso8601 visar datum i ett ISO 8601-liknande format.

Formatet iso-strict eller iso8601-strict visar datum i strikt ISO 8601-format.

Formatet rfc eller rfc2822 visar datum i RFC 2822-format.

Formatet short visar endast datum, inte tid, i formen:

YYYY-MM-DD

Formatet raw visar datumet som sekunder sedan epoken, följt av tidszonsförskjutning.

Formatet human visar datum på ett mänskligt anpassat sätt. Det kan utelämna vissa fält om de är uppenbara i sammanhanget, till exempel året om datumet är från aktuellt år.

Formatet unix visar datum som Unix-tidsstämpel, alltså sekunder sedan 1970-01-01 00:00:00 UTC.

Formatet format:<sträng> matar formatsträngen till systemets strftime.

Formatet default är standardformatet.

--parents

Skriv även ut parent-commits för varje commit.

Detta gör att utdata kan visa hur commit-grafen hänger ihop.

--children

Skriv även ut child-commits för varje commit.

--left-right

Markera vilken sida av en symmetrisk skillnad en commit kan nås från.

Commits från vänster sida får prefixet:

<

och commits från höger sida får prefixet:

>

Exempel:

git rev-list --left-right A...B

visar vilka commits som bara finns på A-sidan respektive B-sidan.

--graph

Rita en textbaserad graf över commit-historiken till vänster om utdata.

Detta kan göra att extra rader skrivs ut mellan commits för att visa grafens grenar korrekt.

Kan inte kombineras med --no-walk.

--show-linear-break[=<barriär>]

När --graph inte används visas alla historikgrenar hopslagna i en enda linjär lista. Denna flagga lägger in en barriär mellan två efterföljande commits som inte hör ihop linjärt.

Om <barriär> anges används den texten som avskiljare. Annars används en standardbarriär.

--count

Skriv ut ett tal som anger hur många commits som skulle ha visats, i stället för att visa själva commitsen.

När --left-right används skrivs i stället antalet commits på vänster och höger sida, separerade med tabb.

När --cherry-mark används utelämnas patch-ekvivalenta commits från dessa antal och räknas i stället separat.

Pretty formats

Om commiten är en merge och pretty-formatet inte är oneline, email eller raw, skrivs en extra rad in före raden Author:.

Raden börjar med:

Merge:

och följs av förkortade hashvärden för de parent-commits som visas.

Observera att de parent-commits som visas inte nödvändigtvis är de direkta parent-commitsen om historiken har begränsats, exempelvis om man bara visar ändringar som rör en viss katalog eller fil.

Formaten har följande struktur:

oneline

<hash> <title-line>

Detta är utformat för att vara så kompakt som möjligt.

short

commit <hash>
Author: <author>

<title-line>

medium

commit <hash>
Author: <author>
Date:   <author-date>

<title-line>

<full-commit-message>

Detta är standardformatet.

full

commit <hash>
Author: <author>
Commit: <committer>

<title-line>

<full-commit-message>

fuller

commit <hash>
Author:     <author>
AuthorDate: <author-date>
Commit:     <committer>
CommitDate: <committer-date>

<title-line>

<full-commit-message>

reference

<abbrev-hash> (<title-line>, <short-author-date>)

Detta format används för att hänvisa till en annan commit i ett commit-meddelande.

Det motsvarar i praktiken:

--pretty='format:%C(auto)%h (%s, %ad)'

Som standard används:

--date=short

om ingen annan --date-flagga uttryckligen har angetts.

Precis som andra format:-format påverkas det inte av flaggor som --decorate och --walk-reflogs.

email

From <hash> <date>
From: <author>
Date: <author-date>
Subject: [PATCH] <title-line>

<full-commit-message>

mboxrd

Som email, men rader i commit-meddelandet som börjar med:

From 

föregångna av noll eller flera:

>

citeras med ytterligare:

>

så att de inte förväxlas med början på en ny commit.

raw

Formatet raw visar hela commiten exakt som den lagras i commit-objektet.

Hashvärden visas i full längd oavsett om --abbrev eller --no-abbrev används. Parent-informationen visar de verkliga parent-commitsen, utan att ta hänsyn till grafts eller historieförenkling.

Observera att detta format påverkar hur commits visas, men inte hur diffen visas, exempelvis med:

git log --raw

För att få fullständiga objektnamn i rått diff-format används:

--no-abbrev

format:<format-sträng>

Formatet format:<format-sträng> låter dig själv ange vilken information som ska visas.

Det fungerar ungefär som printf, med den viktiga skillnaden att radbrytning skrivs som:

%n

i stället för:

\n

Exempel:

format:"Författaren till %h var %an, %ar%nTiteln var >>%s<<%n" kan ge något i stil med:


Författaren till fe6e0ee var Junio C Hamano, 23 hours ago Titeln var >>t4119: test autocomputing -p<n> for traditional diff input.<<

Sidslut

Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/git-rev-list.1.html Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp hemma som har sponsrat Linux.se med webbhotell.