git avec --Git-dir = résultats dans 'pas un dépôt git'

J'ai un script dans l'une de mes applications iOS qui devrait obtenir le hachage de révision git et le mettre dans le numéro de version. Dans ce script, je lance git --git-dir="$PROJECT_DIR " show-s --pretty = format: % h pour cela. Cependant, je reçois le message que le répertoire n'est pas un dépôt git. Si je fais écho au PROJECT_DIR var et que je vais au terminal, les travaux suivants:

cd projectDirPath
git show -s --pretty=format:%h

Ce qui ne fonctionne pas est:

git --git-dir=projectDirPath show -s --pretty=format:%h

Est-ce que je manque quelque chose? La documentation indique que je peux spécifier le chemin d'accès à un git le référentiel avec --Git-dir et le chemin spécifié est évidemment un référentiel git car toutes les commandes git fonctionnent sans problème si je lance un premier cd dans ce chemin. Cependant, si Je ne suis pas dans ce chemin, spécifier --git-dir ne fonctionne pas.

Cordialement, Michael

21
demandé sur Michael Ochs 2012-10-13 14:58:50

2 réponses

Lorsque vous utilisez --git-dir, vous devez pointer vers le dossier .git de votre référentiel. Essayez:

git --git-dir=projectDirPath/.git show -s --pretty=format:%h

J'ai l'habitude d'avoir un problème en me souvenant moi-même. Pour m'aider à me souvenir de ce qu'il faut faire, j'essaie de me rappeler que l'option Demande exactement ce qu'elle veut: le chemin vers le répertoire .git (git-dir).

28
répondu John Szakmeister 2012-10-14 10:40:03

En dehors de --git-dir, Définir également {[2] } peut aider. Pour le script, il est bon d'utiliser des environnements pertinents (c'est plus facile), par exemple

#!/bin/bash -ex
export GIT_WORK_TREE=/path/to/repo
export GIT_DIR=/path/to/repo/.git
git show -s --pretty=format:%h
1
répondu kenorb 2017-05-18 19:45:08