Por que não usar códigos de saída? Se um repositório git existir no diretório atual, os comandos git branch
e git tag
retornarão o código de saída 0; caso contrário, um código de saída diferente de zero será retornado. Dessa forma, você pode determinar se um repositório git existe ou não. Simplesmente, você pode executar:
git tag > /dev/null 2>&1 && [ $? -eq 0 ]
Vantagem : Flexibe. Ele funciona para repositórios vazios e não vazios e em sh, zsh e bash.
Explicação
git tag
: Obtendo tags do repositório para determinar se existe ou não.
> /dev/null 2>&1
: Impedindo a impressão de qualquer coisa, incluindo saídas normais e de erro.
[ $? -eq 0 ]
: Verifique se o comando anterior retornou com o código de saída 0 ou não. Como você deve saber, toda saída diferente de zero significa que algo de ruim aconteceu. $?
recebe o código de saída do comando anterior, e [
, -eq
e ]
realizar a comparação.
Como exemplo, você pode criar um arquivo nomeado check-git-repo
com o seguinte conteúdo, torná-lo executável e executá-lo:
#!/bin/sh
if git tag > /dev/null 2>&1 && [ $? -eq 0 ]; then
echo "Repository exists!";
else
echo "No repository here.";
fi