Для элемента 1 используйте git rev-parse --is-inside-work-tree
.Это:
- печатает
false
, если вы находитесь в репозитории Git, но не в его рабочем дереве (т. Е. Находитесь в пустом хранилище); - печатает
true
, есливы находитесь в Git-репозитории с рабочим деревом;или - ошибок (выводит
fatal: not a git repository (or any parent up to...
в stderr), если вы не в репозитории Git.
Обратите внимание, однако, что если вы находитесь в репозитории Git, чье рабочее деревоGit напечатает true
здесь.Если вы передаете --git-dir=
и путь к действительному хранилищу, Git всегда думает, что вы находитесь в рабочем дереве (потому что вы есть).Статус выхода этой команды равен нулю, если она напечатала true
или false
, и ненулевой, если она вызвала ошибку.
Для пункта 2 - «проверка» хранилища - это полностью зависит от того, что выозначает «подтвердить».