2009-12-13 3 views
2

J'essaye de configurer un repo git sur mon serveur en direct pour mettre à jour automatiquement un sous-domaine sur la réception. En utilisant ce guide http://toroid.org/ams/git-website-howto.Git post-réception crochet agit différemment à shell

crochets/post-recevoir

#!/bin/sh 
pwd 
git checkout -f 

config

[core] 
     repositoryformatversion = 0 
     filemode = true 
     bare = false 
     worktree = /var/www/vhosts/domain.com/subdomains/staging/httpdocs 
[receive] 
     denycurrentbranch = ignore 

Si je lance git votre commande -f en /var/git/domain.com.git/ il fonctionne, le sous-domaine est mis à jour. Cependant, quand je pousse-je obtenir la sortie suivante:

/var/git/domain.com.git 
fatal: This operation must be run in a work tree 

Je ne sais pas pourquoi cela fonctionne dans la coquille, mais pas dans le crochet. Quelqu'un peut-il m'éclairer?

Répondre

0

Les autorisations sur le workbread ne permettent pas de lire ce qui provoque l'erreur fatal: This operation must be run in a work tree.

1

ajouter cd /var/www/vhosts/domain.com/subdomains/staging/httpdocs à votre crochet de post-réception.

+0

Ceci ne fonctionne pas dans le crochet ou dans la coquille. Parce que /var/www/vhosts/domain.com/subdomains/staging/httpdocs n'a pas de dossier .git. Il a cependant lancé une erreur d'autorisation refusée, car mon utilisateur ssh n'a aucune autorisation dans ce dossier. Ce que je soupçonne est la cause de mes problèmes. – Jake

Questions connexes