-
1. Kom igÄng
- 1.1 Om versionshantering
- 1.2 En kort historik av Git
- 1.3 Vad Àr Git?
- 1.4 Kommandoraden
- 1.5 Installera Git
- 1.6 AnvÀnda Git för första gÄngen
- 1.7 FÄ hjÀlp
- 1.8 Sammanfattning
-
2. Grunder i Git
- 2.1 Skaffa ett Git-förvar
- 2.2 Spara Àndringar till förvaret
- 2.3 Visa historiken
- 2.4 Ă ngra saker
- 2.5 Jobba med fjÀrrförvar
- 2.6 Taggning
- 2.7 Git alias
- 2.8 Sammanfattning
-
3. Git förgreningar
-
4. Git pÄ servern
- 4.1 Protokollen
- 4.2 Skaffa Git pÄ en server
- 4.3 Generera din publika SSH-nyckel
- 4.4 Konvigurera servern
- 4.5 Git Daemonen
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Alternativ tillhandahÄllna av tredje part
- 4.10 Sammanfattning
-
5. Distribuerade Git
-
6. GitHub
-
7. Git Tools
- 7.1 Revision Selection
- 7.2 Interactive Staging
- 7.3 Stashing and Cleaning
- 7.4 Signing Your Work
- 7.5 Searching
- 7.6 Rewriting History
- 7.7 Reset Demystified
- 7.8 Advanced Merging
- 7.9 Rerere
- 7.10 Debugging with Git
- 7.11 Submodules
- 7.12 Bundling
- 7.13 Replace
- 7.14 Credential Storage
- 7.15 Summary
-
8. Customizing Git
- 8.1 Git Configuration
- 8.2 Git Attributes
- 8.3 Git Hooks
- 8.4 An Example Git-Enforced Policy
- 8.5 Summary
-
9. Git and Other Systems
- 9.1 Git as a Client
- 9.2 Migrating to Git
- 9.3 Summary
-
10. Git Internals
- 10.1 Plumbing and Porcelain
- 10.2 Git Objects
- 10.3 Git References
- 10.4 Packfiles
- 10.5 The Refspec
- 10.6 Transfer Protocols
- 10.7 Maintenance and Data Recovery
- 10.8 Environment Variables
- 10.9 Summary
-
A1. Bilaga A: Git in Other Environments
- A1.1 Graphical Interfaces
- A1.2 Git in Visual Studio
- A1.3 Git in Eclipse
- A1.4 Git in Bash
- A1.5 Git in Zsh
- A1.6 Git in PowerShell
- A1.7 Summary
-
A2. Bilaga B: Embedding Git in your Applications
- A2.1 Command-line Git
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
A3. Bilaga C: Git Commands
- A3.1 Setup and Config
- A3.2 Getting and Creating Projects
- A3.3 Basic Snapshotting
- A3.4 Branching and Merging
- A3.5 Sharing and Updating Projects
- A3.6 Inspection and Comparison
- A3.7 Debugging
- A3.8 Patching
- A3.9 Email
- A3.10 External Systems
- A3.11 Administration
- A3.12 Plumbing Commands
4.5 Git pÄ servern - Git Daemonen
Git Daemonen
Nu skall vi konfigurera en daemon som tillhandahĂ„ller repon över âGitâ protokollet. Det Ă€r vanligt för snabb icke-autentiserad Ă„tkomst till din Gitdata. Kom ihĂ„g att, eftersom detta inte Ă€r en autentiserad tjĂ€nst, kommer allt du skickar över protokollet att vara publikt inom dess nĂ€tverk.
Om du kör detta pÄ en server utanför din brandvÀgg, skall det bara anvÀndas för projekt som Àr publikt synliga för hela vÀrlden. Om servern du kör pÄ ligger innanför din brandvÀgg kan du anvÀnda den för projekt som ett stort antal mÀnniskor eller datorer (integrations- eller byggservrar) bara har lÀsrÀttigheter till och du inte vill lÀgga till en separat SSH-nyckel för varje.
Oavsett vilket Àr Gitprotokollet relativt lÀtt att konfigurera. Du behöver i praktiken bara köra detta kommando som en daemonprocess:
$ git daemon --reuseaddr --base-path=/srv/git/ /srv/git/
Flaggan --reuseaddr
tillÄter att servern startar om utan att vÀnta pÄ att gamla anslutningar dör ut, medan flaggan --base-path
tillÄter folk att klona projekt utan att specificera hela sökvÀgen. SökvÀgen i slutet talar om för Gitdaemonen var den skall leta efter repon för att exportera.
Om du kör en brandvÀgg, kommer du behöva öppna upp port 9418 pÄ den maskin du konfigurerar detta pÄ.
Du kan daemonisera processen pÄ olika sÀtt, beroende pÄ ditt operativsystem.
Eftersom systemd
Àr det vanligatste init-systemet pÄ moderna Linuxdistributioner kan du anvÀnda den för ÀndamÄlet.
LĂ€gg helt enkelt en fil i /etc/systemd/system/git-daemon.service
med följande innehÄll:
[Unit]
Description=Start Git Daemon
[Service]
ExecStart=/usr/bin/git daemon --reuseaddr --base-path=/srv/git/ /srv/git/
Restart=always
RestartSec=500ms
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=git-daemon
User=git
Group=git
[Install]
WantedBy=multi-user.target
Du kanske har noterat att Gitdaemonen startas med git
som bÄde grupp och anvÀndare.
Modifiera dem för att passa dina behov och sÀkerstÀll att anvÀndaren och gruppen existerar pÄ systemet.
Kontrollera ocksÄ att GitbinÀren Àr tillgÀnglig pÄ /usr/bin/git
och Àndra sökvÀgen om nödvÀndigt.
Slutligen behöver du köra systemctl enable git-daemon
för att automatiskt starta tjÀnsten vid uppstart, och starta och stoppa tjÀnsten med systemctl start git-daemon
respektive systemctl stop git-daemon
.
Upp till och med LTS 14.04, anvÀnde Ubuntu enhetskonfiguration av uppstartstjÀnster. DÀrför, pÄ Ubuntu 14.04 och tidigare kan du anvÀnda ett uppstartsskript. SÄ dÀrför, i följande fil
/etc/init/local-git-daemon.conf
lÀgger du följande skript:
start on startup
stop on shutdown
exec /usr/bin/git daemon \
--user=git --group=git \
--reuseaddr \
--base-path=/srv/git/ \
/srv/git/
respawn
Av sĂ€kerhetsskĂ€l Ă€r det starkt rekommenderat att denna daemon körs som en anvĂ€ndare med enbart lĂ€srĂ€ttigheter till dina reponâââdu kan lĂ€tt göra detta genom att skapa en ny anvĂ€ndare git-ro och köra daemonen som den.
För enkelhets skull kommer vi köra den som samma git-anvÀndare som git-shell
kör som.
NÀr du startar om din maskin kommer din Gitdaemon starta automatiskt och Äterstartas om den stoppas. För att starta den utan att behöva starta om kan du köra:
$ initctl start local-git-daemon
PÄ andra system kanske du vill anvÀnda xinetd
, ett skript i ditt sysvinit
-system eller nĂ„got annatâââsĂ„ lĂ€nge som kommandot Ă€r daemoniserat och övervakas pĂ„ nĂ„got sĂ€tt.
Nu behöver du tala om för Git vilka repon som tillÄts icke-autentiserad Gitserverbaserad Ätkomst till.
Du kan göra detta för varje repo genom att skapa en fil som heter git-daemon-export-ok
.
$ cd /path/to/project.git
$ touch git-daemon-export-ok
NÀrvaron av den filen talar om för Git att det Àr OK att tillhandahÄlla det projektet utan autentisering.