SourceTree が良さ気にしてくれてたようで、ブランチ名が # (シャープ)で始まるブランチを CUI で操作する際には注意が必要なことを今さら気づきました。
なお、Git 的には、ブランチ名に # を使うことに問題はありません。使用できる文字列は git check-ref-format
で確認できるようなので、詳しくは git-check-ref-format(1) Manual Page を見てみてください。
追記 - 2015/1/28
コメントで @_shimada さんにご指摘いただいた通り、単にシェルで #
以降がコメントになってるんですね... 皆さんもシェルで #
使う際には気を付けましょう!
ブランチの作成
新しくブランチを作成する際、
$ git checkout -b #1_new-branch
これだと -b
オプションに値がないよ!って怒られる。正しくは、
$ git checkout -b "#1_new-branch"
と " "
で囲む必要がある。
ブランチの取得
既に remote に存在するブランチの取得の際にも、やはり
$ git checkout -b "#1_new-branch" origin/#1_test
しなければならない。
ブランチの削除
もちろんローカルブランチを削除する際も、
$ git branch -b "#1_new-branch"
となるが、リモートブランチの削除の場合は、
$ git push origin :#1_new-branch
で削除できます。
まとめ
「ブランチ名の先頭にチケット番号を付けるぞ!」と意気込んで、ブランチ名を #1_new-branch
にしてみたけど、さんざ作業した後にサーバー側で pull しようとしたら見事にハマって、いちいち " "
するの面倒なので、今後はブランチ名の先頭に # を付けずに 1_new-branch
にする事にした、って話でした。
ちなみに SourceTree とか GitHub の Web UI だと #1_new-branch
って名前でブランチを作れますが、Bitbucket の Web UI からだと先頭の # が自動的に削除されて作られます。Bitbucket は各所で先頭の # を削除してくれる仕様な模様。