git post-receive funktioniert nicht richtig

Lesezeit: 2 Minuten

Ich habe folgendes Problem. Ich habe das ‘post-receive’ auf CD in ein bestimmtes Verzeichnis aktualisiert und dann das Repo hineingezogen, um es wie folgt bereitzustellen:

#!/bin/bash
cd /var/www/site
git pull origin master

Immer wenn ich jedoch auf meinem lokalen Computer ‘git push origin master’ ausführe, erhalte ich Folgendes:

Counting objects: 5, done.
Delta compression using up to 2  threads.
(etc..)
remote: fatal: Not a git repository: '.'

Doch wenn ich manuell zu cd /var/www/site und TU git pull origin master es funktioniert hervorragend.

git post receive funktioniert nicht richtig
Hasintha Janka

Verwenden Sie unset GIT_DIR wie folgt

#!/bin/bash
cd /var/www/site || exit
unset GIT_DIR
git pull origin master
exec git-update-server-info

Weitere Informationen finden Sie unter GIT_DIR Hier.
Git liebt die Umwelt

  • Genial, genau das, was ich brauchte. Können Sie erklären, warum dies getan werden muss?

    – Andy

    28. März 2012 um 11:59 Uhr

  • GIT_DIR ist eine von wenigen Umgebungsvariablen, die Sie für verschiedene Git-Befehle festlegen können. In einem Post-Receive-Hook $GIT_DIR ist immer (?) eingestellt .. wenn du cd anderswo, git pull sieht noch $GIT_DIR einstellen . und erwartet, das Repo darin zu finden ., aber Sie sind umgezogen und es ist nicht da. Wenn Sie es löschen, kehrt Git zu seinem “normalen” Verhalten zurück (Blick in ./.gitan der Stelle, an der Sie cd-ed zu).

    – Torek

    29. März 2012 um 6:15 Uhr

  • Wäre es nicht möglich, einfach einzustellen GIT_DIR zum Verzeichnis sein cdrein? Zurücksetzen scheint überflüssig GIT_DIR und dann getrennt cd in das Arbeitsverzeichnis, wenn dies was ist GIT_DIR wurde für konzipiert. Gibt es einen Grund, warum dies nicht getan wird?

    – Hashim Aziz

    12. September 19 um 18:22 Uhr


Eine weitere Option ist, dass Sie das Arbeitsverzeichnis und das Git-Verzeichnis im Befehl angeben können.

git --work-tree=/home/user/repos/my_app --git-dir=/home/user/repos/my_app/.git <command>

z.B:

git --work-tree=/home/user/repos/my_app --git-dir=/home/user/repos/my_app/.git status

.

775990cookie-checkgit post-receive funktioniert nicht richtig

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy