I have a script in one of my iOS apps that should get the git revision hash and put it in the version number. In this script I run git --git-dir="$PROJECT_DIR" show -s --pretty=format:%h for that. However, I get the message that the directory isn't a git repository. If I echo the PROJECT_DIR var and go to the terminal the following works:
cd projectDirPath
git show -s --pretty=format:%h
What doesn't work is:
git --git-dir=projectDirPath show -s --pretty=format:%h
Am I missing something? The documentation states, that I can specify the path to a git repository with --git-dir and the specified path obviously is a git repository as all the git commands work without any problem if I first cd into that path. However if I am not in this path, specifing --git-dir doesn't work.
When using --git-dir
, you need to point at the .git
folder of your repository. Try:
git --git-dir=projectDirPath/.git show -s --pretty=format:%h
The doc on --git-dir
says that:
--git-dir=
Set the path to the repository (".git" directory). This can also be controlled by setting the GIT_DIR environment variable. It can be an absolute path or relative path to current working directory.
I use to have an issue remembering this myself. To help me remember what to do, I try to remember that the option is asking for exactly what it wants: the path to the .git
directory (git-dir).