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 не работает.
С уважением,
Майкл
Ответы
Ответ 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