6 Stimmen

Post-Receive-Hook unter Windows - GIT_WORK_DIR: keine solche Datei oder Verzeichnis

Ich versuche, meinen Post-Receive-Hook auf Git (Windows) einzurichten. Hier ist das Skript:

#!/bin/sh
echo "post-receive hook"
GIT_WORK_TREE=/d/test git checkout -f

Wenn ich git push auf meinem lokalen Repository ausführe, sehe ich diese Echo-Meldung, das Skript wird richtig aufgerufen.

Aber die Kasse läuft nicht! Es gibt einen Fehler in der Konsolenansicht:

remote: fatal: Could not switch to '/d': No such file or directory

Aber wenn ich diesen Befehl in Git Bash eingebe, funktioniert er!

2voto

VonC Punkte 1117238

Aus den Kommentaren:

GIT_WORK_TREE=/Volumes/D/test git checkout -f

funktioniert.

Allerdings ist die OP RobertM Kommentare:

Was ist, wenn ich von einem anderen Computer aus pushen will? Ich habe einen anderen Klon auf meinem Windows-Rechner, auf dem dieser Pfad nicht verfügbar ist

Das ist ein anderes Problem und kann zum Beispiel mit einer Laufwerksbenennungskonvention gelöst werden: Man kann sich entscheiden, den Pfad des entfernten Repos zu assoziieren ( d:\test oder einen anderen Pfad) zu einem bestimmten Laufwerksbuchstaben ( X: zum Beispiel), mit dem Windows subst Befehl .

0voto

Ich habe mysysgit auf einem Webserver laufen, auf den ich von meiner lokalen Workstation aus pushe, und ich verwende das folgende Post-Receive-Skript:

#!/bin/sh
git --work-tree=/cygdrive/d/www --git-dir=/cygdrive/d/CodeRepositories/tempRepo.git checkout -f

Was mich anfangs verwirrt hat, war, dass die Datei nicht im UNIX-Format war, Sie können sie mit Notepad++ ändern. Beachten Sie, dass ich cygwin verwende, um den Push über SSH durchzuführen, so dass Ihre Verzeichnisnamen möglicherweise geändert werden müssen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X