3

次のことを達成するための解決策を探しています。

  • ローカル作成でブランチが現在作成されていない場合
  • すでに存在する場合は、ユーザーにプロンプ​​トを表示し、次のステートメントに移動します

これまでのところ、私はそれを機能させていますが、完全には機能していません。私の問題は本当に後者ですが、全体を再考し、これをより健全に書く方法についていくつかのフィードバックを得たいと思います。

変数existing_branchは、ブランチが存在する場合はSHArefs / heads / branchNameを提供します。それ以外の場合は、gitが保持され、期待されるものを提供します。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
}
4

1 に答える 1

6

ブランチが既に存在する場合はプロンプトを表示せず、次のようにスクリプトを少し短くすることができます。

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
}
于 2013-01-19T11:59:28.120 に答える