2017-09-09 4 views
-1

Ich versuche mein Bestes, um meinen Git-Workflow so einzurichten, dass ich Commits von meinem lokalen Dev-Computer zu einem bloßen Repo auf meinem Server pushen kann und habe einen post-receive hook check den Inhalt zu meiner Remote-Live-Site, aber ich bekomme diesen Fehler:fatal: Kein git-Repository: '/ git_repos/repo' auf Post-Receive-Hook

fatal: Kein git-Repository: '/ git_repos/repo' auf Post-Empfang Haken.

Die Schritte, die ich getroffen habe, sind:

Remote Server (mysite.com, user = "user")

  1. git init --bare auf meinem Remote-Server unter ‚/ git_repos/Repo‘
  2. fügen Sie eine 'post erhalten' Datei unter dem Unterordner Haken enthält: #!/bin/sh git --work-tree =/public --git-dir =/git_repos/repo Kasse -f

  3. assign ausführen Berechtigungen für Benutzer für Post erhalten - chmod + x

Local Server

  1. git remote hinzufügen Livesite [email protected] Post erhalten: git_repos/repo

  2. begehen Änderungen und .. git push Livesite

Das Shell-Skript wird ausgeführt, schlägt jedoch jedes Mal mit demselben Fehler fehl. Als Referenz befinden sich die Remote-Ordner "git_repos" und "public" im Home-Verzeichnis für den Benutzer "user".

Weiß jemand, was dazu führen könnte, dass dies fehlschlägt?

Bitte beachten Sie, dass dieses Problem getrennt von meiner vorherigen Abfrage ist, da ich den Repo überhaupt nicht auf meinen Remote-Server übertragen konnte. Dies wurde jedoch behoben. Vielleicht ist es erwähnenswert, dass ich den post-receive-Hook mit und ohne den führenden Schrägstrich (d. H. git-dir = git_repos/repo) versucht habe und die Fehlermeldung die gleiche ist.

+0

Mögliche Duplikat [Fatal: '/git\_repos/tools.git' nicht erscheint ein Git-Repository sein] (https: // Stackoverflow .com/questions/46132539/fatal-git-repos-tools-git-wird nicht angezeigt, um ein git-repository zu sein – phd

Antwort

0

Es ist hauptsächlich verursacht der Pfad/git_repos/Repo kann nicht gefunden werden, oder es ist kein Git Repo.

Im post erhalten Haken von Remote-Server, sollten Sie die vollständigen Pfade von git_repos/repo und public für --git-dir und --work-tree Optionen angeben.

Angenommen, der vollständige Pfad für git_repos/repo ist /home/user/git_repos/repo und der vollständige Pfad für public ist /home/user/public. Dann sollten Sie die ändern Post erhalten Haken als:

#!/bin/sh 
git --work-tree=/home/user/public --git-dir=/home/user/git_repos/repo checkout -f 
Verwandte Themen