Git auf dem Server

Aus Vokabulabor
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