Svenska â–Ÿ Topics â–Ÿ Latest version â–Ÿ git-commit last updated in 2.54.0

NAMN

git-commit - Registrera Àndringar i kodförrÄdet

SYNOPSIS

git commit [-a | --interactive | --patch] [-s] [-v] [-u[<lÀge>]] [--amend]
           [--dry-run] <incheckning>_ | --fixup [(amend|reword):"><incheckning>]
           [-F <fil> | -m <medd>] [--reset-author] [--allow-empty]
           [--allow-empty-message] [--no-verify] [-e] [--author=<författare>]
           [--date=<datum>] [--cleanup=<lÀge>] [--[no-]status]
           [-i | -o] [--pathspec-from-file=<fil> [--pathspec-file-nul]]
           [(--trailer <symbol>[(=|:)<vĂ€rde>])
​] [-S[<nyckel-id>]]
           [--] [<sökvĂ€g>
​]

BESKRIVNING

Skapa en ny incheckning som innehÄller det aktuella innehÄllet i indexet och det givna loggmeddelandet som beskriver Àndringarna. Den nya incheckningen Àr ett direkt barn till HEAD, vanligtvis toppen av den aktuella grenen, och grenen uppdateras för att peka pÄ den (sÄvida ingen gren Àr associerad med arbetstrÀd, i vilket fall HEAD "kopplas frÄn" enligt beskrivningen i git-checkout[1]).

InnehÄllet som ska checkas in kan anges pÄ flera sÀtt:

  1. genom att anvÀnda git-add[1] för att stegvis "lÀgga till" Àndringar i indexet innan man anvÀnder commit-kommandot (Obs: Àven modifierade filer mÄste "lÀggas till");

  2. genom att anvÀnda git-rm[1] för att ta bort filer frÄn arbetstrÀdet och indexet, innan commit-kommandot anvÀnds;

  3. genom att lista filer som argument till commit-kommandot (utan --interactive eller --patch), i vilket fall incheckningen ignorerar Àndringar som köats i indexet och i stÀllet registrerar det aktuella innehÄllet i de listade filerna (som Git redan mÄste kÀnna till);

  4. genom att anvÀnda -a med commit-kommandot för att automatiskt "lÀgga till" Àndringar frÄn alla kÀnda filer (d.v.s. filer som redan finns i indexet) och automatiskt "rm" filer i indexet som tagits bort frÄn arbetstrÀdet, och dÀrefter utföra sjÀlva incheckningen;

  5. genom att anvĂ€nda vĂ€xlarna --interactive eller --patch med kommandot commit för att en efter en bestĂ€mma vilka filer eller stycken som ska ingĂ„ i incheckningen utöver innehĂ„llet i indexet, innan operationen slutförs. Se avsnittet “Interaktivt lĂ€ge” i git-add[1] för att lĂ€ra dig hur man anvĂ€nder dessa lĂ€gen.

Alternativet --dry-run kan anvÀndas för att fÄ en sammanfattning av vad som ingÄr i nÄgot av ovanstÄende för nÀsta incheckning genom att ange samma uppsÀttning parametrar (alternativ och sökvÀgar).

Om du gör en incheckning och direkt dÀrefter upptÀcker ett misstag kan du ÄterhÀmta dig med git reset.

ALTERNATIV

-a
--all

Köar automatiskt filer som har Àndrats eller tagits bort, men nya filer som du inte har talat om för Git pÄverkas inte.

-p
--patch

AnvÀnd det interaktiva grÀnssnittet för patchval för att vÀlja vilka Àndringar som ska checkas in. Se git-add[1] för detaljer.

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

Generate diffs with <n> lines of context. The number of context lines defaults to diff.context or 3 if the configuration variable is unset. (-U without <n> is silently accepted as a synonym for -p due to a historical accident).

--inter-hunk-context=<n>

Visar sammanhanget mellan olika stycken, upp till det angivna <antal> rader, och sammanfogar dÀrmed stycken som ligger nÀra varandra. StandardvÀrdet Àr diff.interHunkContext eller 0 om konfigurationsalternativet inte Àr instÀllt.

-C <incheckning>
--reuse-message=<incheckning>

Ta ett befintligt <incheckning>-objekt och ÄteranvÀnd loggmeddelandet och författarinformationen (inklusive tidsstÀmpeln) nÀr du skapar incheckningen.

-c <incheckning>
--reedit-message=<incheckning>

Som -C, men med -c startas redigeraren sÄ att anvÀndaren kan redigera incheckningsmeddelandet vidare.

--fixup=[(amend|reword):]<incheckning>

Skapa en ny incheckning som "fixar upp" <incheckning> nÀr den tillÀmpas med git rebase --autosquash. Vanlig --fixup=<incheckning> skapar en "fixup!"-incheckning som Àndrar innehÄllet i <incheckningen> men lÀmnar dess loggmeddelande orört. --fixup=amend:<incheckning> Àr liknande men skapar en "amend!"-incheckning som ocksÄ ersÀtter loggmeddelandet för <incheckning> med loggmeddelandet frÄn "amend!"-incheckningen. --fixup=reword:<incheckning> skapar en "amend!"-incheckning som ersÀtter loggmeddelandet för <incheckning> med sitt eget loggmeddelande men gör inga Àndringar i innehÄllet i <incheckning>.

Den incheckning som skapas av --fixup=<incheckning> har en titel som bestÄr av "fixup!" följt av titeln <incheckning>, och kÀnns igen sÀrskilt av git rebase --autosquash. Alternativet -m kan anvÀndas för att komplettera loggmeddelandet för den skapade incheckningen, men den ytterligare kommentaren försvinner nÀr "fixup!"-incheckningen klÀms in i <incheckning> av git rebase --autosquash.

Den incheckning som skapas av --fixup=amend:<incheckning> liknar den ovan, men dess titel har i stÀllet prefixet "amend!". Loggmeddelandet för <incheckning> kopieras till loggmeddelandet för "amend!"-incheckningen och öppnas i en redigerare sÄ att det kan förfinas. NÀr git rebase --autosquash slÄr ihop "amend!"-incheckningen med <incheckning> ersÀtts loggmeddelandet för <incheckning> av det förfinade loggmeddelandet frÄn "amend!"-incheckningen. Det Àr ett fel om "amend!"-incheckningens loggmeddelande Àr tomt, om inte --allow-empty-message anges.

--fixup=reword:<incheckning> Àr en förkortning för --fixup=amend:<incheckning> --only. Den skapar en "amend!"-incheckning med endast ett loggmeddelande (ignorerar eventuella Àndringar som köats i indexet). NÀr den komprimeras av git rebase --autosquash ersÀtter den loggmeddelandet för <incheckning> utan att göra nÄgra andra Àndringar.

Varken "fixup!" eller "amend!" bekrÀftar Àndring av författarskap för <incheckning> nÀr det tillÀmpas av git rebase --autosquash. Se git-rebase[1] för detaljer.

--squash=<incheckning>

Konstruera ett incheckningsmeddelande för anvÀndning med git rebase --autosquash. Rubriken för incheckningsmeddelandet hÀmtas frÄn den angivna incheckningen med prefixet "squash! ". Kan anvÀndas med ytterligare alternativ för incheckningsmeddelande (-m/-c/-C/-F). Se git-rebase[1] för detaljer.

--reset-author

NÀr det anvÀnds med -C/-c/--amend-flaggor, eller vid incheckning efter ett motstridigt urval av attribut, deklareras att författarskapet till den resulterande incheckningen nu tillhör incheckaren. Detta förnyar ocksÄ författartidsstÀmpeln.

--short

NÀr du gör en testkörning, ange utdata i short-format. Se git-status[1] för detaljer. Implicerar --dry-run.

--branch

Visa gren- och spÄrningsinformation Àven i kortformat. Se git-status[1] för mer information.

--porcelain

NÀr du gör en torrkörning, ge utdata i ett porcelain-anpassat format. Se git-status[1] för detaljer. Implicerar --dry-run.

--long

NÀr du gör en testkörning, ange utdata i lÄngt format. Detta Àr standardutdata för git-status[1]. Implicerar --dry-run.

-z
--null

NÀr short- eller porcelain-utdata frÄn git-status[1] visas, skriv ut filnamnet ordagrant och avsluta posterna med NUL, i stÀllet för LF. Om inget format anges innebÀr detta utdataformatet --porcelain. Utan -z-alternativet citeras filnamn med "ovanliga" tecken enligt beskrivningen för konfigurationsvariabeln core.quotePath (se git-config[1]).

-F <fil>
--file=<fil>

HÀmta incheckningsmeddelandet frÄn <fil>. AnvÀnd - för att lÀsa meddelandet frÄn standardindata.

--author=<författare>

ÅsidosĂ€tt incheckningsförfattaren. Ange en explicit författare med standardformatet A U Thor <författare@example.com>. Annars antas <författare> vara ett mönster och anvĂ€nds för att söka efter en befintlig incheckning av den författaren (d.v.s. git rev-list --all -i --author=<författare>); incheckningsförfattaren kopieras sedan frĂ„n den första hittade incheckningen.

--date=<datum>

ÅsidosĂ€tt författardatumet som anvĂ€ndes i incheckningen.

-m <medd>
--message=<medd>

AnvÀnd <medd> som incheckningsmeddelande. Om flera -m-alternativ anges, sammanfogas deras vÀrden som separata stycken.

Alternativet -m utesluter -c, -C och -F.

-t <fil>
--template=<fil>

NÀr du redigerar incheckningsmeddelandet, starta redigeraren med innehÄllet i <fil>. Konfigurationsvariabeln commit.template anvÀnds ofta för att ge denna möjlighet implicit till kommandot. Denna mekanism kan anvÀndas av projekt som vill vÀgleda deltagarna med nÄgra tips om vad de ska skriva i meddelandet och i vilken ordning. Om anvÀndaren avslutar redigeraren utan att redigera meddelandet avbryts incheckningen. Detta har ingen effekt nÀr ett meddelande ges pÄ annat sÀtt, t.ex. med alternativen -m eller -F.

-s
--signoff
--no-signoff

LÀgg till en Signed-off-by i slutet av incheckningsloggmeddelandet. Betydelsen av en signering beror pÄ det projekt som bidrag lÀmnas till. Det kan till exempel intyga att incheckaren har rÀtt att skicka in arbetet under projektets licens eller godkÀnner nÄgon bidragsgivares representation, till exempel ett Developer Certificate of Origin. (Se https://developercertificate.org för det som anvÀnds av LinuxkÀrnan och Git-projekten.) Konsultera dokumentationen eller ledningen för det aktuella projektet för att förstÄ hur signering anvÀnds dÀr.

Alternativet --no-signoff kan anvÀndas för att upphÀva ett tidigare --signoff-alternativ pÄ kommandoraden.

Git har inte (och kommer inte ha) en konfigurationsvariabel för att aktivera kommandoradsalternativet --signoff som standard; se commit.signoff-posten i gitfaq[7] för mer information.

--trailer <token>[(=|:)<vÀrde>]

Ange ett (<token>, <vÀrde>)-par som ska anvÀndas som en slutrad. (t.ex. git commit --trailer "Signed-off-by:C O Mitter \ <committer@example.com>" --trailer "Helped-by:C O Mitter \ <committer@example.com>" kommer att lÀgga till slutraden Signed-off-by och slutraden Helped-by i incheckningsmeddelandet.) Konfigurationsvariablerna trailer.* (git-interpret-trailers[1]) kan anvÀndas för att definiera om en duplicerad trailer utelÀmnas, var i slutradsserien varje trailer ska visas och andra detaljer.

-n
--verify
--no-verify

Hoppa över krokarna pre-commit och commit-msg. Se Àven githooks[5].

--allow-empty

Vanligtvis Àr det ett misstag att registrera en incheckning som har exakt samma trÀd som dess enda överordnade incheckning, och kommandot hindrar dig frÄn att göra en sÄdan incheckning. Det hÀr alternativet kringgÄr sÀkerheten och anvÀnds frÀmst av frÀmmande SCM-grÀnssnittsskript.

--allow-empty-message

Skapa en commit med ett tomt incheckningsmeddelande utan att anvÀnda lÄgnivÄkommandon som git-commit-tree[1]. Precis som --allow-empty Àr detta kommando frÀmst avsett för anvÀndning av frÀmmande SCM-grÀnssnittsskript.

--cleanup=<lÀge>

BestÀm hur det angivna incheckningsmeddelandet ska rensas upp innan det checkas in. <mode> kan vara strip, whitespace, verbatim, scissors eller default.

strip

Ta bort inledande och efterföljande tomma rader, efterföljande blanksteg, kommentarer och dölj pÄ varandra följande tomma rader.

whitespace

Samma som strip förutom att #kommentarer inte tas bort.

verbatim

Ändra inte meddelandet alls.

scissors

Samma som blanktecken förutom att allt frÄn (och inklusive) raden nedanför avkortas om meddelandet ska redigeras. "#" kan anpassas med core.commentChar.

# ------------------------ >8 ------------------------
default

Samma som strip om meddelandet ska redigeras. Annars whitespace.

StandardvÀrdet kan Àndras med konfigurationsvariabeln commit.cleanup (se git-config[1]).

-e
--edit

LÄt anvÀndaren ytterligare redigera meddelandet som tagits frÄn <fil> med -F <fil>, kommandoraden med -m <meddelande> och frÄn <incheckning> med -C <incheckning>.

--no-edit

AnvÀnd det valda incheckningsmeddelandet utan att starta en redigerare. Till exempel Àndrar git commit --amend --no-edit en incheckning utan att Àndra dess incheckningsmeddelande.

--amend

ErsÀtt toppen av den aktuella grenen genom att skapa en ny incheckning. Det inspelade trÀdet förbereds som vanligt (inklusive effekten av alternativen -i och -o samt ett explicit sökvÀgsmönster), och meddelandet frÄn den ursprungliga incheckningen anvÀnds som utgÄngspunkt, i stÀllet för ett tomt meddelande, nÀr inget annat meddelande anges frÄn kommandoraden via alternativ som -m, -F, -c, etc. Den nya incheckningen har samma förÀldrar och författare som den aktuella (alternativet --reset-author kan motverka detta).

Det motsvarar ungefÀr:

	$ git reset --soft HEAD^
	$ ... gör nÄgot annat för att fÄ fram rÀtt trÀd ...
	$ git commit -c ORIG_HEAD

men kan anvÀndas för att Àndra en sammanslagningsincheckning.

Du bör förstĂ„ konsekvenserna av att skriva om historiken om du Ă€ndrar en incheckning som redan har publicerats. (Se avsnittet "ÅTERSTÄLLA FRÅN UPSTRÖMSREBASE" i git-rebase[1].)

--no-post-rewrite

Hoppa över kroken post-rewrite.

-i
--include

Innan du gör en incheckning frÄn det hittills köaded innehÄllet, köa Àven innehÄllet i de sökvÀgar som anges pÄ kommandoraden. Detta Àr vanligtvis inte vad du vill om du inte slutför en konfliktfylld sammanslagning.

-o
--only

Gör en incheckning genom att hÀmta det uppdaterade innehÄllet i arbetstrÀdet för de sökvÀgar som anges pÄ kommandoraden, utan att ta hÀnsyn till innehÄll som Àr köade för andra sökvÀgar. Detta Àr standardlÀget för git commit om nÄgra sökvÀgar anges pÄ kommandoraden, i vilket fall detta alternativ kan utelÀmnas. Om detta alternativ anges tillsammans med --amend behöver inga sökvÀgar anges, vilka kan anvÀndas för att Àndra den senaste incheckningen utan att checka in Àndringar som redan har köats. Om de anvÀnds tillsammans med --allow-empty krÀvs inte heller nÄgra sökvÀgar, och en tom incheckning kommer att skapas.

--pathspec-from-file=<fil>

Skicka sökvÀgsmönster i <fil> i stÀllet för kommandoradsargument. Om <fil> Àr exakt - anvÀnds standardindata. SökvÀgsmönsterposter separeras med LF eller CR/LF. SökvÀgsmönsterposter kan citeras enligt beskrivningen för konfigurationsvariabeln core.quotePath (se git-config[1]). Se Àven --pathspec-file-nul och globala --literal-pathspecs.

--pathspec-file-nul

Endast meningsfullt med --pathspec-from-file. SökvÀgsmönsterposter separeras med tecknet NUL och alla andra tecken tolkas bokstavligt (inklusive radbrytningar och citattecken).

-u[<lÀge>]
--untracked-files[=<lÀge>]

Visa ospÄrade filer.

Parametern <mode> Àr valfri (standardinstÀllningen Àr all) och anvÀnds för att ange hanteringen av ospÄrade filer; nÀr -u inte anvÀnds Àr standardinstÀllningen normal, d.v.s. visar ospÄrade filer och kataloger.

De möjliga alternativen Àr:

no

Visa inga ospÄrade filer

normal

Visar ospÄrade filer och kataloger

all

Visar Àven enskilda filer i ospÄrade kataloger.

Alla vanliga stavningar för det booleska vÀrdet true tas som normal och false som no. StandardvÀrdet kan Àndras med hjÀlp av konfigurationsvariabeln status.showUntrackedFiles som dokumenteras i git-config[1].

-v
--verbose

Visa en enhetlig skillnad mellan HEAD-incheckning och vad som skulle checkas in lÀngst ner i incheckningsmeddelandemallen för att hjÀlpa anvÀndaren att beskriva incheckningen genom att pÄminna om vilka Àndringar incheckningen har. Observera att denna diff-utdata inte har sina rader prefixerade med #. Denna skillnad kommer inte att vara en del av incheckningsmeddelandet. Se konfigurationsvariabeln commit.verbose i git-config[1].

Om det anges tvÄ gÄnger, visa dessutom den enhetliga skillnaden mellan vad som skulle checkas in och arbetstrÀdet, d.v.s. de oköade Àndringarna av spÄrade filer.

-q
--quiet

Undertryck sammanfattnings-meddelande för incheckningen.

--dry-run

Skapa inte en incheckning, utan visa en lista över sökvÀgar som ska checkas in, sökvÀgar med lokala Àndringar som kommer att lÀmnas oincheckade och sökvÀgar som inte spÄras.

--status

Inkludera utdata frÄn git-status[1] i incheckningsmeddelandemallen nÀr en redigerare anvÀnds för att förbereda incheckningsmeddelandet. StandardinstÀllningen Àr pÄ, men kan anvÀndas för att ÄsidosÀtta konfigurationsvariabeln commit.status.

--no-status

Inkludera inte utdata frÄn git-status[1] i incheckningsmeddelandemallen nÀr du anvÀnder en redigerare för att förbereda standardincheckningsmeddelandet.

-S[<nyckel-id>]
--gpg-sign[=<nyckel-id>]
--no-gpg-sign

GPG-signera incheckning. <nyckel-id> Àr valfri och anvÀnds som standard för incheckare-identiteten; om den anges mÄste den fÀstas vid alternativet utan mellanslag. --no-gpg-sign Àr anvÀndbar för att negligera bÄde konfigurationsvariabeln commit.gpgSign och den tidigare --gpg-sign.

--

Tolka inte fler argument som alternativ.

<sökvÀgsmönster>...

NÀr <sökvÀgsmönster> anges pÄ kommandoraden, checka in innehÄllet i filerna som matchar sökvÀgsmönster utan att registrera de Àndringar som redan lagts till i indexet. InnehÄllet i dessa filer köas ocksÄ för nÀsta incheckning utöver vad som har köats tidigare.

För mer information, se posten sökvÀgsmönster i gitglossary[7].

EXEMPEL

NÀr du checkar in ditt eget arbete lagras innehÄllet i modifierade filer i arbetstrÀdet tillfÀlligt i en köyta som kallas "index" med git add. En fil kan ÄterstÀllas, endast i indexet men inte i arbetstrÀdet, till lÀget i den senaste incheckningen med git restore --staged <fil>, vilket i praktiken Ängrar git add och förhindrar att Àndringarna i filen tas med i nÀsta incheckning. Efter att tillstÄndet som ska checkas in stegvis har byggts upp med dessa kommandon anvÀnds git commit (utan nÄgon sökvÀgsparameter) för att registrera det som hittills har köats. Detta Àr den mest grundlÀggande formen av kommandot. Ett exempel:

$ edit hej.c
$ git rm adjö.c
$ git add hej.c
$ git commit

I stÀllet för att köa filer efter varje enskild Àndring kan du ange att git commit ska notera Àndringarna i de filer vars innehÄll spÄras i ditt arbetstrÀd och göra motsvarande git add och git rm Ät dig. Det vill sÀga, det hÀr exemplet gör samma sak som det tidigare exemplet om det inte finns nÄgon annan Àndring i ditt arbetstrÀd:

$ edit hej.c
$ rm adjö.c
$ git commit -a

Kommandot git commit -a tittar först pÄ ditt arbetstrÀd, ser att du har Àndrat hello.c och tagit bort goodbye.c, och utför nödvÀndiga git add och git rm Ät dig.

Efter att ha köat Àndringar i mÄnga filer kan du Àndra ordningen som Àndringarna registreras i genom att ge sökvÀgar till git commit. NÀr sökvÀgar anges gör kommandot en incheckning som bara registrerar de Àndringar som gjorts i de namngivna sökvÀgarna:

$ edit hej.c hej.h
$ git add hej.c hej.h
$ edit Makefile
$ git commit Makefile

Det hĂ€r skapar en incheckning som registrerar modifieringen till Makefile. Ändringarna som köats för hej.c och hej.h inkluderas inte i den resulterande incheckningen. Deras Ă€ndringar gĂ„r dock inte förlorade — de köas fortfarande och hĂ„lls bara tillbaka. Om du gör det efter ovanstĂ„ende sekvens:

$ git commit

Denna andra incheckningen skulle registrera Àndringarna av hej.c och hej.h som förvÀntat.

Efter att en sammanslagning (initierad av git merge eller git pull) har stoppats pÄ grund av konflikter Àr rent sammanslagna sökvÀgar redan köade för incheckning, och sökvÀgar med konflikt lÀmnas ej sammanslagna. Du behöver först kontrollera vilka sökvÀgar som Àr i konflikt med git status och, efter att ha ÄtgÀrdat dem manuellt i arbetstrÀdet, köa resultatet som vanligt med git add:

$ git status | grep unmerged
unmerged: hej.c
$ edit hej.c
$ git add hej.c

Efter att konflikter har lösts och resultatet köats, kommer git ls-files -u att sluta nÀmna den konfliktfyllda sökvÀgen. NÀr du Àr klar, kör git commit för att slutligen registrera sammanslagningen:

$ git commit

Precis som i fallet med att registrera dina egna Àndringar kan du anvÀnda alternativet -a för att spara skrivning. En skillnad Àr att under en sammanslagningslösning kan du inte anvÀnda git commit med sökvÀgar för att Àndra ordningen som Àndringarna checkas in, eftersom sammanslagningen ska registreras som en enda incheckning. Kommandot vÀgrar faktiskt att köras nÀr det ges sökvÀgar (men se alternativet -i).

INCHECKNINGS INFORMATION

Information om författare och incheckare hÀmtas frÄn följande miljövariabler, om de Àr instÀllda:

  • GIT_AUTHOR_NAME

  • GIT_AUTHOR_EMAIL

  • GIT_AUTHOR_DATE

  • GIT_COMMITTER_NAME

  • GIT_COMMITTER_EMAIL

  • GIT_COMMITTER_DATE

(obs "<", ">" och "\n" Àr avskalade)

Författar- och incheckare-namnen Àr enligt konvention nÄgon form av ett personnamn (det vill sÀga det namn som andra mÀnniskor refererar till dig med), Àven om Git inte tillÀmpar eller krÀver nÄgon sÀrskild form. Godtycklig Unicode kan anvÀndas, med förbehÄll för de begrÀnsningar som anges ovan. Detta namn har ingen effekt pÄ autentisering; för detta, se variabeln credential.username i git-config[1].

Om (nÄgra av) dessa miljövariabler inte Àr angivna, hÀmtas informationen frÄn konfigurationsalternativen user.name och user.email, eller, om de inte finns, miljövariabeln EMAIL, eller, om den inte Àr angiven, systemanvÀndarnamnet och vÀrdnamnet som anvÀnds för utgÄende e-post (hÀmtat frÄn /etc/mailname och anvÀnder det fullstÀndiga kvalificerade vÀrdnamnet nÀr den filen inte finns).

author.name och committer.name och deras motsvarande e-postalternativ ÄsidosÀtter user.name och user.email om de Àr instÀllda och ÄsidosÀtts sjÀlva av miljövariablerna.

Den typiska anvÀndningen Àr att bara ange variablerna user.name och user.email; de andra alternativen finns för mer komplexa anvÀndningsfall.

DATUMFORMAT

Miljövariablerna GIT_AUTHOR_DATE och GIT_COMMITTER_DATE stöder följande datumformat:

Git internt format

Det Àr <unix-timestamp> <time-zone-offset>, dÀr <unix-timestamp> Àr antalet sekunder sedan UNIX-epoken. <time-zone-offset> Àr en positiv eller negativ förskjutning frÄn UTC. Till exempel Àr CET (som Àr 1 timme före UTC) +0100.

RFC 2822

Standarddatumformatet som beskrivs av RFC 2822, till exempel Tor, 07 Apr 2005 22:13:13 +0200.

ISO 8601

Tid och datum som anges av ISO 8601-standarden, till exempel 2005-04-07T22:13:13. Parsern accepterar Àven ett mellanslag i stÀllet för tecknet T. BrÄkdelar av en sekund kommer att ignoreras, till exempel 2005-04-07T22:13:13.019 kommer att behandlas som 2005-04-07T22:13:13.

Note
Dessutom accepteras datumdelen i följande format: ÅÅÅÅ.MM.DD, MM/DD/ÅÅÅÅ och DD.MM.ÅÅÅÅ.

Förutom att kÀnna igen alla datumformat ovan, kommer alternativet --date ocksÄ att försöka förstÄ andra, mer mÀnniskocentrerade datumformat, sÄsom relativa datum som "yesterday" (igÄr) eller "yesterday" (förra fredagen vid middagstid).

DISKUSSION

Även om det inte Ă€r ett krav Ă€r det en bra idĂ© att börja incheckningsmeddelandet med en enda kort rad (högst 50 tecken) som sammanfattar Ă€ndringen, följt av en tom rad och sedan en mer utförlig beskrivning. Texten fram till den första tomma raden i ett incheckningsmeddelande behandlas som incheckningstiteln, och den titeln anvĂ€nds i hela Git. Till exempel, git-format-patch[1] omvandlar en incheckning till ett e-postmeddelande, och den anvĂ€nder titeln pĂ„ Ă€mnesraden och resten av incheckningsmeddelandet i brödtexten.

Git Àr till viss del teckenkodningsagnostisk.

  • InnehĂ„llet i blob-objekten Ă€r otolkade sekvenser av byte. Det finns ingen kodningsöversĂ€ttning pĂ„ kĂ€rnnivĂ„.

  • SökvĂ€gsnamn Ă€r kodade i UTF-8-normaliseringsform C. Detta gĂ€ller trĂ€dobjekt, indexfilen, referensnamn, sĂ„vĂ€l som sökvĂ€gsnamn i kommandoradsargument, miljövariabler och konfigurationsfiler (.git/config (se git-config[1]), gitignore[5], gitattributes[5] och gitmodules[5]).

    Observera att Git pÄ kÀrnnivÄ behandlar sökvÀgsnamn helt enkelt som sekvenser av icke-NUL-byte, det finns inga konverteringar av sökvÀgskodning (förutom pÄ Mac och Windows). DÀrför fungerar anvÀndning av sökvÀgsnamn som inte Àr ASCII-namn oftast Àven pÄ plattformar och filsystem som anvÀnder Àldre utökade ASCII-kodningar. KodförrÄd som skapas pÄ sÄdana system kommer dock inte att fungera korrekt pÄ UTF-8-baserade system (t.ex. Linux, Mac, Windows) och vice versa. Dessutom antar mÄnga Git-baserade verktyg helt enkelt att sökvÀgsnamn Àr UTF-8 och kommer inte att kunna visa andra kodningar korrekt.

  • Meddelanden i commitloggar kodas vanligtvis i UTF-8, men andra utökade ASCII-kodningar stöds ocksĂ„. Detta inkluderar ISO-8859-x, CP125x och mĂ„nga andra, men inte UTF-16/32, EBCDIC och CJK multibyte-kodningar (GBK, Shift-JIS, Big5, EUC-x, CP9xx etc.).

Även om vi uppmuntrar att incheckningsloggmeddelanden kodas i UTF-8, Ă€r bĂ„de kĂ€rnan och anvĂ€ndarkommandona (porcelain) i Git utformade för att inte tvinga fram UTF-8 i projekt. Om alla deltagare i ett visst projekt tycker att det Ă€r bekvĂ€mare att anvĂ€nda Ă€ldre kodningar, förbjuder inte Git det. Det finns dock nĂ„gra saker att tĂ€nka pĂ„.

  1. git commit och git commit-tree utfÀrdar en varning om incheckningsloggmeddelandet som ges till det inte ser ut som en giltig UTF-8-strÀng, sÄvida du inte uttryckligen anger att ditt projekt anvÀnder en Àldre kodning. SÀttet att sÀga detta Àr att ha i18n.commitEncoding i .git/config-filen, sÄ hÀr:

    [i18n]
    	commitEncoding = ISO-8859-1

    Incheckningsobjekt som skapats med ovanstÄende instÀllning registrerar vÀrdet för i18n.commitEncoding i sin encoding-header. Detta Àr för att hjÀlpa andra som tittar pÄ dem senare. Avsaknaden av denna header innebÀr att incheckningsloggmeddelandet Àr kodat i UTF-8.

  2. git log, git show, git blame och vÀnner tittar pÄ encoding-headern för ett incheckningsobjekt och försöker koda om loggmeddelandet till UTF-8 om inget annat anges. Du kan ange önskad utdatakodning med i18n.logOutputEncoding i .git/config-filen, sÄ hÀr:

    [i18n]
    	logOutputEncoding = ISO-8859-1

    Om du inte har den hÀr konfigurationsvariabeln anvÀnds vÀrdet för i18n.commitEncoding i stÀllet.

Observera att vi medvetet valde att inte koda om incheckningsloggmeddelandet nÀr en incheckning görs för att tvinga fram UTF-8 pÄ incheckningsobjektnivÄ, eftersom omkodning till UTF-8 inte nödvÀndigtvis Àr en reversibel operation.

MILJÖ- OCH KONFIGURATIONSVARIABLER

Redigeraren som anvÀnds för att redigera incheckningsloggmeddelandet kommer att vÀljas frÄn miljövariabeln GIT_EDITOR, konfigurationsvariabeln core.editor, miljövariabeln VISUAL eller miljövariabeln EDITOR (i den ordningen). Se git-var[1] för mer information.

Allt ovanför den hÀr raden i det hÀr avsnittet finns inte med i dokumentationen för git-config[1]. InnehÄllet som följer Àr detsamma som det som finns dÀr:

commit.cleanup

Den hÀr instÀllningen ÄsidosÀtter standardinstÀllningen för --cleanup-alternativet i git commit. Att Àndra standardinstÀllningen kan vara anvÀndbart nÀr du alltid vill behÄlla rader som börjar med kommentartecknet (core.commentChar, standard #) i ditt loggmeddelande, i vilket fall du skulle göra git config commit.cleanup whitespace (observera att du sjÀlv mÄste ta bort hjÀlpraderna som börjar med kommentartecknet i incheckning-loggmallen om du gör detta).

commit.gpgSign

En boolesk kod som anger om alla incheckningar ska GPG-signeras. AnvÀndning av det hÀr alternativet vid operationer som ombasering kan resultera i att ett stort antal incheckningar signeras. Det kan vara praktiskt att anvÀnda en agent för att undvika att skriva in din GPG-lösenfras flera gÄnger.

commit.status

Ett booleskt vÀrde för att aktivera/inaktivera inkludering av statusinformation i incheckningsmeddelandemallen nÀr en redigerare anvÀnds för att förbereda incheckningsmeddelandet. StandardvÀrdet Àr true.

commit.template

Ange sökvÀgen till en fil som ska anvÀndas som mall för nya incheckningsmeddelanden.

commit.verbose

Ett booleskt vÀrde eller ett heltal för att ange utförlighetsnivÄn med git commit.

KROKAR

Det hÀr kommandot kan köra hakarna commit-msg, prepare-commit-msg, pre-commit, post-commit och post-rewrite. Se githooks[5] för mer information.

FILER

$GIT_DIR/COMMIT_EDITMSG

Den hÀr filen innehÄller incheckningsmeddelandet för en pÄgÄende incheckning. Om git commit avslutas pÄ grund av ett fel innan en incheckning skapas, kommer alla incheckningsmeddelanden som har tillhandahÄllits av anvÀndaren (t.ex. i en redigeringssession) att finnas tillgÀngliga i den hÀr filen, men kommer att skrivas över av nÀsta anrop av git commit.

GIT

En del av git[1]-sviten