🦁
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
対処法
- ブランチ名にシングルクォーテーションを使わない
- そもそもブランチ名にシングルクォーテーションやスペースなどの特殊文字は使わないのがベストです。
- どうしても使ってしまった場合は?
- ダブルクォーテーションで囲む、もしくはエスケープする必要があります。
git checkout "feature/it's-new"
# または
git checkout feature/it\'s-new
まとめ
Gitのブランチ名にはシングルクォーテーションを使わないようにしましょう。もし使ってしまった場合は、Bashで扱う際にダブルクォーテーションやエスケープを活用して対処しましょう。
Discussion