Git auf dem Server
Zur Navigation springen
Zur Suche springen
Links
Zielsetzung
Es soll ein Server so hergerichtet werden, dass dort einfach auf zentrale Git-Repositories zugegregriffen werden kann.
Installation
adduser --system git --quiet --disabled-password --shell /usr/bin/git-shell
addgroup --system git --quiet
apt install git
REPO=/home/git/repo
mkdir -p $REPO
chown -R git:git $REPO
mkdir /home/git/.ssh
chmod 0700 /home/git/.ssh
touch /home/git/.ssh/authorized_keys
chmod 0600 /home/git/.ssh/authorized_keys
chown -R git:git /home/git/.ssh
Konfiguration
- Wir verwenden hier das SSH-Protokoll zum Zugriff: Benutzer haben Lese- und Schreibzugriff auf die Repositories.
- Eine Alternative zum anonymen Lesezugriff ist das Git-Protokoll: https://git-scm.com/book/de/v2/Git-auf-dem-Server-Die-Protokolle
- Jeder Benutzer, der einen Zugang zu den Repositories haben darf, muss seinen Öffentlichen Schlüssel schicken.
- Dieser öffentliche Schlüssel wird in die Datei /home/git/.ssh/authorized_keys eingetragen:
ssh-rsa AAAAB3Nza...x88AEZIj adam@pluto ssh-rsa BDEa273AX...KrkwlWeF berta@missisouri
Einrichten eines Repositories
- Es soll ein Repository für Projekt taskx eingerichtet werden
- Auf dem Server:
PROJ=taskx
REPO=/home/git/repo/$PROJ.git
mkdir -p $REPO
cd $REPO
git init --bare
chown -R git:git -R .
# Für das Git-Protokoll:
touch git-daemon-export-ok
# für gitweb:
echo "Short project's description" >description
chown -R git:git -R .
sudo -u git git symbolic-ref HEAD refs/heads/main
Verbindung zu entferntem Repository
Auf dem lokalen Rechner:
PROJ=taskx
DOMAIN=git.hamatoma.de
git remote add origin ssh://git@$DOMAIN:/home/git/repo/$PROJ.git
git push --set-upstream origin main
oder
git push --set-upstream origin master