🦁

Gitのブランチ名にシングルクォーテーションを入れたらコマンドが面倒くさくなった

に公開

Gitのブランチ名にシングルクォーテーション(')を含めてしまうと、Bashでそのブランチ名を扱う際に思わぬトラブルに遭遇します。この記事では、実際に遭遇した問題とその対処法についてまとめます。

事の発端

普段通りに新しいブランチを作成しようとした際、誤ってシングルクォーテーションを含めたブランチ名を作ってしまいました。

git checkout -b feature/it's-new

この時点では特に問題なくブランチが作成されます。しかし、後からこのブランチ名をコマンドで使おうとすると、シングルクォーテーションが邪魔をして思うように動きません。

具体的な困りごと

シングルクォーテーションで囲ってコマンドを実行しようとすると、Bashがクォートの対応をうまく解釈できず、エラーになります。

git checkout 'feature/it's-new'
# → bash: unexpected EOF while looking for matching `''
# → bash: syntax error: unexpected end of file

対処法

  1. ブランチ名にシングルクォーテーションを使わない
  • そもそもブランチ名にシングルクォーテーションやスペースなどの特殊文字は使わないのがベストです。
  1. どうしても使ってしまった場合は?
  • ダブルクォーテーションで囲む、もしくはエスケープする必要があります。
git checkout "feature/it's-new"
# または
git checkout feature/it\'s-new

まとめ

Gitのブランチ名にはシングルクォーテーションを使わないようにしましょう。もし使ってしまった場合は、Bashで扱う際にダブルクォーテーションやエスケープを活用して対処しましょう。

GitHubで編集を提案

Discussion