¿Por qué no usar códigos de salida? Si existe un repositorio git en el directorio actual, a continuación, git branch
y git tag
los comandos de devolver el código de salida de 0; de lo contrario, se devolverá un código de salida distinto de cero. De esta manera, puede determinar si existe un repositorio git o no. Simplemente, puedes ejecutar:
git tag > /dev/null 2>&1 && [ $? -eq 0 ]
Ventaja : Flexibe. Funciona para repositorios desnudos y no desnudos, y en sh, zsh y bash.
Explicación
git tag
: Obtener etiquetas del repositorio para determinar si existe o no.
> /dev/null 2>&1
: Evita imprimir cualquier cosa, incluidas las salidas normales y de error.
[ $? -eq 0 ]
: Verifique si el comando anterior regresó con el código de salida 0 o no. Como sabrá, cada salida distinta de cero significa que algo malo sucedió. $?
recibe el código de salida de la orden anterior, y [
, -eq
y ]
realizar la comparación.
Como ejemplo, puede crear un archivo check-git-repo
con el siguiente contenido, hacerlo ejecutable y ejecutarlo:
#!/bin/sh
if git tag > /dev/null 2>&1 && [ $? -eq 0 ]; then
echo "Repository exists!";
else
echo "No repository here.";
fi