Blog Digitalgesellschaft Verwaltungsbetrieb Textarchiv Textarchiv Walter Kirk (✝) Impressum
Git-Repository auf lokalem Server
Veröffentlicht: 2024-02-27, 12:00 Uhr aktualisiert: 20240527, 13:30 Uhr
Details zu den Tipps | |
Schwierigkeitsgrad | Mittel, Systemkenntnisse vorausgesetzt |
Root Rechte | Ja |
Anforderungen | Linux Tterminal |
Kategorie | Systemanwendungen |
OS Kompatbilität | Debian-basiert, Ubuntu, Windows |
Lesezeit | 6 Min. |
1 Vorbemerkung2 Programm 2.1 Client2.2 Server 3 Git anwenden3.1 Klonen3.2 Bash-Script3.3 Anleitung4 FazitHinweis
Will man seine Daten nicht den Online-Plattformen GitHub, GitLab oder anderen anvertrauen, so kann die Versionsverwaltung Git auch auf einem lokalen Server eingerichtet werden.
Das Hilfsprogramm git steht für Linux, MacOS und Windows frei zur Verfügung. Unter debian-basierten Linux-Distributionen wird es aus den Paketquellen installiert:
xxxxxxxxxx
test@geraet: $ sudo apt install git git-gui
Hiermit wird das Programm und ein GUI installiert.
Wer git mit allen Zusatztools einrichten möchte, installiert git-all:
xxxxxxxxxx
test@geraet: $ sudo apt install git-all
Es gibt viele Installationshinweise mit teilweise sehr unterschiedlichen Vorgehensweisen. Ist bereits ein (Home-)Server vorhanden, so ist die Beschreibung von Benjamin Herbert Git Repository per SSH auf Server diejenige, die ohne Umwege das Ziel erreicht.
Schritt 1: git auf dem Server installieren
xxxxxxxxxx
test@geraet: $ sudo apt install git
Schritt 2: Gruppe gitusers anlegen
xxxxxxxxxx
test@: $ groupadd gitusers
Schritt 3: Nutzer zur Gruppe hinzufügen
xxxxxxxxxx
test@server: $ usermod -a -G gitusers nutzername
Schritt 4: Verzeichnis anlegen
xxxxxxxxxx
test@server: $ mkdir ~/repositories/test
Schritt 5: Berechtigung für gitusers setzen
xxxxxxxxxx
test@server: $ chgrp gitusers ~/repositores/test
test@server: $ chmod g+ws ~/repositories/test
Schritt 6: Repository initiieren
xxxxxxxxxx
cd ~/repositories/test
git init --bare --shared=group
Damit wird /test als Speicherort und nicht als Arbeitsverzeichnis gekennzeichnet.
xxxxxxxxxx
git clone git+ssh://Nutzer@IP/repositories/test
Vorausgesetzt wird eine vorhandene SSH-Installation.
Möchte man alle Kommandos wie pull, add, commit und push in einer Folge verarbeiten, bietet sich die Lösung mit einem Bash-Script an. Das Script von Rahul Sharma ist für alle Repositories geeignet:
xxxxxxxxxx
!/bin/bash
# by Rahul Sharma
# https://dev.to/forcetrekker/single-shell-script-command-to-stage-all-files-commit-and-push- # to-current-branch-3d0h
# get current branch and push
current_branch=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p')
# git pull
git pull origin "$current_branch"
echo "====pull changes from '$current_branch' branch"
# get the argument message
message="$1"
# If no commit message is passed, use current date time in the commit message
if [[ -z "${message// }" ]]
then
message=$(date '+%Y-%m-%d %H:%M:%S')
fi
# stage all changes
git add .
echo "====staged all git files"
# add commit
git commit -m "$message"
echo "====added the commit with message: '$message'"
# git push
git push origin "$current_branch"
echo "====pushed changes to '$current_branch' branch"
Diese Abfolge mit einem Text-Editor als zum Beispiel git-push.sh speichern. Ausführung: git-push.sh 'Commit message' bzw. ohne 'Commit message'
Die Hinweise von Stefan Frings unter Git Anleitung machen vertraut mit den wichtigsten Eigenschaften von git.
Das mächtige Werkzeug Git in der täglichen Praxis einzusetzen, kann die Arbeit mit Versionen der eigenen Daten als Einzelperson und in einem Team wesentlich erleichtern. Will man darüber hinaus seine Daten nicht auf Online-Plattformen speichern, so ist das mit git auf dem eigenen Server möglich.
Datenaustausch mit GitHub via SSH.
Kirk, Wolfgang: Good Practice - 1: Heimserver einrichten unter Linux urn: urn:nbn🇩🇪hbz:061:3-79192
Kirk, Wolfgang: Good Practice - 21: Den eigenen Web-Server einrichten (Linux) urn: urn:nbn🇩🇪hbz:061:3-521833