13
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

名前に「&」が入っているGitブランチを操作する際の落とし穴

Last updated at Posted at 2015-08-12

「git checkout -b branch-name origin/branch-name」でリモートブランチをチェックアウトしようとしたら、ブランチ名に「&」が入っていて上手くいかず、5分くらい悩んだ。
あまり無いケースではあると思いますが、一応解決策を書いておくことにしました。

事象

リモートに「sugar&salt」みたいなブランチがあるとします。それをターミナル操作でチェックアウトしようとすると上手くいきません。どうなるかというと、以下のような感じになります。

$ git checkout -b sugar&salt origin/sugar&salt

[1] 8210
[2] 8211
-bash: salt: command not found
-bash: salt: command not found

「&」が入っているせいで、&以降のブランチ名がbashコマンドと見なされてしまっているようですね。
ちなみに上のコマンドを実行すると、リモートブランチの参照に失敗し、現在いるブランチから「sugar」というブランチが切られる結果になります。

対策

ブランチ名をダブルクォーテーションで囲む

具体的には以下のようにすれば良い。

$ git checkout -b "sugar&salt" "origin/sugar&salt"

こうすることで、「&」がbashコマンドの一部と見なされずに済むので、ターミナル上でも操作が上手くいきます。

所感

ブランチ名に記号を混ぜるのはやめた方が良いということを知れてよかったです。朝の貴重な時間が・・。

13
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?