/ / bash script para verificar se o ramo git atual = “x” - git, bash, shell, sh

bash script para verificar se o atual git branch = "x" - git, bash, shell, sh

Eu sou muito ruim em scripts de shell (com bash), estou procurando uma maneira de verifique se o ramo git atual é "x" e anule o script se não for "x".

    #!/usr/bin/env bash

CURRENT_BRANCH="$(git branch)"
if [[ "$CURRENT_BRANCH" -ne "master" ]]; then
echo "Aborting script because you are not on the master branch."
return;      # I need to abort here!
fi

echo "foo"

mas isso não está certo

Respostas:

22 para resposta № 1

Usar git rev-parse --abbrev-ref HEAD para obter o nome da ramificação atual.

Depois, basta comparar valores no seu script:

BRANCH=$(git rev-parse --abbrev-ref HEAD)
if [[ "$BRANCH" != "x" ]]; then
echo "Aborting script";
exit 1;
fi

echo "Do stuff";

4 para resposta № 2

Uma opção seria analisar a saída do git branch comando:

BRANCH=$(git branch | sed -nr "s/*s(.*)/1/p")

if [ -z $BRANCH ] || [ $BRANCH != "master" ]; then
exit 1
fi

Mas uma variante que usa comandos internos git para obter apenas o nome do ramo ativo, conforme sugerido por @knittl, é menos propensa a erros e preferível


3 para resposta № 3

Você quer usar exit ao invés de return.