Dans un git crochet est le répertoire de travail actuel de la garantie d'être dans le dépôt git?
Expérimentalement, il semble que git crochets se faire avec le répertoire en cours à la racine du dépôt. Cependant, je ne vois aucune garantie à ce sujet dans le git de la documentation. Dois-je compter sur le répertoire de travail en cours pour localiser le dépôt git, ou est-il un meilleur moyen de travailler sur le dépôt git associés avec le crochet?
- Pas sûr de savoir comment beaucoup de qui sont liés. Sur une Gentoo stable boîte avec Git 2.7.3 (r1) git crochets ne sont pas seulement exécuté dans
.git
maisgit reset --hard
crée le répertoire de travail de la structure à l'intérieur de la.git
répertoire qui, à mon avis est une mauvaise chose à faire!
Vous devez vous connecter pour publier un commentaire.
Il est basé sur la valeur de la variable d'environnement
GIT_DIR
. Il est situé à la racine du référentiel lorsque le crochet commence à courir. De nombreux crochets, en particulier celles qui font tirer à partir d'un autre repo, unset ( et reset) cette variable d'environnement en tant que de besoin..git/hooks/post-commit: 1: .git/hooks/post-commit: post-commit_push_gitweb.sh: not found
L'actuel réponses semblent être dépassées. Comme de 2.9.0, les docs de la manière suivante:
https://git-scm.com/docs/githooks/2.9.0
Vous pouvez utiliser la variable d'environnement
$GIT_DIR
.$GIT_DIR
de points à la.git
répertoire.$GIT_DIR/..
pointe à la racine du référentiel?$GIT_DIR/..
. Qui va briser lors de la mise en pension est un nu repo. Un nu-pensions n'a pas de répertoire de travail donc pas de "racine du dépôt". Il va aussi casser quand .git est un lien à la place.