Help us understand the problem. What is going on with this article?

Git でブランチ名の先頭に # (シャープ)をつける際の注意点

More than 3 years have passed since last update.

SourceTree が良さ気にしてくれてたようで、ブランチ名が # (シャープ)で始まるブランチを CUI で操作する際には注意が必要なことを今さら気づきました。

なお、Git 的には、ブランチ名に # を使うことに問題はありません。使用できる文字列は git check-ref-format で確認できるようなので、詳しくは git-check-ref-format(1) Manual Page を見てみてください。

追記 - 2015/1/28

コメントで @_shimada さんにご指摘いただいた通り、単にシェルで # 以降がコメントになってるんですね... 皆さんもシェルで # 使う際には気を付けましょう! 

ブランチの作成

新しくブランチを作成する際、

NG
$ git checkout -b #1_new-branch

これだと -b オプションに値がないよ!って怒られる。正しくは、

OK
$ git checkout -b "#1_new-branch"

" " で囲む必要がある。

ブランチの取得

既に remote に存在するブランチの取得の際にも、やはり

OK
$ git checkout -b "#1_new-branch" origin/#1_test 

しなければならない。

ブランチの削除

もちろんローカルブランチを削除する際も、

OK
$ git branch -b "#1_new-branch"

となるが、リモートブランチの削除の場合は、

OK
$ git push origin :#1_new-branch

で削除できます。

まとめ

「ブランチ名の先頭にチケット番号を付けるぞ!」と意気込んで、ブランチ名を #1_new-branch にしてみたけど、さんざ作業した後にサーバー側で pull しようとしたら見事にハマって、いちいち " " するの面倒なので、今後はブランチ名の先頭に # を付けずに 1_new-branch にする事にした、って話でした。

ちなみに SourceTree とか GitHub の Web UI だと #1_new-branch って名前でブランチを作れますが、Bitbucket の Web UI からだと先頭の # が自動的に削除されて作られます。Bitbucket は各所で先頭の # を削除してくれる仕様な模様。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away