-
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.