Git auf dem Server: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Celine (Diskussion | Beiträge) |
|||
Zeile 13: | Zeile 13: | ||
mkdir -p $REPO | mkdir -p $REPO | ||
chown -R git:git $REPO | chown -R git:git $REPO | ||
adduser git -uid 271 | |||
sed -i -e 's=/bin/bash=/usr/bin/git-shell=' /etc/passwd | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Version vom 20. Februar 2024, 19:18 Uhr
Links
Zielsetzung
Es soll ein Server so hergerichtet werden, dass dort einfach auf zentrale Git-Repositories zugegregriffen werden kann.
Installation
apt install git
REPO=/home/git/repo
mkdir -p $REPO
chown -R git:git $REPO
adduser git -uid 271
sed -i -e 's=/bin/bash=/usr/bin/git-shell=' /etc/passwd
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