¿Cómo Bash Script Git Local Branch Check?

Buscando una solución para lograr lo siguiente:

  • Si una twig no es actual creada en crear local
  • Si ya existe, solicita al usuario y pasa a la siguiente statement

Hasta ahora lo tengo funcionando pero no del todo allí. Mi problema es este último, pero quiero tomarme un momento para repensarlo todo y get algunos comentarios sobre cómo escribir esto más profundamente.

La variable existing_branch proporciona SHA y el refs / heads / branchName cuando hay una twig, de lo contrario, git toma el control y proporciona la fatalidad esperada fatal:

 check_for_branch() { args=("$@") echo `$branch${args[0]}` existing_branch=$? } create_branch() { current="git rev-parse --abbrev-ref HEAD" branch="git show-ref --verify refs/heads/" args=("$@") branch_present=$(check_for_branch ${args[0]}) echo $branch_present read -p "Do you really want to create branch $1 " ans case $ans in y | Y | yes | YES | Yes) if [ ! -z branch_present ]; then echo "Branch already exists" else `git branch ${args[0]}` echo "Created ${args[0]} branch" fi ;; n | N | no | NO | No) echo "exiting" ;; *) echo "Enter something I can work with y or n." ;; esac } 

Puede evitar preguntar si la sucursal ya existe y acortar un poco la secuencia de commands, como esta:

 create_branch() { branch="${1:?Provide a branch name}" if git show-ref --verify --quiet "refs/heads/$branch"; then echo >&2 "Branch '$branch' already exists." else read -p "Do you really want to create branch $1 " ans ... fi }