Bitbucket/GitHubのリポジトリ名に日本語を使ってはいけない理由
Gitを使ったGUIツールで日本語対応が進んでおり、BitbucketやGitHubでもリポジトリ名に日本語を入力できることに気付きました。
日本語でリポジトリ名を設定したらどうなるのか試したところ、リポジトリのURLから日本語は削除されるまたはハイフンに置換されるということが分かったのでまとめておきます。
どういう問題が起きるのか:Bitbucket編
今回はBitbucketとGitHubを使って実験しました。
まずはBitbucketの場合です。
- 案件_abc
というリポジトリ名をつけたとします。
Bitbucketのページで「クローン」を選ぶと、小さなウィンドウでクローン用のURLが出てきます。
ウィンドウに表示されているURLの末尾にご注目ください。
「案件」という日本語が消えています。
つまり、このままクローンすると「_abc」というディレクトリ名が作成されてしまいます。これではディレクトリ名が分かりにくいですね。
日本語オンリーのリポジトリ名だとどうなるか
- 案件
というリポジトリを作ってみました。
ハイフン2つになってしまいました。
漢字1文字につき、ハイフン1つに変換されてしまうようです。
さらに「天晴」という名前のリポジトリを作ろうとしたところ、作成前に
You already have a repository with this name.
(既に同名のリポジトリが存在します。)というエラーで弾かれ、作ることすらできませんでした。
「天晴」という漢字2文字がハイフン2つに変換され、先程作った「案件」リポジトリと同名であると判定されているようです。
日本語でリポジトリ名を設定すると、同じ文字数のリポジトリは二度と使えないということが分かりました。
GitHubでもほぼ同様の結果に
GitHubのWebページからも同様に日本語のリポジトリを作ってみました。
こちらがそのスクリーンショットです。
上から「神戸ITフェスティバル」、「案件」と入力しました。
Bitbucketでは日本語一文字に対して「-」(ハイフン)一つでしたが、GitHubでは日本語のブロックごとに「-」(ハイフン)一つでまとめられてしまうようです。
Bitbucketの時と同様、「天晴」という日本語二文字のリポジトリを作ろうとしたところ、やはり作成の段階で弾かれました。
Name already exists on this account
というエラーです。
「案件」という日本語で作ったハイフン一つのリポジトリが既に存在するため、同名扱いになっているようです。
結論:リポジトリ名は半角英数字(+記号)で!
日本語でリポジトリを作成すると「−」になってしまうので、識別できなくなります。
また、Bitbucketでは同じ文字数のリポジトリは1つしか作れませんし、GitHubにいたっては何文字だろうと日本語は一つの「−」扱いになってしまいます。
Git関連ツールは日本語は使えるものの、面倒なことが多いので避ける方が無難なようです。
今後とも、半角英数字(+記号)を使うことを習慣づけたいと思います。
BitbucketやGitHub側で日本語リポジトリ名を弾くようにしてくれれば、誤って設定する人も減りそうです。
(それはそれで不自由が出てくるのでしょうか?)