Git с - git -dir = выводит 'не репозиторий git - программирование
Подтвердить что ты не робот

Git с - git -dir = выводит 'не репозиторий git

У меня есть script в одном из моих приложений iOS, который должен получить хэш-версию git и поместить его в номер версии. В этом script я запускаю git - git -dir = "$ PROJECT_DIR" show -s -pretty = format:% h для этого. Однако я получаю сообщение о том, что каталог не является хранилищем git. Если я повторю PROJECT_DIR var и перейду к терминалу, выполните следующие действия:

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

Что не работает:

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

Я что-то упустил? В документации указано, что я могу указать путь к репозиторию git с - git -dir, и указанный путь, очевидно, является репозиторием git, так как все команды git работают без каких-либо проблем, если я сначала cd в этот путь. Однако, если я не в этом пути, указание - git -dir не работает.

С уважением, Майкл

4b9b3361

Ответ 1

При использовании --git-dir вам нужно указать папку .git вашего репозитория. Попробуйте:

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

Я использую проблему, которая сама запоминает это. Чтобы помочь мне запомнить, что делать, я пытаюсь вспомнить, что опция запрашивает именно то, что она хочет: путь к директории .git (git -dir).

Ответ 2

Помимо --git-dir, может также помочь установка --work-tree. Для script полезно использовать соответствующие среды (это проще), например.

#!/bin/bash -ex
export GIT_WORK_TREE=/path/to/repo
export GIT_DIR=/path/to/repo/.git
git show -s --pretty=format:%h