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.53.0
2026-02-02
-
2.52.0
2025-11-17
- 2.51.2 no changes
-
2.51.1
2025-10-15
- 2.50.1 → 2.51.0 no changes
-
2.50.0
2025-06-16
- 2.49.1 no changes
-
2.49.0
2025-03-14
- 2.48.1 → 2.48.2 no changes
-
2.48.0
2025-01-10
- 2.47.1 → 2.47.3 no changes
-
2.47.0
2024-10-06
- 2.46.1 → 2.46.4 no changes
-
2.46.0
2024-07-29
- 2.45.2 → 2.45.4 no changes
-
2.45.1
2024-04-29
-
2.45.0
2024-04-29
- 2.44.2 → 2.44.4 no changes
-
2.44.1
2024-04-19
-
2.44.0
2024-02-23
- 2.43.5 → 2.43.7 no changes
-
2.43.4
2024-04-19
- 2.43.2 → 2.43.3 no changes
-
2.43.1
2024-02-09
-
2.43.0
2023-11-20
- 2.42.3 → 2.42.4 no changes
-
2.42.2
2024-04-19
-
2.42.1
2023-11-02
-
2.42.0
2023-08-21
- 2.41.2 → 2.41.3 no changes
-
2.41.1
2024-04-19
-
2.41.0
2023-06-01
- 2.40.3 → 2.40.4 no changes
-
2.40.2
2024-04-19
- 2.40.1 no changes
- 2.40.0 no changes
- 2.39.5 no changes
-
2.39.4
2024-04-19
- 2.39.1 → 2.39.3 no changes
-
2.39.0
2022-12-12
- 2.38.3 → 2.38.5 no changes
-
2.38.2
2022-12-11
- 2.38.1 no changes
-
2.38.0
2022-10-02
- 2.37.3 → 2.37.7 no changes
-
2.37.2
2022-08-11
- 2.37.1 no changes
-
2.37.0
2022-06-27
- 2.36.1 → 2.36.6 no changes
-
2.36.0
2022-04-18
- 2.35.1 → 2.35.8 no changes
-
2.35.0
2022-01-24
- 2.34.1 → 2.34.8 no changes
-
2.34.0
2021-11-15
- 2.33.3 → 2.33.8 no changes
-
2.33.2
2022-03-23
-
2.33.1
2021-10-12
- 2.32.1 → 2.33.0 no changes
-
2.32.0
2021-06-06
- 2.31.1 → 2.31.8 no changes
-
2.31.0
2021-03-15
- 2.30.1 → 2.30.9 no changes
-
2.30.0
2020-12-27
- 2.29.1 → 2.29.3 no changes
-
2.29.0
2020-10-19
- 2.28.1 no changes
-
2.28.0
2020-07-27
- 2.27.1 no changes
-
2.27.0
2020-06-01
- 2.26.1 → 2.26.3 no changes
-
2.26.0
2020-03-22
- 2.25.2 → 2.25.5 no changes
-
2.25.1
2020-02-17
-
2.25.0
2020-01-13
- 2.23.1 → 2.24.4 no changes
-
2.23.0
2019-08-16
- 2.22.2 → 2.22.5 no changes
-
2.22.1
2019-08-11
-
2.22.0
2019-06-07
- 2.20.1 → 2.21.4 no changes
-
2.20.0
2018-12-09
- 2.19.3 → 2.19.6 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.1 → 2.17.6 no changes
-
2.17.0
2018-04-02
-
2.16.6
2019-12-06
-
2.15.4
2019-12-06
-
2.14.6
2019-12-06
- 2.13.7 no changes
-
2.12.5
2017-09-22
-
2.11.4
2017-09-22
-
2.10.5
2017-09-22
-
2.9.5
2017-07-30
-
2.8.6
2017-07-30
-
2.7.6
2017-07-30
-
2.6.7
2017-05-05
-
2.5.6
2017-05-05
-
2.4.12
2017-05-05
-
2.3.10
2015-09-28
-
2.2.3
2015-09-04
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
SYNOPSIS
git [-v | --version] [-h |--help] [-C <sökväg>] [-c <namn>=<värde>]
[--exec-path[=<sökväg>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | -P | --no-pager] [--no-replace-objects] [--no-lazy-fetch]
[--no-optional-locks] [--no-advice] [--bare] [--git-dir=<sökväg>]
[--work-tree=<sökväg>] [--namespace=<namn>] [--config-env=<namn>=<miljövar>]
<kommando> [<flaggor>]
BESKRIVNING
Git är ett snabbt, skalbart, distribuerat revisionskontrollsystem med en ovanligt rik kommandouppsättning som ger både övergripande operationer och fullständig åtkomst till interna funktioner.
Se gittutorial[7] för att komma igång, och därefter giteveryday[7] för en användbar minimiuppsättning kommandon. Git User’s Manual har en mer fördjupad introduktion.
När du bemästrar de grundläggande koncepten kan du återvända till den här sidan för att lära dig vilka kommandon Git erbjuder. Du kan lära dig mer om enskilda Git-kommandon med "git help command". Manualsidan för gitcli[7] ger dig en översikt över kommandoradssyntaxen.
En formaterad och hyperlänkad kopia av den senaste Git-dokumentationen kan ses på https://git.github.io/htmldocs/git.html eller https://git-scm.com/docs.
ALTERNATIV
- -v
- --version
-
Skriver ut Git-svitversionen som git-programmet kom från.
Det här alternativet konverteras internt till
gitversion... och accepterar samma alternativ som kommandot git-version[1]. Om--helpockså anges har det företräde framför--version. - -h
- --help
-
Skriver ut synopsis och en lista över de vanligaste kommandona. Om alternativet
--alleller-aanges skrivs alla tillgängliga kommandon ut. Om ett Git-kommando namnges kommer det här alternativet att visa manualsidan för det kommandot.Andra alternativ finns tillgängliga för att kontrollera hur manualsidan visas. Se git-help[1] för mer information, eftersom
git--help... konverteras internt tillgithelp.... - -C <sökväg>
-
Kör som om git startades i <sökväg> i stället för den aktuella arbetskatalogen. När flera
-C-alternativ anges, tolkas varje efterföljande icke-absolut-C<sökväg> relativt till föregående-C<sökväg>. Om <sökväg> finns men är tom, t.ex.-C"", lämnas den aktuella arbetskatalogen oförändrad.Det här alternativet påverkar alternativ som förväntar sig sökvägsnamn som
--git-diroch--work-tree, i det att deras tolkningar av sökvägsnamnen skulle göras relativa till arbetskatalogen som orsakas av alternativet-C. Till exempel är följande anrop likvärdiga:git --git-dir=a.git --work-tree=b -C c status git --git-dir=c/a.git --work-tree=c/b status
- -c <namn>=<värde>
-
Skicka en konfigurationsparameter till kommandot. Det angivna värdet åsidosätter värden från konfigurationsfiler. <namn> förväntas ha samma format som listas av git config (undernycklar separerade med punkter).
Observera att det är tillåtet att utelämna
=igit-cfoo.bar... och sätterfoo.bartill det booleska värdet sant (precis som [foo]barskulle göra i en konfigurationsfil). Om man inkluderar lika med men med ett tomt värde (somgit-cfoo.bar=...) sätter manfoo.bartill den tomma strängen somgitconfig--type=boolkommer att konvertera tillfalse. - --config-env=<namn>=<miljövar>
-
Precis som med
-c<namn>=<värde>, ge konfigurationsvariabeln <namn> ett värde, där <miljövar> är namnet på en miljövariabel från vilken värdet ska hämtas. Till skillnad från-cfinns det ingen genväg för att direkt sätta värdet till en tom sträng; i stället måste själva miljövariabeln sättas till den tomma strängen. Det är ett fel om <miljövar> inte finns i miljön. <miljövar> får inte innehålla ett likhetstecken för att undvika tvetydighet när <namn> innehåller ett.Det är användbart när tillfälliga konfigurationsalternativ skickas till git på operativsystem där andra processer kanske kan läsa kommandoraden (t.ex.
/proc/self/cmdline), men inte miljön (t.ex./proc/self/environ). Det beteendet är standard på Linux, men kanske inte på det aktuella systemet.Observera att detta kan öka säkerheten för variabler som
http.extraHeaderdär den känsliga informationen är en del av värdet, men inte t.ex.url.<bas>.insteadOfdär den känsliga informationen kan vara en del av nyckeln. - --exec-path[=<sökväg>]
-
Sökväg till var dina kärnprogram i Git är installerade. Detta kan också styras genom att ställa in miljövariabeln GIT_EXEC_PATH. Om ingen sökväg anges kommer git att skriva ut den aktuella inställningen och sedan avsluta.
- --html-path
-
Skriv ut sökvägen, utan avslutande snedstreck, där Gits HTML-dokumentation är installerad och avsluta.
- --man-path
-
Skriv ut manualsökvägen (se
man(1)) för manualsidorna för den här versionen av Git och avsluta. - --info-path
-
Skriv ut sökvägen där infofilerna som dokumenterar den här versionen av Git är installerade och avsluta.
- -p
- --paginate
-
Skicka all utdata till less (eller om angivet, $PAGER) om standardutdata är en terminal. Detta åsidosätter konfigurationsalternativen för
pager.<cmd> (se avsnittet "Konfigurationsmekanism" nedan). - -P
- --no-pager
-
Skicka inte Git-utdata till en bläddrare.
- --git-dir=<sökväg>
-
Ange sökvägen till kodförrådet (".git"-katalogen). Detta kan också styras genom att ange miljövariabeln
GIT_DIR. Det kan vara en absolut sökväg eller en relativ sökväg till den aktuella arbetskatalogen.Att ange platsen för katalogen ".git" med hjälp av det här alternativet (eller miljövariabeln
GIT_DIR) stänger av kodförråd-upptäckten som försöker hitta en katalog med underkatalogen ".git" (vilket är hur kodförrådet och den översta nivån i arbetsträdet upptäcks), och talar om för Git att kommandot körs från den översta nivån i arbetsträdet. Om så inte är fallet bör Git få information om var den översta nivån i arbetsträdet finns, med alternativet--work-tree=<sökväg> (eller miljövariabelnGIT_WORK_TREE)Om du bara vill köra git som om det startades i <sökväg>, använd då
git-C<sökväg>. - --work-tree=<sökväg>
-
Ange sökvägen till arbetsträdet. Det kan vara en absolut sökväg eller en sökväg relativ till den aktuella arbetskatalogen. Detta kan också styras genom att ställa in miljövariabeln GIT_WORK_TREE och konfigurationsvariabeln core.worktree (se core.worktree i git-config[1] för en mer detaljerad diskussion).
- --namespace=<sökväg>
-
Ställ in Git-namnrymden. Se gitnamespaces[7] för mer information. Motsvarar att ställa in miljövariabeln
GIT_NAMESPACE. - --bare
-
Behandla kodförrådet som ett rent bart kodförråd. Om GIT_DIR-miljön inte är inställd, sätts den till den aktuella arbetskatalogen.
- --no-replace-objects
-
Använd inte ersättningsreferenser för att ersätta Git-objekt. Detta motsvarar att exportera miljövariabeln
GIT_NO_REPLACE_OBJECTSmed valfritt värde. Se git-replace[1] för mer information. - --no-lazy-fetch
-
Hämta inte saknade objekt från promisor-fjärr på begäran. Användbart tillsammans med
gitcat-file-e<objekt> för att se om objektet är lokalt tillgängligt. Detta motsvarar att sätta miljövariabelnGIT_NO_LAZY_FETCHtill1. - --no-optional-locks
-
Utför inte valfria operationer som kräver lås. Detta motsvarar att sätta
GIT_OPTIONAL_LOCKStill0. - --no-advice
-
Inaktivera utskrift av alla rådtips.
- --literal-pathspecs
-
Behandla sökvägsuttryck bokstavligt (d.v.s. ingen globbing, ingen sökvägsuttrycksmagi). Detta motsvarar att sätta miljövariabeln
GIT_LITERAL_PATHSPECStill1. - --glob-pathspecs
-
Lägg till "glob"-magi till alla sökvägsmönster. Detta motsvarar att sätta miljövariabeln
GIT_GLOB_PATHSPECStill1. Globbing kan inaktiveras på individuella sökvägsmönster med sökvägsmönstret ":(literal)" - --noglob-pathspecs
-
Lägg till "literal" uttryck till alla sökvägsmönster. Detta motsvarar att sätta miljövariabeln
GIT_NOGLOB_PATHSPECStill1. Att aktivera globbing på individuella sökvägsmönster kan göras med sökvägsmönstret ":(glob)" - --icase-pathspecs
-
Lägg till "icase"-uttryck till alla sökvägsmönster. Detta motsvarar att sätta miljövariabeln
GIT_ICASE_PATHSPECStill1. - --list-cmds=<grupp>[,<grupp>…]
-
Lista kommandon efter grupp. Detta är ett internt/experimentellt alternativ och kan komma att ändras eller tas bort i framtiden. Grupper som stöds är: builtins, parseopt (inbyggda kommandon som använder parse-alternativ), deprecated (föråldrade inbyggda kommandon), main (alla kommandon i libexec-katalogen), others (alla andra kommandon i
$PATHsom har git-prefixet), list-<kategori> (se kategorier i command-list.txt), nohelpers (exkluderar hjälpkommandon), alias och config (hämtar kommandolista från konfigurationsvariabeln completion.commands) - --attr-source=<trädlikt>
-
Läs gitattributes från <trädlikt> i stället för arbetsträdet. Se gitattributes[5]. Detta motsvarar att ställa in miljövariabeln
GIT_ATTR_SOURCE.
Högnivåkommandon (porcelain)
Vi delar upp högnivåkommandona i huvudkommandon och några hjälpprogram.
Huvudkommandon för högnivå
|
Warning
|
Missing See original version for this content. |
Tilläggskommandon
Manipulatörer:
|
Warning
|
Missing See original version for this content. |
Förhörsledare:
|
Warning
|
Missing See original version for this content. |
Interaktion med andra
Dessa kommandon är till för att interagera med främmande SCM och med andra personer via patch via e-post.
|
Warning
|
Missing See original version for this content. |
Nollställ, återställ och ångring
Det finns tre kommandon med liknande namn: git reset, git restore och git revert.
-
git-revert[1] handlar om att skapa en ny incheckning som återställer ändringar gjorda av andra incheckning.
-
git-restore[1] handlar om att återställa filer i arbetsträd från antingen indexet eller en annan incheckning. Kommandot uppdaterar inte grenen. Kommandot kan också användas för att återställa filer i indexet från en annan incheckning.
-
git-reset[1] handlar om att uppdatera grenen och flytta toppen för att lägga till eller ta bort incheckningar från grenen. Denna operation ändrar incheckningshistoriken.
gitresetkan också användas för att återställa indexet, överlappande medgitrestore.
Lågnivåkommandon (plumbing)
Även om Git inkluderar sitt eget högnivålager, är dess lågnivåkommandon tillräckliga för att stödja utvecklingen av alternativa högnivåkommandon. Utvecklare av sådana kommandon kan börja med att läsa om git-update-index[1] och git-read-tree[1].
Gränssnittet (indata, utdata, uppsättning alternativ och semantiken) till dessa lågnivåkommandon är avsett att vara mycket mer stabilt än kommandon på högnivå, eftersom dessa kommandon främst är för skriptbaserad användning. Gränssnittet till högnivåkommandon kan däremot komma att ändras för att förbättra slutanvändarupplevelsen.
Följande beskrivning delar upp lågnivåkommandon i kommandon som manipulerar objekt (i kodförrådet, indexet och arbetsträdet), kommandon som förhör och jämför objekt, och kommandon som flyttar objekt och referenser mellan kodförråd.
Manipulationskommandon
|
Warning
|
Missing See original version for this content. |
Förhörskommandon
|
Warning
|
Missing See original version for this content. |
I allmänhet berör inte förhörs-kommandon filerna i arbetsträdet.
Synkronisera kodförråd
|
Warning
|
Missing See original version for this content. |
Följande är hjälpkommandon som används av ovanstående; slutanvändare använder dem vanligtvis inte direkt.
|
Warning
|
Missing See original version for this content. |
Guider
Följande dokumentationssidor är guider om Git-koncept.
|
Warning
|
Missing See original version for this content. |
Gränssnitt för kodförråd, kommandon och filer
Denna dokumentation diskuterar gränssnitt för kodförråd och kommandon som användare förväntas interagera direkt med. Se --user-formats i git-help[1] för mer information om kriterierna.
|
Warning
|
Missing See original version for this content. |
Filformat, protokoll och andra utvecklargränssnitt
Denna dokumentation diskuterar filformat, över kabeln-protokoll och andra Git-utvecklargränssnitt. Se --developer-interfaces i git-help[1].
|
Warning
|
Missing See original version for this content. |
Konfigurationsmekanism
Git använder ett enkelt textformat för att lagra anpassningar som är per kodförråd och per användare. En sådan konfigurationsfil kan se ut så här:
# # Ett '#'- eller ';'-teckne anger en kommentar. # ; kärnvariabler [core] ; Lita inte på fillägen filemode = false ; användaridentitet [user] name = "Junio C Hamano" email = "gitster@pobox.com"
Olika kommandon läses från konfigurationsfilen och justerar sin funktion därefter. Se git-config[1] för en lista och mer information om konfigurationsmekanismen.
Identifierare Terminologi
- <objekt>
-
Anger objektnamnet för alla typer av objekt.
- <blob>
-
Anger ett blob-objektnamn.
- <träd>
-
Indikerar ett trädobjektnamn.
- <incheckning>
-
Indikerar ett incheckningsobjektnamn.
- <trädlikt>
-
Indikerar ett träd-, inchecknings- eller taggobjektnamn. Ett kommando som tar ett <trädlikt>-argument vill i slutändan operera på ett <tree>-objekt men avreferenserar automatiskt <inchecknings>- och <tag>-objekt som pekar på ett <träd>.
- <incheckningslik>
-
Indikerar namnet på ett inchecknings- eller taggobjekt. Ett kommando som tar argumentet <incheckningslik> vill i slutändan arbeta på ett <incheckning>-objekt men avrefererar automatiskt <tagg>-objekt som pekar på en <incheckning>.
- <typ>
-
Indikerar att en objekttyp krävs. För närvarande en av:
blob,tree,commitellertag. - <fil>
-
Indikerar ett filnamn - nästan alltid relativt till roten av trädstrukturen som
GIT_INDEX_FILEbeskriver.
Symboliska identifierare
Alla Git-kommandon som accepterar valfritt <objekt> kan också använda följande symboliska notation:
För en mer komplett lista över hur man stavar objektnamn, se avsnittet "SPECIFICERING AV REVISIONER" i gitrevisions[7].
Fil-/katalogstruktur
Se dokumentet gitrepository-layout[5].
Läs githooks[5] för mer information om varje krok.
SCM:er på högre nivå kan tillhandahålla och hantera ytterligare information i $GIT_DIR.
Terminologi
Please see gitglossary[7].
Miljövariabler
Olika Git-kommandon uppmärksammar miljövariabler och ändrar deras beteende. Miljövariabler markerade som "Booleska" tar sina värden på samma sätt som booleska konfigurationsvariabler, d.v.s. "sant", "ja", "på" och positiva tal tas som "ja", medan "falskt", "nej", "av" och "0" tas som "nej".
Här är variablerna:
Git-kodförråd
Dessa miljövariabler gäller för "alla" centrala Git-kommandon. Obs: de kan användas/åsidosättas av SCM-system ovanpå Git, så försiktighet behövs vid användning av en extern framände.
-
GIT_INDEX_FILE -
Denna miljövariabel anger en alternativ indexfil. Om den inte anges används standardvärdet
$GIT_DIR/index. -
GIT_INDEX_VERSION -
Denna miljövariabel anger vilken indexversion som används när indexfilen skrivs ut. Den påverkar inte befintliga indexfiler. Som standard används indexfilversion 2 eller 3. Se git-update-index[1] för mer information.
-
GIT_OBJECT_DIRECTORY -
Om objektlagringskatalogen anges via denna miljövariabel skapas sha1-katalogerna under - annars används standardkatalogen
$GIT_DIR/objects. -
GIT_ALTERNATE_OBJECT_DIRECTORIES -
På grund av Git-objektens oföränderliga natur kan gamla objekt arkiveras i delade, skrivskyddade kataloger. Denna variabel anger en ":"-separerad (i Windows ";"-separerad) lista över Git-objektkataloger som kan användas för att söka efter Git-objekt. Nya objekt kommer inte att skrivas till dessa kataloger.
Poster som börjar med
"(dubbla citattecken) tolkas som C-liknande citattecken, vilket tar bort inledande och efterföljande dubbla citattecken och respekterar omvända snedstreck. Till exempel har värdet "sökväg-med-\"-och-:-i-den":vanilla-sökväg två sökvägar: sökväg-med-"-och-:-i-den och vanilla-sökväg. -
GIT_DIR -
Om miljövariabeln
GIT_DIRär satt anger den en sökväg som ska användas i stället för standardvariabeln.gitför basen av kodförrådet. Kommandoradsalternativet--git-dirställer också in detta värde. -
GIT_WORK_TREE -
Ange sökvägen till roten av arbetsträdet. Detta kan också styras av kommandoradsalternativet
--work-treeoch konfigurationsvariabeln core.worktree. -
GIT_NAMESPACE -
Ställ in Git-namnrymden; se gitnamespaces[7] för mer information. Kommandoradsalternativet
--namespaceställer också in detta värde. -
GIT_CEILING_DIRECTORIES -
Det bör vara en kolonseparerad lista med absoluta sökvägar. Om den är angiven är det en lista över kataloger som Git inte ska söka upp till när den letar efter en kodförråd-katalog (användbart för att exkludera långsamt laddande nätverkskataloger). Den kommer inte att exkludera den aktuella arbetskatalogen eller en GIT_DIR-uppsättning på kommandoraden eller i miljön. Normalt måste Git läsa posterna i den här listan och matcha eventuella symboliska länkar som kan finnas för att jämföra dem med den aktuella katalogen. Men om även denna åtkomst är långsam kan en tom post läggas till i listan för att tala om för Git att de efterföljande posterna inte är symboliska länkar och inte behöver matchas; t.ex.
GIT_CEILING_DIRECTORIES=/maybe/symlink::/very/slow/non/symlink. -
GIT_DISCOVERY_ACROSS_FILESYSTEM -
När Git körs i en katalog som inte har ".git"-kodförråd-katalogen, försöker den hitta en sådan katalog i överordnade kataloger för att hitta toppen av arbetsträdet, men som standard korsar den inte filsystemsgränser. Denna booleska miljövariabel kan sättas till true för att ange att Git inte ska stanna vid filsystemsgränser. Liksom
GIT_CEILING_DIRECTORIESkommer detta inte att påverka en explicit arkivkatalog som anges viaGIT_DIReller på kommandoraden. -
GIT_COMMON_DIR -
Om den här variabeln är satt till en sökväg, kommer filer som inte är arbetsträd och som normalt finns i $GIT_DIR att hämtas från den här sökvägen i stället. Arbetsträdspecifika filer som HEAD eller index hämtas från $GIT_DIR. Se gitrepository-layout[5] och git-worktree[1] för mer information. Den här variabeln har lägre prioritet än andra sökvägsvariabler som GIT_INDEX_FILE, GIT_OBJECT_DIRECTORY…
-
GIT_DEFAULT_HASH -
Om denna variabel är satt kommer standard hashalgoritmen för nya kodförråd att ställas in på detta värde. Detta värde ignoreras vid kloning och inställningen för fjärrkodförråd används alltid. Standardvärdet är "sha1". Se
--object-formati git-init[1]. -
GIT_DEFAULT_REF_FORMAT -
Om den här variabeln är satt, kommer standardformatet för referensbakände för nya kodförråd att ställas in på detta värde. Standardvärdet är "files". Se
--ref-formati git-init[1].
Git-incheckningar
-
GIT_AUTHOR_NAME -
Det människoläsbara namnet som används i författaridentiteten när man skapar inchecknings- eller taggobjekt, eller när man skriver refloggar. Åsidosätter konfigurationsinställningarna
user.nameochauthor.name. -
GIT_AUTHOR_EMAIL -
E-postadressen som används i författaridentiteten när man skapar inchecknings- eller taggobjekt, eller när man skriver refloggar. Åsidosätter konfigurationsinställningarna
user.emailochauthor.email. -
GIT_AUTHOR_DATE -
Datumet som används för författaridentiteten när man skapar inchecknings- eller taggobjekt, eller när man skriver refloggar. Se git-commit[1] för giltiga format.
-
GIT_COMMITTER_NAME -
Det människoläsbara namnet som används i incheckaridentiteten när inchecknings- eller taggobjekt skapas, eller när refloggar skrivs. Åsidosätter konfigurationsinställningarna
user.nameochcommitter.name. -
GIT_COMMITTER_EMAIL -
E-postadressen som används i författaridentiteten när man skapar inchecknings- eller taggobjekt, eller när man skriver refloggar. Åsidosätter konfigurationsinställningarna
user.emailochcommitter.email. -
GIT_COMMITTER_DATE -
Datumet som används för incheckaridentiteten när inchecknings- eller taggobjekt skapas, eller när refloggar skrivs. Se git-commit[1] för giltiga format.
-
EMAIL -
E-postadressen som används i författar- och incheckare-identiteterna om ingen annan relevant miljövariabel eller konfigurationsinställning har angetts.
Git-differenser
-
GIT_DIFF_OPTS -
Den enda giltiga inställningen är "--unified=??" eller "-u??" för att ange antalet kontextrader som visas när en enhetlig diff skapas. Detta har företräde framför alla alternativvärden "-U" eller "--unified" som skickas på Git diff-kommandoraden.
-
GIT_EXTERNAL_DIFF -
När miljövariabeln
GIT_EXTERNAL_DIFFär satt, anropas programmet som namnges av den för att generera differ, och Git använder inte dess inbyggda diff-maskineri. För en sökväg som läggs till, tas bort eller ändras, anropasGIT_EXTERNAL_DIFFmed 7 parametrar:sökväg gammal-fil gammal-hex gammalt-läge ny-fil ny-hex nytt-läge
där:
- <gammal|ny>-fil
-
är filer som GIT_EXTERNAL_DIFF kan använda för att läsa innehållet i <gammal|ny>,
- <gammal|ny>-hex
-
är de 40 hexsiffriga SHA-1-hashen,
- <gammalt|nytt>-läge
-
är den oktala representationen av fillägena.
Filparametrarna kan peka på användarens arbetsfil (t.ex.
new-filei "git-diff-files"),/dev/null(t.ex.old-filenär en ny fil läggs till), eller en temporär fil (t.ex.gammal-fili indexet).GIT_EXTERNAL_DIFFbehöver inte oroa sig för att koppla bort den temporära filen — den tas bort närGIT_EXTERNAL_DIFFavslutas.För en sökväg som är osammanslagen anropas
GIT_EXTERNAL_DIFFmed 1 parameter, <sökväg>.För varje sökväg som
GIT_EXTERNAL_DIFFanropas sätts två miljövariabler,GIT_DIFF_PATH_COUNTERochGIT_DIFF_PATH_TOTAL. -
GIT_EXTERNAL_DIFF_TRUST_EXIT_CODE -
Om denna booleska miljövariabel är satt till sant förväntas kommandot
GIT_EXTERNAL_DIFFreturnera avslutningskod 0 om det anser att indatafilerna är lika eller 1 om det anser att de är olika, somdiff(1). Om det är satt till falskt, vilket är standardvärdet, förväntas kommandot returnera avslutningskod 0 oavsett likhet. All annan avslutningskod gör att Git rapporterar ett allvarligt fel. -
GIT_DIFF_PATH_COUNTER -
En 1-baserad räknare som ökas med ett för varje väg.
-
GIT_DIFF_PATH_TOTAL -
Det totala antalet sökvägar.
andra
-
GIT_MERGE_VERBOSITY -
Ett tal som styr mängden utdata som visas av den rekursiva sammanslagnings-strategin. Åsidosätter merge.verbosity. Se git-merge[1]
-
GIT_PAGER -
Denna miljövariabel åsidosätter
$PAGER. Om den är satt till en tom sträng eller till värdet "cat" kommer Git inte att starta en bläddrae. Se även alternativetcore.pageri git-config[1]. -
GIT_PROGRESS_DELAY -
Ett tal som styr hur många sekunders fördröjning sak förflyta innan valfria förloppsindikatorer visas. Standardvärdet är 1.
-
GIT_EDITOR -
Denna miljövariabel åsidosätter
$EDITORoch$VISUAL. Den används av flera Git-kommandon när en redigerare ska startas i interaktivt läge. Se även git-var[1] och alternativetcore.editori git-config[1]. -
GIT_SEQUENCE_EDITOR -
Denna miljövariabel åsidosätter den konfigurerade Git-redigeraren när att-göra-listan för en interaktiv ombasering redigeras. Se även git-rebase[1] och alternativet
sequence.editori git-config[1]. -
GIT_SSH -
GIT_SSH_COMMAND -
Om någon av dessa miljövariabler är satt kommer git fetch och git push att använda det angivna kommandot i stället för ssh när de behöver ansluta till ett fjärrsystem. Kommandoradsparametrarna som skickas till det konfigurerade kommandot bestäms av ssh-varianten. Se alternativet
ssh.varianti git-config[1] för mer information.$GIT_SSH_COMMANDhar företräde framför$GIT_SSHoch tolkas av skalet, vilket tillåter att ytterligare argument inkluderas.$GIT_SSHmåste å andra sidan bara vara sökvägen till ett program (vilket kan vara ett wrapper-shellskript om ytterligare argument behövs).Vanligtvis är det enklare att konfigurera önskade alternativ via din personliga
.ssh/config-fil. Vänligen se din ssh-dokumentation för mer information. -
GIT_SSH_VARIANT -
Om denna miljövariabel är satt, åsidosätter den Gits automatiska identifiering av om
GIT_SSH/GIT_SSH_COMMAND/core.sshCommandrefererar till OpenSSH, plink eller tortoiseplink. Denna variabel åsidosätter konfigurationsinställningenssh.variantsom tjänar samma syfte. -
GIT_SSL_NO_VERIFY -
Att ställa in och exportera denna miljövariabel till valfritt värde anger att Git inte ska verifiera SSL-certifikatet vid hämtning- eller sändnings-överföring över HTTPS.
-
GIT_ATTR_SOURCE -
Ställer in trädstrukturen som gitattributes ska läsas från.
-
GIT_ASKPASS -
Om denna miljövariabel är satt, kommer Git-kommandon som behöver hämta lösenord eller lösenfraser (t.ex. för HTTP- eller IMAP-autentisering) att anropa detta program med en lämplig prompt som kommandoradsargument och läsa lösenordet från dess STDOUT. Se även alternativet
core.askPassi git-config[1]. -
GIT_TERMINAL_PROMPT -
Om denna booleska miljövariabel är satt till falskt, kommer git inte att fråga i terminalen (t.ex. när man frågar efter HTTP-autentisering).
-
GIT_CONFIG_GLOBAL -
GIT_CONFIG_SYSTEM -
Hämta konfigurationen från de givna filerna i stället för från globala eller systemnivåkonfigurationsfiler. Om
GIT_CONFIG_SYSTEMär satt kommer inte systemkonfigurationsfilen som definierades vid byggtillfället (vanligtvis/etc/gitconfig) att läsas. Likaså, omGIT_CONFIG_GLOBALär satt, kommer varken$HOME/.gitconfigeller$XDG_CONFIG_HOME/git/configatt läsas. Kan ställas in på/dev/nullför att hoppa över läsning av konfigurationsfiler för respektive nivå. -
GIT_CONFIG_NOSYSTEM -
Om läsning av inställningar från den systemomfattande
$(prefix)/etc/gitconfig-filen ska hoppas över. Denna booleska miljövariabel kan användas tillsammans med$HOMEoch$XDG_CONFIG_HOMEför att skapa en förutsägbar miljö för ett kräsna skript, eller så kan du ställa in den på true för att tillfälligt undvika att använda ett programfelig/etc/gitconfig-fil medan du väntar på att någon med tillräckliga behörigheter ska åtgärda den. -
GIT_FLUSH -
Om denna booleska miljövariabel är satt till sant, kommer kommandon som git blame (i inkrementellt läge), git rev-list, git log, git check-attr och git check-ignore att tvinga fram en rensning av utdataströmmen efter att varje post har rensats. Om denna variabel är satt till falskt, kommer utdata från dessa kommandon att ske med hjälp av helt buffrad I/O. Om denna miljövariabel inte är satt, kommer Git att välja buffrad eller postorienterad rensning baserat på om stdout verkar omdirigeras till en fil eller inte.
-
GIT_TRACE -
Aktiverar allmänna spårningsmeddelanden, t.ex. aliasexpansion, inbyggd kommandokörning och extern kommandokörning.
Om den här variabeln är satt till "1", "2" eller "sant" (jämförelsen är inte skiftlägeskänslig) kommer spårningsmeddelanden att skrivas ut till stderr.
Om variabeln är satt till ett heltal större än 2 och lägre än 10 (strikt) kommer Git att tolka detta värde som en öppen fildeskriptor och försöka skriva spårningsmeddelandena till denna fildeskriptor.
Alternativt, om variabeln är satt till en absolut sökväg (som börjar med tecknet /), kommer Git att tolka detta som en filsökväg och försöka lägga till spårningsmeddelandena till den.
Att avaktivera variabeln, eller att sätta den till tom, "0" eller "false" (okänsligt för gemener och versaler) inaktiverar spårningsmeddelanden.
-
GIT_TRACE_FSMONITOR -
Aktiverar spårningsmeddelanden för filsystemövervakningsutvidgningen. Se
GIT_TRACEför tillgängliga spårningsutdataalternativ. -
GIT_TRACE_PACK_ACCESS -
Aktiverar spårningsmeddelanden för alla åtkomster till alla paket. För varje åtkomst registreras paketets filnamn och en offset i paketet. Detta kan vara användbart för felsökning av vissa paketrelaterade prestandaproblem. Se
GIT_TRACEför tillgängliga spårningsutdataalternativ. -
GIT_TRACE_PACKET -
Aktiverar spårningsmeddelanden för alla paket som kommer in i eller ut ur ett givet program. Detta kan hjälpa till med felsökning av objektförhandling eller andra protokollproblem. Spårning avstängs vid ett paket som börjar med "PACK" (men se
GIT_TRACE_PACKFILEnedan). SeGIT_TRACEför tillgängliga spårningsutdataalternativ. -
GIT_TRACE_PACKFILE -
Möjliggör spårning av packfiler som skickats eller mottagits av ett givet program. Till skillnad från annan spårningsutdata är denna spårning ordagrant: inga rubriker och ingen citering av binär data. Du vill nästan säkert dirigera till en fil (t.ex.
GIT_TRACE_PACKFILE=/tmp/my.pack) snarare än att visa den i terminalen eller blanda den med annan spårningsutdata.Observera att detta för närvarande endast är implementerat för klientsidan av kloner och hämtningar.
-
GIT_TRACE_PERFORMANCE -
Aktiverar prestandarelaterade spårningsmeddelanden, t.ex. total exekveringstid för varje Git-kommando. Se
GIT_TRACEför tillgängliga spårningsutdataalternativ. -
GIT_TRACE_REFS -
Aktiverar spårningsmeddelanden för operationer på referensdatabasen. Se
GIT_TRACEför tillgängliga spårningsutdataalternativ. -
GIT_TRACE_SETUP -
Aktiverar spårningsmeddelanden som skriver ut .git, arbetsträdet och den aktuella arbetskatalogen efter att Git har slutfört sin installationsfas. Se
GIT_TRACEför tillgängliga spårningsutdataalternativ. -
GIT_TRACE_SHALLOW -
Aktiverar spårningsmeddelanden som kan hjälpa till med felsökning vid hämtning/kloning av ytliga arkiv. Se
GIT_TRACEför tillgängliga spårningsutdataalternativ. -
GIT_TRACE_CURL -
Aktiverar en curl fullständig spårdump av all inkommande och utgående data, inklusive beskrivande information, för git-transportprotokollet. Detta liknar att göra curl
--trace-asciipå kommandoraden. SeGIT_TRACEför tillgängliga spårningsutdataalternativ. -
GIT_TRACE_CURL_NO_DATA -
När en curl-spårning är aktiverad (se
GIT_TRACE_CURLovan), dumpa inte data (det vill säga, dumpa endast informationsrader och rubriker). -
GIT_TRACE2 -
Möjliggör mer detaljerade spårningsmeddelanden från biblioteket "trace2". Utdata från
GIT_TRACE2är ett enkelt textbaserat format för mänsklig läsbarhet.Om den här variabeln är satt till "1", "2" eller "sant" (jämförelsen är inte skiftlägeskänslig) kommer spårningsmeddelanden att skrivas ut till stderr.
Om variabeln är satt till ett heltal större än 2 och lägre än 10 (strikt) kommer Git att tolka detta värde som en öppen fildeskriptor och försöka skriva spårningsmeddelandena till denna fildeskriptor.
Alternativt, om variabeln är satt till en absolut sökväg (som börjar med tecknet /), kommer Git att tolka detta som en filsökväg och försöka lägga till spårningsmeddelandena till den. Om sökvägen redan finns och är en katalog, kommer spårningsmeddelandena att skrivas till filer (en per process) i den katalogen, namngivna enligt den sista komponenten i SID och en valfri räknare (för att undvika filnamnskollisioner).
Om variabeln dessutom är satt till
af_unix:[<socket-typ>:]<absolut-sökväg>, kommer Git att försöka öppna sökvägen som en Unix Domain Socket. Sockettypen kan vara antingenstreamellerdgram.Att avaktivera variabeln, eller att sätta den till tom, "0" eller "false" (okänsligt för gemener och versaler) inaktiverar spårningsmeddelanden.
Se Trace2-dokumentation för fullständig information.
-
GIT_TRACE2_EVENT -
Den här inställningen skriver ett JSON-baserat format som är lämpligt för maskintolkning. Se
GIT_TRACE2för tillgängliga spårningsutdataalternativ och Trace2-dokumentation för fullständig information. -
GIT_TRACE2_PERF -
Utöver de textbaserade meddelanden som finns tillgängliga i
GIT_TRACE2, skriver den här inställningen ett kolumnbaserat format för att förstå kapslade regioner. SeGIT_TRACE2för tillgängliga spårningsutdataalternativ och Trace2-dokumentation för fullständig information. -
GIT_TRACE_REDACT -
Som standard när spårning är aktiverad maskerar Git värdena för cookies, "Authorization:"-headern, "Proxy-Authorization:"-headern och packfile-URI:er. Sätt denna booleska miljövariabel till falsk för att förhindra denna maskering.
-
GIT_NO_REPLACE_OBJECTS -
Att ställa in och exportera denna miljövariabel anger att Git ska ignorera ersättningsreferenser och inte ersätta Git-objekt.
-
GIT_LITERAL_PATHSPECS -
Om du ställer in denna booleska miljövariabel till sant kommer Git att behandla alla sökvägsmönster bokstavligt, snarare än som globmönster. Om du till exempel kör
GIT_LITERAL_PATHSPECS=1gitlog--*.c'kommer det att söka efter incheckningar som berör sökvägen*.c, inte några sökvägar som globen*.cmatchar. Du kanske vill ha detta om du matar Git med bokstavliga sökvägar (t.ex. sökvägar som tidigare givits till dig avgitls-tree,--rawdiff output, etc.). -
GIT_GLOB_PATHSPECS -
Om denna booleska miljövariabel sätts till true kommer Git att behandla alla sökvägsspecs som glob-mönster (även känd som "glob"-uttryck).
-
GIT_NOGLOB_PATHSPECS -
Om denna booleska miljövariabel sätts till true kommer Git att behandla alla sökvägsmönster som literala (även känd som "literal" uttryck).
-
GIT_ICASE_PATHSPECS -
Om denna booleska miljövariabel sätts till sant kommer Git att behandla alla sökvägsmönster som skiftläges-okänsliga.
-
GIT_NO_LAZY_FETCH -
Att sätta denna booleska miljövariabel till sant säger att Git inte ska lat-hämta saknade objekt från promisor-fjärr på begäran.
-
GIT_REFLOG_ACTION -
När en referens uppdateras skapas reflogposter för att hålla reda på orsaken till att referensen uppdaterades (vilket vanligtvis är namnet på det högnivåkommando som uppdaterade referensen), utöver de gamla och nya värdena för referensen. Ett skriptat högnivåkommando kan använda hjälpfunktionen set_reflog_action i
git-sh-setupför att sätta dess namn på denna variabel när den anropas som toppnivåkommando av slutanvändaren, för att registreras i refloggens brödtext. -
GIT_REF_PARANOIA -
Om denna booleska miljövariabel är satt till falskt, ignorera trasiga eller felaktigt namngivna referenser vid iterering över listor med referenser. Normalt kommer Git att försöka inkludera sådana referenser, vilket kan orsaka att vissa operationer misslyckas. Detta är vanligtvis att föredra, eftersom potentiellt destruktiva operationer (t.ex. git-prune[1]) är bättre att avbryta än att ignorera trasiga referenser (och därmed betrakta historiken de pekar på som inte värd att spara). Standardvärdet är
1(d.v.s. var paranoid när det gäller att upptäcka och avbryta alla operationer). Det bör normalt inte behöva ställas in på0, men det kan vara användbart vid försök att rädda data från ett korrupt arkiv. -
GIT_COMMIT_GRAPH_PARANOIA -
När ett incheckningsobjekt laddas från incheckningsgrafen utför Git en existenskontroll av objektet i objektdatabasen. Detta görs för att undvika problem med inaktuella incheckningsgrafer som innehåller referenser till redan borttagna incheckningar, men medför en prestandaförsämring.
Standardvärdet är "false", vilket inaktiverar ovannämnda beteende. Om detta ställs in på "true" aktiveras existenskontrollen så att inaktuella incheckningar aldrig returneras från incheckningsgrafen på bekostnad av prestanda.
-
GIT_ALLOW_PROTOCOL -
Om den är inställd på en kolonseparerad lista med protokoll, beter sig som om
protocol.allowär satt tillnever, och vart och ett av de listade protokollen harprotocol.<namn>.allowsatt tillalways(och åsidosätter eventuell befintlig konfiguration). Se beskrivningen avprotocol.allowi git-config[1] för mer information. -
GIT_PROTOCOL_FROM_USER -
Sätt denna booleska miljövariabel till falskt för att förhindra att protokoll som används av fetch/push/clone och som är konfigurerade till tillståndet
useranvänds. Detta är användbart för att begränsa rekursiv undermodulinitiering från ett opålitligt arkiv eller för program som matar potentiellt opålitliga URL:er till git-kommandon. Se git-config[1] för mer information. -
GIT_PROTOCOL -
Endast för internt bruk. Används vid handskakning av länk-protokollet. Innehåller en lista med nycklar separerad med kolon : och valfria värden <nyckel>[=<värde>]. Förekomst av okända nycklar och värden måste ignoreras.
Observera att servrar kan behöva konfigureras för att tillåta att denna variabel passerar över vissa transporter. Den kommer att spridas automatiskt vid åtkomst till lokala kodförråd (dvs.
file://eller en filsystemssökväg), såväl som övergit://-protokollet. För git-over-http bör det fungera automatiskt i de flesta konfigurationer, men se diskussionen i git-http-backend[1]. För git-over-ssh kan ssh-servern behöva konfigureras för att tillåta klienter att skicka denna variabel (t.ex. genom att användaAcceptEnvGIT_PROTOCOLmed OpenSSH).Denna konfiguration är valfri. Om variabeln inte sprids kommer klienterna att återgå till det ursprungliga protokollet "v0" (men kan gå miste om vissa prestandaförbättringar eller funktioner). Denna variabel påverkar för närvarande endast kloner och hämtningar; den används ännu inte för sändningar ("push") (men kan komma att göra det i framtiden).
-
GIT_OPTIONAL_LOCKS -
Om denna booleska miljövariabel är satt till falskt, kommer Git att slutföra alla begärda operationer utan att utföra några valfria deloperationer som kräver ett lås. Detta kommer till exempel att förhindra att
gitstatusuppdaterar indexet som en bieffekt. Detta är användbart för processer som körs i bakgrunden och som inte vill orsaka låskonflikter med andra operationer på kodförrådet. Standardvärdet är1. -
GIT_REDIRECT_STDIN -
GIT_REDIRECT_STDOUT -
GIT_REDIRECT_STDERR -
Endast Windows: tillåt omdirigering av standardreferenser för indata/utdata/fel till sökvägar som anges av miljövariablerna. Detta är särskilt användbart i flertrådade program där det kanoniska sättet att skicka standardreferenser via
CreateProcess() inte är ett alternativ eftersom det skulle kräva att referenserna markeras som ärvbara (och följaktligen skulle varje startad process ärva dem, vilket möjligen skulle blockera vanliga Git-operationer). Det primära avsedda användningsfallet är att använda namngivna pipes för kommunikation (t.ex. \\.\pipe\my-git-stdin-123).Två specialvärden stöds:
offstänger helt enkelt motsvarande standardreferens, och omGIT_REDIRECT_STDERRär 2>&1 kommer standardfelet att omdirigeras till samma referens som standardutdata. -
GIT_PRINT_SHA1_ELLIPSIS(föråldrad) -
Om satt till
yesskrivs en ellips ut efter ett (förkortat) SHA-1-värde. Detta påverkar indikering av frikopplad HEAD (git-checkout[1]) och rå diffutdata (git-diff[1]). Att skriva ut en ellips i dessa fall anses inte längre tillräckligt, och stödet kommer sannolikt att tas bort inom överskådlig framtid (tillsammans med variabeln). -
GIT_ADVICE -
Om den är satt till
0, inaktivera alla rådmeddelanden. Dessa meddelanden är avsedda att ge tips till mänskliga användare som kan hjälpa dem att ta sig ur problematiska situationer eller dra nytta av nya funktioner. Användare kan inaktivera enskilda meddelanden med hjälp av konfigurationsnycklarnaadvice.*. Dessa meddelanden kan störa verktyg som kör Git-processer, så den här variabeln är tillgänglig för att inaktivera meddelandena. (Det globala alternativet--no-adviceär också tillgängligt, men gamla Git-versioner kan misslyckas när detta alternativ inte förstås. Miljövariabeln kommer att ignoreras av Git-versioner som inte förstår den.)
Diskussion
Mer detaljer om följande finns i kapitlet om Git-begrepp i användarmanualen och gitcore-tutorial[7].
Ett Git-projekt består normalt av en arbetskatalog med en underkatalog ".git" på den översta nivån. .git-katalogen innehåller bland annat en komprimerad objektdatabas som representerar projektets fullständiga historik, en "index"-fil som länkar den historiken till det aktuella innehållet i arbetskatalog och namngivna pekare till den historiken, såsom taggar och grenhuvuden.
Objektdatabasen innehåller objekt av tre huvudtyper: blobs, som innehåller fildata; träd, som pekar på blobs och andra träd för att bygga upp kataloghierarkier; och incheckningar, som var och en refererar till ett enda träd och ett antal förälder incheckningar.
En incheckning, motsvarande vad andra system kallar en "ändringsset" ("changeset") eller "version", representerar ett steg i projektets historik, och varje förälder representerar ett omedelbart föregående steg. Incheckning med mer än en förälder representerar sammanslagningar av oberoende utvecklingslinjer.
Alla objekt namnges med SHA-1-hashen för deras innehåll, normalt skriven som en sträng med 40 hexadecimalsiffror. Sådana namn är globalt unika. Hela historiken som leder fram till en incheckning kan bekräftas genom att signera just den incheckningen. En fjärde objekttyp, taggen, tillhandahålls för detta ändamål.
När objekt först skapas lagras de i individuella filer, men kan för effektivitets skull senare komprimeras till "paketfiler".
Namngivna pekare som kallas refs markerar intressanta punkter i historien. En ref kan innehålla SHA-1-namnet på ett objekt eller namnet på en annan ref (den senare kallas en "symbolisk ref"). Referenser med namn som börjar med refs/head/ innehåller SHA-1-namnet på den senaste incheckningen (eller "huvud") för en gren under utveckling. SHA-1-namn på taggar av intresse lagras under refs/tags/. En symbolisk ref med namnet HEAD innehåller namnet på den gren som för närvarande är utcheckad.
Indexfilen initieras med en lista över alla sökvägar och, för varje sökväg, ett blobobjekt och en uppsättning attribut. Blobobjektet representerar innehållet i filen från och med huvudet på den aktuella grenen. Attributen (senast ändrad tid, storlek, etc.) hämtas från motsvarande fil i arbetsträd. Efterföljande ändringar i arbetsträdet kan hittas genom att jämföra dessa attribut. Indexet kan uppdateras med nytt innehåll, och nya incheckningar kan skapas från innehållet som lagras i indexet.
Indexet kan också lagra flera poster (kallade "steg") för en given sökväg. Dessa steg används för att lagra de olika ej sammanslagna versionerna av en fil när en sammanslagning pågår.
SÄKERHET
Vissa konfigurationsalternativ och hookfiler kan få Git att köra godtyckliga shellkommandon. Eftersom konfiguration och hookar inte kopieras med git clone är det i allmänhet säkert att klona fjärrkodförråd med opålitligt innehåll, inspektera dem med git log och så vidare.
Det är dock inte säkert att köra Git-kommandon i en .git-katalog (eller i arbetsträdet som omger den) när själva .git-katalogen kommer från en opålitlig källa. Kommandon i dess konfiguration och hookar körs på vanligt sätt.
Som standard vägrar Git att köras när kodförrådet ägs av någon annan än användaren som kör kommandot. Se posten för safe.directory i git-config[1]. Även om detta kan hjälpa till att ge skydd i en miljö med flera användare, går det också att få otillförlitliga kodförråd som ägs av den egna användaren (till exempel om en zip-fil eller tarball extraheras från en otillförlitlig källa). I sådana fall måste det otillförlitliga kodförrådet först "saneras".
Om du har en opålitlig .git-katalog bör du först klona den med git clone --no-local för att få en ren kopia. Git begränsar uppsättningen alternativ och krokar som kommer att köras av upload-pack, som hanterar serversidan av en klon eller hämtning, men var medveten om att ytan för attacker mot upload-pack är stor, så detta medför en viss risk. Det säkraste är att hantera kodförrådet som en oprivilegierad användare (antingen via git-daemon[1], ssh eller med hjälp av andra verktyg för att ändra användar-ID). Se diskussionen i avsnittet SÄKERHET i git-upload-pack[1].
YTTERLIGARE DOKUMENTATION
Se referenserna i avsnittet "beskrivning" för att komma igång med Git. Följande är förmodligen mer detaljerat än nödvändigt för en förstagångsanvändare.
kapitlet om Git-koncept i användarmanualen och gitcore-tutorial[7] ger båda introduktioner till den underliggande Git-arkitekturen.
Se gitworkflows[7] för en översikt över rekommenderade arbetsflöden.
Se även howto-dokumenten för några användbara exempel.
Interna detaljer dokumenteras i Git API documentation.
Användare som migrerar från CVS kan också vilja läsa gitcvs-migration[7].
Författare
Git startades av Linus Torvalds och underhålls för närvarande av Junio C Hamano. Många bidrag har kommit från Git-e-postlistan <git@vger.kernel.org>. https://openhub.net/p/git/contributors/summary ger dig en mer komplett lista över bidragsgivare.
Om du har en klon av själva git.git, kan utdata från git-shortlog[1] och git-blame[1] visa dig författarna till specifika delar av projektet.
Rapportera programfel
Rapportera programfel till Git-e-postlistan <git@vger.kernel.org> där utveckling och underhåll huvudsakligen sker. Du behöver inte prenumerera på listan för att skicka ett meddelande dit. Se listarkivet på https://lore.kernel.org/git för tidigare programfelrapporter och andra diskussioner.
Säkerhetsrelevanta frågor bör delas privat till Git Securitys e-postlista <git-security@googlegroups.com>.
GIT
En del av git[1]-sviten