2017-09-09 2 views
-1

Je fais de mon mieux pour configurer mon flux de travail git de sorte que je puisse pousser les commits de ma machine de développement locale à un repo nu sur mon serveur et avoir un crochet de post-réception checkout le contenu à mon site en direct distant, mais j'obtiens cette erreur:fatal: Pas un dépôt git: '/ git_repos/repo' sur le post-receive hook

fatal: Pas un référentiel git: '/ git_repos/repo' sur le post-recevoir le crochet.

Les mesures que j'ai prises sont:

serveur distant (mysite.com, user = "user")

  1. git sur mon initialisation --bare serveur distant sous «/git_repos/mise en pension
  2. ajouter un 'fichier de post-recevoir' sous les crochets sous-dossier contenant: #!/bin/sh git --work-tree =/publique --git-dir =/git_repos/caisse repo -f

  3. assign les droits d'exécution pour l'utilisateur post-réception - chmod + x après réception

serveur local

  1. git ajouter à distance LiveSite [email protected]: git_repos/repo

  2. et valider les modifications .. git pousser LiveSite

Le script shell s'exécute mais échoue avec la même erreur à chaque fois. Pour référence, les dossiers distants "git_repos" et "public" se trouvent dans le répertoire personnel de l'utilisateur "utilisateur".

Est-ce que quelqu'un sait ce qui pourrait causer l'échec?

Veuillez noter qu'en ce qui me concerne, ce problème est séparé de ma requête précédente car je n'ai pas été en mesure de pousser le repo sur mon serveur distant du tout, mais cela est maintenant résolu. Peut-être vaut-il la peine de mentionner que j'ai essayé le hook après réception avec et sans barre oblique (c'est-à-dire git-dir = git_repos/repo) et le message d'erreur est le même.

+0

double possible de [Fatal: '/git\_repos/tools.git' ne semble pas être un dépôt git] (https: // stackoverflow .com/questions/46132539/fatal-git-repos-outils-git-ne-pas-apparaître-être-un-git-dépôt) – phd

Répondre

0

Il est principalement causé le chemin/git_repos/repo ne peut pas être trouvé ou ce n'est pas un repo git.

Dans le crochet après réception du serveur distant, vous devez spécifier les chemins complets de git_repos/repo et public pour --git-dir et --work-tree options.

Assumer le chemin complet pour git_repos/repo est /home/user/git_repos/repo, et le chemin complet pour public est /home/user/public. Ensuite, vous devez changer le crochet post-recevoir comme:

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