Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to Bash Script Git Local Branch Check?

Seeking a solution to achieve the following:

  • If a branch is not current created on local create
  • If it already exists prompt user and move to next statement

So far I've got it working but not quite there. My issue really is the latter, but I want to take a moment to rethink the whole thing and get some feedback on how to write this more soundly.

The variable existing_branch provides SHA and the refs/heads/branchName when a branch is there otherwise git takes hold and provides the expected 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
}
like image 750
rhodee Avatar asked Oct 15 '25 04:10

rhodee


1 Answers

You can avoid prompting if the branch already exists, and shorten the script a little, like this:

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
}
like image 114
Joe Avatar answered Oct 17 '25 17:10

Joe



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!