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.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.
See gittutorial[7] to get started, then see giteveryday[7] for a useful minimum set of commands. The Git User’s Manual has a more in-depth introduction.
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> istä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>=<mijövar>
-
Precis som med
-c<namn>=<värde>, ge konfigurationsvariabeln <namn> ett värde, där <mijö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, istället måste själva miljövariabeln sättas till den tomma strängen. Det är ett fel om <mijövar> inte finns i miljön. <mijövar> får inte innehålla ett likhetstecken för att undvika tvetydighet då <namn> innehåller ett.Detta är användbart i fall där du vill skicka tillfälliga konfigurationsalternativ till git, men gör det på operativsystem där andra processer kanske kan läsa din kommandorad (t.ex.
/proc/self/cmdline), men inte din miljö (t.ex./proc/self/environ). Det beteendet är standard på Linux, men kanske inte finns på ditt system.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 arkivet (".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 förvar-upptäckten som försöker hitta en katalog med underkatalogen ".git" (vilket är hur förvaret och den översta nivån i arbetsträdet upptäcks), och talar om för Git att du är på den översta nivån i arbetsträdet. Om du inte är på den översta nivån i arbetskatalogen, bör du tala om för Git var den översta nivån i arbetskatalogen 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>
-
Set the path to the working tree. It can be an absolute path or a path relative to the current working directory. This can also be controlled by setting the GIT_WORK_TREE environment variable and the core.worktree configuration variable (see core.worktree in git-config[1] for a more detailed discussion).
- --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 förvaret som ett rent bart förvar. 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ägsspec bokstavligt (dvs. ingen globbing, ingen pathspec-magi). Detta motsvarar att sätta miljövariabeln
GIT_LITERAL_PATHSPECStill1. - --glob-pathspecs
-
Lägg till "glob"-magi till alla sökvägsspec. Detta motsvarar att sätta miljövariabeln
GIT_GLOB_PATHSPECStill1. Globbing kan inaktiveras på individuella sökvägsspecar med sökvägsspec-magin ":(literal)" - --noglob-pathspecs
-
Lägg till "literal" magi till alla sökvägsspecar. Detta motsvarar att sätta miljövariabeln
GIT_NOGLOB_PATHSPECStill1. Att aktivera globbing på individuella pathspecs kan göras med pathspec magic ":(glob)" - --icase-pathspecs
-
Lägg till "icase"-magi till alla sökvägsspecar. 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> istället för arbetsträdet. Se gitattributes[5]. Detta motsvarar att ställa in miljövariabeln
GIT_ATTR_SOURCE.
GIT-KOMMANDON
Vi delar in Git i högnivåkommandon ("porslinskommandon") och lågnivå- ("rörmokeri-") kommandon".
Högnivåkommandon (porslin)
Vi delar upp porslinskommandona i huvudkommandon och några hjälpprogram.
Main porcelain commands
|
Warning
|
Missing See original version for this content. |
Tilläggskommandon
Manipulatörer:
|
Warning
|
Missing See original version for this content. |
Interrogators:
|
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 arbetskatalog från antingen indexet eller en annan incheckning. Det här kommandot uppdaterar inte din gren. 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 din branch, flytta topen för att lägga till eller ta bort incheckningar från grenen. Denna operation ändrar inchecknings-historiken.
gitresetkan också användas för att återställa indexet, överlappande medgitrestore.
Lågnivåkommandon (rörmokeri)
Även om Git inkluderar sitt eget porslinslager, är dess lågnivåkommandon tillräckliga för att stödja utvecklingen av alternativa porslinstyper. Utvecklare av sådana porslinstyper 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 avsedda att vara mycket mer stabilt än kommandon på porslinsnivå, eftersom dessa kommandon främst är för skriptbaserad användning. Gränssnittet till porslinskommandon 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 förvar, indexet och arbetskatalog), kommandon som förhör och jämför objekt, och kommandon som flyttar objekt och referenser mellan arkiv.
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 arbetskatalogen.
Synkronisera förvar
|
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 förvar, kommandon och filer
Denna dokumentation diskuterar gränssnitt för förvar 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 förvar 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 = "[email protected]"
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 inchecknings-objektnamn.
- <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>.
- <inchecknings-aktig>
-
Indikerar ett inchecknings- eller tag-objektnamn. Ett kommando som tar ett <inchecknings-aktig>-argument vill i slutändan utföra en åtgärd på ett <inchecknings>-objekt men avreferenserar automatiskt <tag>-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
Various Git commands pay attention to environment variables and change their behavior. The environment variables marked as "Boolean" take their values the same way as Boolean valued configuration variables, i.e., "true", "yes", "on" and positive numbers are taken as "yes", while "false", "no", "off", and "0" are taken as "no".
Här är variablerna:
Git-förvar
Dessa miljövariabler gäller för "alla" centrala Git-kommandon. Obs: det är värt att notera att de kan användas/åsidosättas av SCMS som sitter ovanför Git, så var försiktig om du använder ett främmande framända.
-
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 istället för standardvariabeln.gitför basen av förvaret. 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 -
Detta 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 förvar-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 du lägga till en tom post 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"-förvar-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 istä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 förvar att ställas in på detta värde. Detta värde ignoreras vid kloning och inställningen för fjärrförvar 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 standard-referens bakända formatet för nya förvar 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 incheckning- 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 incheckning- 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 incheckning- 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 inchecknings-identiteten när incheckning- 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 incheckning- eller taggobjekt, eller när man skriver refloggar. Åsidosätter konfigurationsinställningarna
user.emailochcommitter.email. -
GIT_COMMITTER_DATE -
Datumet som används för incheckare-identiteten när inchecknings- eller taggobjekt skapas, eller när reflogs 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 sammanslagings-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 editor 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-editorn 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 istä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 autodetektering 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 istället 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 en buggig/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 -
Enables trace messages printing the .git, working tree and current working directory after Git has completed its setup phase. See
GIT_TRACEfor available trace output options. -
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 aktiverat, redigerar 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 redigering.
-
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ägsspecifikationer bokstavligt, snarare än som globmönster. Om du till exempel kör
GIT_LITERAL_PATHSPECS=1gitlog--*.c'kommer det att söka efter commits 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"-magi).
-
GIT_NOGLOB_PATHSPECS -
Om denna booleska miljövariabel sätts till true kommer Git att behandla alla sökvägsspecs som literala (även känd som "literal" magi).
-
GIT_ICASE_PATHSPECS -
Om denna booleska miljövariabel sätts till sant kommer Git att behandla alla sökvägsspecifikationer 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 Porcelain-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 när du itererar ö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 i 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(dvs. var paranoid när det gäller att upptäcka och avbryta alla operationer). Du bör normalt inte behöva ställa in detta till0, men det kan vara användbart när du försöker rädda data från ett korrupt arkiv. -
GIT_COMMIT_GRAPH_PARANOIA -
När ett incheckning-objekt laddas från inchecknings-graph utför Git en existenskontroll på objektet i objektdatabasen. Detta görs för att undvika problem med inaktuella inchecknings-grafer som innehåller referenser till redan borttagna incheckningar, men det kommer med en prestandaförsämring.
Standardvärdet är "false", vilket inaktiverar ovannämnda beteende. Om du ställer in detta på "true" aktiveras existenskontrollen så att inaktuella incheckninger aldrig returneras från inchecknings-grafen 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 förvar (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).This configuration is optional. If the variable is not propagated, then clients will fall back to the original "v0" protocol (but may miss out on some performance improvements or features). This variable currently only affects clones and fetches; it is not yet used for pushes (but may be in the future).
-
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å arkivet. 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 applikationer 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
ja, skriv ut en ellips efter ett (förkortat) SHA-1-värde. Detta påverkar indikationer på fristående HEADs (git-checkout[1]) och den råa diff-utdatan (git-diff[1]). Att skriva ut en ellips i de nämnda fallen anses inte längre vara tillräckligt och stödet för den 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.)
Discussion
More detail on the following is available from the Git concepts chapter of the user-manual and gitcore-tutorial[7].
A Git project normally consists of a working directory with a ".git" subdirectory at the top level. The .git directory contains, among other things, a compressed object database representing the complete history of the project, an "index" file which links that history to the current contents of the working tree, and named pointers into that history such as tags and branch heads.
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 incheckning (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 arbetskatalog. Efterföljande ändringar i arbetskatalogen 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 osammanslagna versionerna av en fil när en sammanslagning pågår.
SÄKERHET
Vissa konfigurationsalternativ och krok-filer kan få Git att köra godtyckliga shell-kommandon. Eftersom konfiguration och hooks inte kopieras med git clone är det generellt säkert att klona fjärrarkiv med otillförlitligt 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 det arbetskatalog som omger den) när själva .git-katalogen kommer från en opålitlig källa. Kommandona i dess konfiguration och krokar exekveras på vanligt sätt.
Som standard, vägrar Git att köras när förvar ä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 skydda dig i en miljö med flera användare, observera att du också kan förvärva otillförlitliga förvar som ägs av dig (till exempel om du extraherar en zip-fil eller tarball från en otillförlitlig källa). I sådana fall måste du först "sanera" det otillförlitliga förvar.
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 förvaret 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.
The internals are documented in the 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 <[email protected]>. 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 buggar
Rapportera buggar till Git-e-postlistan <[email protected]> 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 buggrapporter och andra diskussioner.
Säkerhetsrelevanta frågor bör delas privat till Git Securitys e-postlista <[email protected]>.
GIT
En del av git[1]-sviten