LoginSignup
4
1

More than 5 years have passed since last update.

branchの名前が強制的に大文字になってしまったときの対処法

Last updated at Posted at 2017-01-20

はじめに

タイトルそのままだが、Gitのブランチを新規作成する際、小文字を指定しているのに大文字に変換されてしまう状況に遭遇した。この記事はその時の備忘録。

状況の詳細

というよりも再現方法。下記コマンドを実行する。

git branch HOGE/000
git branch hoge/001
git branch
>  HOGE/000
>  HOGE/001

git branch -D HOGE/000
git branch -D HOGE/001
git branch
>

git branch hoge/001
git branch
>  HOGE/001

コマンドを実行したら「HOGE/000」「HOGE/001」という名前を持つブランチができてしまった。
職場のブランチ命名規則は原則小文字を使用する事になっており、1番目のコマンドは間違って実行したものである。
出来上がった2個のブランチを両方削除しても、どこかにキャッシュが残っているのか、再度小文字を指定してブランチを作成しても大文字のままとなってしまった。
ちなみに「hoge/」と指定しなければ小文字の名前を持つブランチを作成できた。Gitは便利だがたまに深みにはまってしまう事がある。勉強不足。

結論

下記手順を実行する事により、無事「hoge/001」ブランチを作成できるようになった。かなり力技を使ったので、あるべき作業手順ではないと思う。
ちなみに私は力技が嫌いだ。このブログを記述した理由はそのあるべき作業手順を誰かが教えてくれることを期待してというところもある。
いろいろやったので、余計なことまでやっている可能性があるが、全ての作業を記載しておく。

【手順】
1. ./.git/logs/refs/heads/ 以下の「HOGE」フォルダを削除
2. ./.git/refs/heads/ 以下の「HOGE」フォルダを削除
3. .git/refs/remotes/origin/ 以下の「HOGE」フォルダを削除
4. tmpという名前のブランチを作成する
5. tmpブランチでcommitを行う

補足

3の時点で「git branch hoge/001」とコマンドを実行すると、

fatal: Not a valid object name:hoge/001

というエラーが発生し、commitができなくなってしまった。やはり力技はやるべきではない。
どうやら適当なブランチでcommitを実行するといいらしい(なにも理解していない。。。)のでそれを実行。
参考

さらに「hoge/001」ブランチで「git push」ができない(厳密にいうと、commitしているのに「Everything up-to-date」と表示されてしまう)状況になってしまった。これは代わりに「git push --set-upstream origin hoge/001」と実行することで可能となった。
The 力技

補足

OS Xの標準のファイルシステムは大文字小文字を区別しないらしいので、その影響もあるかもしれない。。。

最後に

そんな弊社ですが、もし興味がありましたら、Qiitaの弊社技術者ブログトップページの下の方から連絡いただけましたら嬉しいです。お待ちしています!

4
1
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
4
1