Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
-
2.54.0
2026-04-20
- 2.51.2 → 2.53.0 no changes
-
2.51.1
2025-10-15
- 2.49.1 → 2.51.0 no changes
-
2.49.0
2025-03-14
- 2.45.1 → 2.48.2 no changes
-
2.45.0
2024-04-29
- 2.43.1 → 2.44.4 no changes
-
2.43.0
2023-11-20
- 2.42.1 → 2.42.4 no changes
-
2.42.0
2023-08-21
- 2.41.1 → 2.41.3 no changes
-
2.41.0
2023-06-01
- 2.39.1 → 2.40.4 no changes
-
2.39.0
2022-12-12
- 2.38.1 → 2.38.5 no changes
-
2.38.0
2022-10-02
- 2.32.1 → 2.37.7 no changes
-
2.32.0
2021-06-06
- 2.22.1 → 2.31.8 no changes
-
2.22.0
2019-06-07
- 2.19.3 → 2.21.4 no changes
-
2.19.2
2018-11-21
- 2.19.1 no changes
-
2.19.0
2018-09-10
- 2.18.1 → 2.18.5 no changes
-
2.18.0
2018-06-21
- 2.17.0 → 2.17.6 no changes
-
2.16.6
2019-12-06
-
2.15.4
2019-12-06
- 2.14.6 no changes
-
2.13.7
2018-05-22
- 2.12.5 no changes
-
2.11.4
2017-09-22
- 2.10.5 no changes
-
2.9.5
2017-07-30
-
2.8.6
2017-07-30
- 2.7.6 no changes
-
2.6.7
2017-05-05
- 2.3.10 → 2.5.6 no changes
-
2.2.3
2015-09-04
NAMN
git-interpret-trailers - Lägg till eller analysera strukturerad information i incheckningsmeddelanden
SYNOPSIS
git interpret-trailers [--in-place] [--trim-empty] [(--trailer (<nyckel>|<nyckel-alias>)[(=|:)<värde>])…] [--parse] [<fil>…]
BESKRIVNING
Lägg till eller analysera släp-rader som liknar RFC 822-epost-huvuden, i slutet av den annars fria delen av ett incheckningsmeddelande. Till exempel i följande incheckningsmeddelande
subject Lorem ipsum dolor sit amet, consectetur adipiscing elit. Signed-off-by: Alice <alice@example.com> Signed-off-by: Bob <bob@example.com>
De två sista raderna som börjar med "Signed-off-by" är slutrader.
Kommandot läser incheckningsmeddelanden från antingen <fil>-argumenten eller standardindata om ingen <fil> anges. Om --parse anges består utdata av de parsade slutraderna som kommer från indata, utan att påverka dem med några kommandoradsalternativ eller konfigurationsvariabler.
Annars, tillämpar detta kommando konfigurationsvariabler som trailer.* (som potentiellt kan lägga till nya slutrader, samt flytta dem), såväl som eventuella kommandoradsargument som kan åsidosätta konfigurationsvariabler (som --trailer=... som också kan lägga till nya slutrader), på varje indatafil. Resultatet genereras på standardutdata.
Kommandot kan också fungera på utdata från git-format-patch[1], vilket är mer omfattande än ett vanligt incheckningsmeddelande. Sådan utdata inkluderar nämligen ett incheckningsmeddelande (som ovan), en "---"-avdelarrad och en patch-del. För dessa indata modifieras inte avdelar- och patch-delarna av detta kommando och skickas som de är på utdata, såvida inte --no-divider anges.
Vissa konfigurationsvariabler styr hur --trailer-argumenten tillämpas på varje indata och hur eventuella befintliga slutrader i indata ändras. De gör det också möjligt att automatiskt lägga till vissa slutrader.
Som standard läggs argumentet <nyckel>=<värde> eller <nyckel>:<värde> som anges med --trailer till efter de befintliga slutraderna endast om den sista slutraden har ett annat par (<nyckel>, <värde>) (eller om det inte finns någon befintlig slutrad). Delarna <nyckel> och <värde> trimmas för att ta bort inledande och efterföljande blanksteg, och de resulterande trimmade <nyckel> och <värde> kommer att visas i utdata så här:
nyckel: värde
Det betyder att de trimmade <nyckel> och <värde> kommer att separeras med : (ett kolon följt av ett mellanslag).
För enkelhetens skull kan en <nyckel-alias> konfigureras för att göra det kortare att skriva på kommandoraden med --trailer. Detta kan konfigureras med konfigurationsvariabeln trailer.<nyckel-alias>.key. <nyckelAlias> måste vara ett prefix för hela <nyckel>-strängen, även om skiftlägeskänsligheten inte spelar någon roll. Om du till exempel har
trailer.sign.key "Signed-off-by: "
I din konfiguration behöver du bara ange --trailer="sign: foo" på kommandoraden i stället för --trailer="Signed-off-by: foo".
Som standard visas den nya slutraden i slutet av alla befintliga slutrader. Om det inte finns någon befintlig slutrad visas den nya slutraden i slutet av inmatningen. En tom rad läggs till före den nya slutraden om det inte redan finns en.
Befintliga slutrader extraheras från indata genom att söka efter en grupp med en eller flera rader som (i) alla är slutrader, eller (ii) innehåller minst en Git-genererad eller användarkonfigurerad slutrad och består av minst 25 % slutrader. Gruppen måste föregås av en eller flera tomma (eller endast blanksteg) rader. Gruppen måste antingen finnas i slutet av indata eller vara de sista raderna utan blanksteg före en rad som börjar med --- (följt av ett mellanslag eller slutet av raden).
När man läser slutrader får det inte finnas något mellanslag före eller innanför <nyckel>, men ett valfritt antal vanliga mellanslag och tabbtecken är tillåtna mellan <nyckel> och avgränsaren. Det kan finnas mellanslag före, innanför eller efter <värde>. <värde> kan delas upp över flera rader där varje efterföljande rad börjar med minst ett mellanslag, som "fällbar" i RFC 822. Exempel:
nyckel: Detta är ett mycket långt värde, med mellanslag och nyradsskift i det.
Observera att slutrader inte följer (och inte heller är avsedda att följa) många av reglerna för RFC 822-huvuden. Till exempel följer de inte kodningsregeln.
ALTERNATIV
- --in-place
-
Redigera filer på plats.
- --trim-empty
-
Om <värde>-delen av en slutrad endast innehåller blanktecken, kommer hela slutraden att tas bort från utdata. Detta gäller både befintliga slutrader och nya slutrader.
- --trailer <nyckel>[(=|:)<värde>]
-
Ange ett (<nyckel>, <värde>)-par som ska tillämpas som en trailer för indata. Se beskrivningen av detta kommando.
- --where <placering>
- --no-where
-
Ange var alla nya slutrader ska läggas till. En inställning som anges med --where åsidosätter
trailer.whereoch alla tillämpliga konfigurationsvariablertrailer.<nyckelAlias>.whereoch gäller för alla --trailer-alternativ tills nästa förekomst av --where eller --no-where. När --no-where påträffas, avmarkera effekten av tidigare användning av --where, så att de relevanta konfigurationsvariablerna inte längre åsidosätts. Möjliga placeringar ärafter,before,endellerstart. - --if-exists <handling>
- --no-if-exists
-
Ange vilken åtgärd som ska utföras när det redan finns minst en trailer med samma <nyckel> i indata. En inställning som anges med --if-exists åsidosätter
trailer.ifExistsoch alla tillämpliga konfigurationsvariablertrailer.<nyckelAlias>.ifExistsoch gäller för alla --trailer-alternativ tills nästa förekomst av --if-exists eller --no-if-exists. Vid påträffande av --no-if-exists, rensas effekten av tidigare användning av --if-exists, så att de relevanta konfigurationsvariablerna inte längre åsidosätts. Möjliga åtgärder äraddIfDifferent,addIfDifferentNeighbor,add,replaceochdoNothing. - --if-missing <handling>
- --no-if-missing
-
Ange vilken åtgärd som ska utföras när det inte finns någon annan slutrad med samma <nyckel> i indatafältet. En inställning som anges med --if-missing åsidosätter
trailer.ifMissingoch alla tillämpliga konfigurationsvariablertrailer.<nyckelAlias>.ifMissingoch gäller för alla --trailer-alternativ tills nästa förekomst av --if-missing eller --no-if-missing. Vid påträffande av --no-if-missing, rensas effekten av tidigare användning av --if-missing, så att de relevanta konfigurationsvariablerna inte längre åsidosätts. Möjliga åtgärder ärdoNothingelleradd. - --only-trailers
-
Skriv endast ut slutrader, inte några andra delar av indata.
- --only-input
-
Skriv endast ut slutrader som finns i indata; lägg inte till några från kommandoraden eller genom att använda konfigurationsvariabler som
trailer.*. - --unfold
-
Om en slutrad har ett värde som löper över flera rader (även kallat "radbruten"), formatera om värdet till en enda rad.
- --parse
-
Ett bekvämt alias för
--only-trailers--only-input--unfold. Detta gör det enklare att bara se slutrader som kommer från indata utan att påverka dem med några kommandoradsalternativ eller konfigurationsvariabler, samtidigt som det gör utdata maskinvänligt med --unfold. - --no-divider
-
Behandla inte
---som slutet på incheckningsmeddelandet. Använd detta när du vet att din inmatning bara innehåller själva incheckningsmeddelandet (och inte ett e-postmeddelande eller utdata frångitformat-patch).
KONFIGURATIONSVARIABLER
Allt under den här raden i det här avsnittet är selektivt inkluderat från dokumentationen git-config[1]. Innehållet är detsamma som det som finns där:
|
Warning
|
Missing See original version for this content. |
EXEMPEL
-
Konfigurera en sign-slutraden med en Signed-off-by-nyckel och lägg sedan till två av dessa slutrader i en incheckningsmeddelandefil:
$ git config trailer.sign.key "Signed-off-by" $ cat msg.txt ämne brödtext $ git interpret-trailers --trailer 'sign: Alice <alice@example.com>' --trailer 'sign: Bob <bob@example.com>' <msg.txt ämne brödtext Signed-off-by: Alice <alice@example.com> Signed-off-by: Bob <bob@example.com>
-
Använd alternativet
--in-placeför att redigera en incheckningsmeddelandefil på plats:$ cat msg.txt ämne brödtext Signed-off-by: Bob <bob@example.com> $ git interpret-trailers --trailer 'Acked-by: Alice <alice@example.com>' --in-place msg.txt $ cat msg.txt ämne brödtext Signed-off-by: Bob <bob@example.com> Acked-by: Alice <alice@example.com>
-
Extrahera den sista incheckningen som en patch och lägg till en Cc och en Reviewed-by-trailer till den:
$ git format-patch -1 0001-foo.patch $ git interpret-trailers --trailer 'Cc: Alice <alice@example.com>' --trailer 'Reviewed-by: Bob <bob@example.com>' 0001-foo.patch >0001-bar.patch
-
Konfigurera en sign-slutrad med ett kommando för att automatiskt lägga till en 'Signed-off-by: ' med författar-informationen endast om det inte redan finns någon 'Signed-off-by: ', och visa hur det fungerar:
$ cat msg1.txt ämne brödtext $ git config trailer.sign.key "Signed-off-by: " $ git config trailer.sign.ifmissing add $ git config trailer.sign.ifexists doNothing $ git config trailer.sign.cmd 'echo "$(git config user.name) <$(git config user.email)>"' $ git interpret-trailers --trailer sign <msg1.txt ämne brödtext Signed-off-by: Bob <bob@example.com> $ cat msg2.txt ämne brödtext Signed-off-by: Alice <alice@example.com> $ git interpret-trailers --trailer sign <msg2.txt ämne brödtext Signed-off-by: Alice <alice@example.com>
-
Konfigurera en fix-slutrad med en nyckel som innehåller ett # och inget mellanslag efter detta tecken, och visa hur det fungerar:
$ git config trailer.separators ":#" $ git config trailer.fix.key "Fix #" $ echo "subject" | git interpret-trailers --trailer fix=42 ämne Fix #42
-
Konfigurera en hjälp-slutrad med ett
cmd-värde som använder skriptetglog-find-author, vilket söker efter den angivna författaridentiteten i git-loggen i kodförrådet och visar hur det fungerar:$ cat ~/bin/glog-find-author #!/bin/sh test -n "$1" && git log --author="$1" --pretty="%an <%ae>" -1 || true $ cat msg.txt ämne brödtext $ git config trailer.help.key "Helped-by: " $ git config trailer.help.ifExists "addIfDifferentNeighbor" $ git config trailer.help.cmd "~/bin/glog-find-author" $ git interpret-trailers --trailer="help:Junio" --trailer="help:Couder" <msg.txt ämne brödtext Helped-by: Junio C Hamano <gitster@pobox.com> Helped-by: Christian Couder <christian.couder@gmail.com>
-
Konfigurera en ref-slutrad med ett kommando och använd skriptet
glog-grepför att hämta den senaste relevanta incheckningen från git-loggen i Git-kodförrådet och visa hur det fungerar:$ cat ~/bin/glog-grep #!/bin/sh test -n "$1" && git log --grep "$1" --pretty=reference -1 || true $ cat msg.txt ämne brödtext $ git config trailer.ref.key "Reference-to: " $ git config trailer.ref.ifExists "replace" $ git config trailer.ref.cmd "~/bin/glog-grep" $ git interpret-trailers --trailer="ref:Add copyright notices." <msg.txt ämne brödtext Reference-to: 8bc9a0c769 (Lägg till upphovsrättsmeddelanden., 2005-04-07)
-
Konfigurera en see-slutrad med ett kommando för att visa ämnet för en relaterad incheckning, och visa hur det fungerar:
$ cat msg.txt ämne brödtext see: HEAD~2 $ cat ~/bin/glog-ref #!/bin/sh git log -1 --oneline --format="%h (%s)" --abbrev-commit --abbrev=14 $ git config trailer.see.key "See-also: " $ git config trailer.see.ifExists "replace" $ git config trailer.see.ifMissing "doNothing" $ git config trailer.see.cmd "glog-ref" $ git interpret-trailers --trailer=see <msg.txt ämne brödtext See-also: fe3187489d69c4 (ämne för relaterad incheckning)
-
Konfigurera en incheckningsmall med några slutrader med tomma värden (använd sed för att visa och behålla de efterföljande mellanslagen i slutet av slutrader), konfigurera sedan en commit-msg-krok som använder git interpret-trailers för att ta bort slutrader med tomma värden och för att lägga till en git-version-slutrad:
$ cat temp.txt ***subject*** ***message*** Fixes: Z Cc: Z Reviewed-by: Z Signed-off-by: Z $ sed -e 's/ Z$/ /' temp.txt > commit_template.txt $ git config commit.template commit_template.txt $ cat .git/hooks/commit-msg #!/bin/sh git interpret-trailers --trim-empty --trailer "git-version: \$(git describe)" "\$1" > "\$1.new" mv "\$1.new" "\$1" $ chmod +x .git/hooks/commit-msg
GIT
En del av git[1]-sviten