Я думаю, что «имя хранилища» не является четко определенной идеей в git.Возможно, что было бы наиболее полезным, это вернуть whatever.git
в случае пустого хранилища или whatever
в случае хранилища с рабочим деревом.Я проверил, что этот бит оболочки Bourne правильно обрабатывает оба случая из хука post-receive
:
if [ $(git rev-parse --is-bare-repository) = true ]
then
REPOSITORY_BASENAME=$(basename "$PWD")
else
REPOSITORY_BASENAME=$(basename $(readlink -nf "$PWD"/..))
fi
echo REPOSITORY_BASENAME is $REPOSITORY_BASENAME
Обновление: , если вы хотите удалить расширение .git
в случае с пустым хранилищем вы можете добавить строку в первый, чтобы удалить ее:
REPOSITORY_BASENAME=$(basename "$PWD")
REPOSITORY_BASENAME=${REPOSITORY_BASENAME%.git}