Git Server lokal im Netz als File Share

Wenn man keinen richtigen Server genehmigt bekommt, erlaubt Git den folgenden Notbehelf, indem ein Netzwerkverzeichnis für Git als Repository- Server eingerichtet wird.

Das geht folgendermassen 1)https://www.ectropyarts.com/use-git-with-just-a-shared-network-drive-no-git-server-required/:

Auf dem Netzwerkdrive wird ein „Bare“- Repository angelegt:

mkdir Repository.git
cd Repository.git
git init --bare

das lokale Arbeitsverzeichnis wird ganz normal als git repository aktiviert

git init
git add .
git commit -m "Initial commit."

Im Repository wird die Datei hooks/post-receive angegelegt, damit jeder Commit eine Spiegelung der aktuellen Daten in ein anderes Verzeichnis auslöst, wo dann die Allgemeinheit in Ermangelung eines richtigen Servers die Daten zumindest lesen kann.

#!/bin/sh echo "Executing post-receive script. (Located in the --bare repo's hooks folder.)" # Instructions: # Put this file into your .git/hooks folder and set as executable #- for Windows (attrib +x pre-commit) #- for ubuntu (chmod +x pre-commit) DEPLOYDIR=/k/Konstruktion/Neue_Projekt_Struktur-READ_ONLY/Projekt/Modelljahr/EL # The place to deploy to. BRANCH="main" read oldrev newrev ref # Only auto-deploy (checkout) the $BRANCH specified above. if [[ $ref = refs/heads/$BRANCH ]]; then echo "Branch $ref received. Deploying ${BRANCH} branch to \"$DEPLOYDIR\" folder." git --work-tree=$DEPLOYDIR checkout -f git log -n 10 --name-status > $DEPLOYDIR/top_commit.txt echo "Done." else echo "Branch $ref received. Doing nothing: only the ${BRANCH} branch may be auto-deployed to the \"$DEPLOYDIR\" folder." fi

Das Ziel- Verzeichnis muss auch existieren!

mkdir -p /k/Konstruktion/Neue_Projekt_Struktur-READ_ONLY/Projekt/Modelljahr/EL

Das Netzwerklaufwerk als remote einrichten, dabei darauf achten, dass man nicht aus Versehen im (Unix-) Git Bash Fenster versucht, einen Windows- Share Drive einzutragen, sondern an dieser Stelle dann wirklich auch den Betriebssystem- Nativen Git CLient verwenden

git remote add origin K:\Konstruktion\Neue_Projekt_Struktur-DO_NOT_TOUCH-GIT_INTERNAL\Projekt\Modelljahr\EL.git

und wenn das alles fertig ist, kann man den ersten Datentransfer wagen.

git push --set-upstream origin main

ab jetzt kann man lokal ganz normal arbeiten und findet den aktuellen Repository- Stand im Neue_Projekt_Struktur-READ_ONLY.. Verzeichnis als Lese- Kopie.