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.50.1 → 2.53.0 no changes
-
2.50.0
2025-06-16
- 2.44.1 → 2.49.1 no changes
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 no changes
-
2.43.0
2023-11-20
- 2.37.3 → 2.42.4 no changes
-
2.37.2
2022-08-11
- 2.22.1 → 2.37.1 no changes
-
2.22.0
2019-06-07
- 2.17.1 → 2.21.4 no changes
-
2.17.0
2018-04-02
- 2.10.5 → 2.16.6 no changes
-
2.9.5
2017-07-30
- 2.2.3 → 2.8.6 no changes
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
SYNOPSIS
gitdaemon[--verbose] [--syslog] [--export-all] [--timeout=<n>] [--init-timeout=<n>] [--max-connections=<n>] [--strict-paths] [--base-path=<sökväg>] [--base-path-relaxed] [--user-path|--user-path=<sökväg>] [--interpolated-path=<pathtemplate>] [--reuseaddr] [--detach] [--pid-file=<sökväg>] [--enable=<tjänst>] [--disable=<tjänst>] [--allow-override=<tjänst>] [--forbid-override=<tjänst>] [--access-hook=<sökväg>] [--[no-]informative-errors] [--inetd| [--listen=<host-or-ipaddr>] [--port=<n>] [--user=<user> [--group=<group>]]] [--log-destination=(stderr|syslog|none)] [<katalog>…]
BESKRIVNING
En riktigt enkel TCP Git-daemon som normalt lyssnar på port "DEFAULT_GIT_PORT" även känd som 9418. Den väntar på en anslutning som ber om en tjänst och kommer att hantera den tjänsten om den är aktiverad.
Den verifierar att katalogen har den magiska filen "git-daemon-export-ok", och den kommer att vägra exportera alla Git-kataloger som inte uttryckligen har markerats för export på detta sätt (såvida inte parametern --export-all anges). Om du skickar vissa katalogsökvägar som git daemon-argument, är erbjudandena begränsade till arkiv inom dessa kataloger.
Som standard, är endast tjänsten upload-pack aktiverad, vilken betjänar klienterna git fetch-pack och git ls-remote, vilka anropas från git fetch, git pull och git clone.
Detta är idealiskt för skrivskyddade uppdateringar, dvs. att dra in ("pulla") från Git-kodförråd.
Ett upload-archive finns också för att hantera git archive.
ALTERNATIV
-
--strict-paths -
Matcha sökvägar exakt (dvs. tillåt inte "/foo/kodförråd" när den verkliga sökvägen är "/foo/kodförråd.git" eller "/foo/kodförråd/.git") och använd inte användarrelativa sökvägar.
gitdaemonkommer att vägra starta när det här alternativet är aktiverat och inga katalogargument anges. -
--base-path=<sökväg> -
Ombilda alla sökvägsförfrågningar till relativa till den givna sökvägen. Detta är en sorts "Git root" - om du kör
gitdaemonmed--base-path=/srv/gitpåexample.com, så om du senare försöker hämta frångit://example.com/hello.git, kommergitdaemonatt tolka sökvägen som/srv/git/hello.git. -
--base-path-relaxed -
Om
--base-pathär aktiverat och sökningen efter kodförråd misslyckas, kommergitdaemonmed det här alternativet att försöka söka utan att lägga till bassökvägen som prefix. Detta är användbart för att byta till användning av--base-path, samtidigt som de gamla sökvägarna fortfarande tillåts. -
--interpolated-path=<sökvägsmall> -
För att stödja virtuell värdskap (hosting) kan en interpolerad sökvägsmall användas för att dynamiskt konstruera alternativa sökvägar. Mallen stöder
%Hför målvärdnamnet som tillhandahålls av klienten men konverterat till enbart gemener,%CHför det kanoniska värdnamnet,%IPför serverns IP-adress,%Pför portnumret och%Dför den absoluta sökvägen till det namngivna arkivet. Efter interpolering valideras sökvägen mot kataloglistan. -
--export-all -
Tillåt dra in ("pulla") från alla kataloger som ser ut som Git-kodförråd (har underkatalogerna objects och refs), även om de inte har filen
git-daemon-export-ok. -
--inetd -
Låt servern köras som en inetd-tjänst. Innebär
--syslog(kan åsidosättas med--log-destination=). Inkompatibel med alternativen--detach,--port,--listen,--useroch--group. -
--listen=<värd-eller-ipadress> -
Lyssna på en specifik IP-adress eller ett specifikt värdnamn. IP-adresser kan vara antingen en IPv4-adress eller en IPv6-adress om det stöds. Om IPv6 inte stöds, då stöds inte heller
--listen=<värdnamn> och--listenmåste ges en IPv4-adress. Kan anges mer än en gång. Inkompatibel med--inetd-alternativet. -
--port=<n> -
Lyssna på en alternativ port. Inkompatibel med
--inetd-alternativet. -
--init-timeout=<n> -
Timeout (i sekunder) mellan det ögonblick då anslutningen upprättas och klientbegäran tas emot (vanligtvis ett ganska lågt värde, eftersom det i princip ska vara omedelbart).
-
--timeout=<n> -
Timeout (i sekunder) för specifika klientunderförfrågningar. Detta inkluderar den tid det tar för servern att bearbeta underförfrågan och den tid som spenderas på att vänta på nästa klients begäran.
-
--max-connections=<n> -
Maximalt antal samtidiga klienter, standardinställningen är 32. Ställ in det på noll för obegränsat.
-
--syslog -
Förkortning för
--log-destination=syslog. -
--log-destination=<destination> -
Skicka loggmeddelanden till den angivna destinationen. Observera att det här alternativet inte innebär
--verbose, därför loggas som standard endast feltillstånd. <destination> måste vara en av:Standarddestinationen är
syslogom--inetdeller--detachanges, annarsstderr. -
--user-path -
--user-path=<sökväg> -
Tillåt att ~användarnotation används i förfrågningar. När en begäran till git://host/~alice/foo anges utan parameter, tas den som en begäran om åtkomst till foo-arkivet i användarens
alicehemkatalog. Om--user-path=<sökväg> anges tas samma begäran som en begäran om åtkomst till <sökväg>/foo-arkivet i användarensalicehemkatalog. -
--verbose -
Logga detaljer om inkommande anslutningar och begärda filer.
-
--reuseaddr -
Använd
SO_REUSEADDRnär du binder lyssningssockeln. Detta gör att servern kan startas om utan att vänta på att gamla anslutningar ska få timeout. -
--detach -
Koppla från skalet. Innebär
--syslog. -
--pid-file=<fil> -
Spara process-id:t i <fil>. Ignoreras när daemonen körs under
--inetd. -
--user=<anvädare> -
--group=<grupp> -
Ändra daemonens uid och gid innan den går in i serviceloopen. När endast
--useranges utan--groupanvänds användarens primära grupp-ID. Värdena för alternativet ges tillgetpwnam(3) ochgetgrnam(3) och numeriska ID:n stöds inte.Att ange dessa alternativ är ett fel när det används med
--inetd; använd funktionen i inet daemon för att uppnå samma sak innangitdaemonstartas om det behövs.Liksom många program som byter användar-id:t återställer inte daemonen miljövariabler som
HOMEnär den kör git-program, t.ex.upload-packochreceive-pack. När du använder det här alternativet kan du också vilja ställa in och exporteraHOMEså att den pekar på hemkatalogen för <anvädare> innan du startar daemonen, och se till att alla Git-konfigurationsfiler i den katalogen är läsbara av <anvädare>. -
--enable=<tjänst> -
--disable=<tjänst> -
Aktivera/inaktivera tjänsten webbplatsomfattande som standard. Observera att en inaktiverad webbplatsomfattande tjänst fortfarande kan aktiveras per kodförråd om den är markerad som åsidosättbar och kodförrådet aktiverar tjänsten med ett konfigurationsobjekt.
-
--allow-override=<tjänst> -
--forbid-override=<tjänst> -
Tillåt/förbjud åsidosättning av webbplatsövergripande standardkonfiguration med konfiguration per kodförråd. Som standard kan alla tjänster åsidosättas.
-
--informative-errors -
--no-informative-errors -
När informativa fel är aktiverade rapporterar git-daemon mer utförliga fel till klienten, och skiljer på villkor som "inget sådant kodförråd" från "kodförrådet exporterades inte". Detta är mer bekvämt för klienter, men kan läcka information om förekomsten av oexporterade kodförråd. När informativa fel inte är aktiverade rapporterar alla fel "åtkomst nekad" till klienten. Standardinställningen är
--no-informative-errors. -
--access-hook=<sökväg> -
Varje gång en klient ansluter, kör först ett externt kommando som anges av <sökväg> med tjänstnamn (t.ex. "upload-pack"), sökväg till kodförrådet, värdnamn (
%H), kanoniskt värdnamn (%CH), IP-adress (%IP) och TCP-port (%P) som kommandoradsargument. Det externa kommandot kan besluta att avböja tjänsten genom att avsluta med en status som inte är noll (eller att tillåta den genom att avsluta med en status som noll). Det kan också titta på miljövariablerna $REMOTE_ADDR och$REMOTE_PORTför att lära sig mer om begäraren när det fattar detta beslut.Det externa kommandot kan valfritt skriva en enda rad till sin standardutdata som skickas till begäranden som ett felmeddelande när tjänsten avböjs.
- <katalog>
-
De återstående argumenten ger en lista över kataloger. Om några kataloger anges, kommer
git-daemon-processen endast att hantera en begärd katalog om den finns i en av dessa kataloger. Om--strict-pathsanges, måste den begärda katalogen matcha en av dessa kataloger exakt.
TJÄNSTER
Dessa tjänster kan globalt aktiveras/inaktiveras med hjälp av kommandoradsalternativen för detta kommando. Om mer detaljerad kontroll önskas (t.ex. för att tillåta att git archive endast körs mot i ett fåtal utvalda kodförråd som daemonen hanterar), kan konfigurationsfilen per kodförråd användas för att aktivera eller inaktivera dem.
- upload-pack
-
Detta betjänar klienterna
gitfetch-packochgitls-remote. Det är aktiverat som standard, men ett arkiv kan inaktivera det genom att ställa in konfigurationsalternativetdaemon.uploadpacktillfalse. - upload-archive
-
Detta hanterar
gitarchive--remote. Det är inaktiverat som standard, men ett arkiv kan aktivera det genom att ställa in konfigurationsalternativetdaemon.uploadarchtilltrue. - receive-pack
-
Detta betjänar
gitsend-pack-klienter och tillåter anonym sänding (push). Det är inaktiverat som standard eftersom det inte finns någon no-autentisering i protokollet (med andra ord, vem som helst kan pusha vad som helst in i arkivet, inklusive borttagning av referenser). Detta är enbart avsett för en stängd LAN-miljö där alla är vänliga. Den här tjänsten kan aktiveras genom att ställa in konfigurationsalternativetdaemon.receivepacktilltrue.
EXEMPEL
- Vi antar följande i /etc/services
-
$ grep 9418 /etc/services git 9418/tcp # Git Version Control System
- git daemon som inetd-server
-
För att konfigurera git daemon som en inetd-tjänst som hanterar alla kodförråd inom
/pub/fooeller/pub/bar, placera en post som följande i/etc/inetdpå en rad:git stream tcp nowait nobody /usr/bin/git git daemon --inetd --verbose --export-all /pub/foo /pub/bar
- git daemon som inetd-server för virtuella värdar
-
För att konfigurera git daemon som en inetd-tjänst som hanterar kodförråd för olika virtuella värdar, www.example.com och www.example.org, placera en post som följande i /etc/inetd på en rad:
git stream tcp nowait nobody /usr/bin/git git daemon --inetd --verbose --export-all --interpolated-path=/pub/%H%D /pub/www.example.org/software /pub/www.example.com/software /software
I det här exemplet, kommer rotkatalogen
/pubatt innehålla en underkatalog för varje virtuellt värdnamn som stöds. Dessutom annonserar båda värdarna kodförråden helt enkelt som git://www.example.com/software/kodförråd.git. För klienter före 1.4.0 kan en symlänk från/softwaretill lämpligt standard-kodförråd också skapas. - git daemon som vanlig daemon för virtuella värdar
-
För att konfigurera
gitdaemonsom en vanlig, icke-inetd-tjänst som hanterar kodförråd för flera virtuella värdar baserat på deras IP-adresser, starta daemonen så här:git daemon --verbose --export-all --interpolated-path=/pub/%IP/%D /pub/192.168.1.200/software /pub/10.10.220.23/software
I det här exemplet, kommer rotkatalogen
/pubatt innehålla en underkatalog för varje virtuell värds IP-adress som stöds. Arkiv kan dock fortfarande nås via värdnamn, förutsatt att de motsvarar dessa IP-adresser. - selektivt aktivera/inaktivera tjänster per kodförråd
-
För att aktivera
gitarchive--remoteoch inaktiveragitfetchmot ett kodförråd, ha följande i konfigurationsfilen i kodförrådet (det vill säga filen config bredvidHEAD, refs och objects).[daemon] uploadpack = false uploadarch = true
MILJÖ
git daemon kommer att sätta REMOTE_ADDR till IP-adressen för klienten som anslöt till den, om IP-adressen är tillgänglig. REMOTE_ADDR kommer att vara tillgänglig i miljön med krokar som anropas när tjänster utförs.
GIT
En del av git[1]-sviten