他の人のgitリポジトリを見ていたのだが、ブランチにスラッシュを使っていた。
作業者ごとに掘っていたり、課題ごとに掘っていたりと、なんか見やすい気がする。
やだ、カッコイイ、やってみたい(ミーハー)!
$ git checkout -b test1
$ git checkout -b test1/help
fatal: cannot lock ref 'refs/heads/test1/help': 'refs/heads/test1' exists; cannot create 'refs/heads/test1/help'
話が違うじゃないか・・・。
ネット検索すると、branch名と同じ名前のディレクトリをmkdirするときにエラーが出たので失敗している、ということらしい。
Using the slash character in Git branch name - Stack Overflow
mkdir -pしてないからディレクトリが掘れないのか?と思ったが、そうではない。
$ ls -F .git/refs/heads/
master test1
ああ、branchで作るのって、ディレクトリじゃなくてファイルなんだ。
てっきり、ディレクトリを作って、その中に管理ファイルを置くものだとばかり思っていたのだ。
mkdirして失敗するのは、既にディレクトリと同じ名前のファイルが存在しているからだ、ということになる。
branchつくって作業をしていたけど、ついでにこっちの作業も並列で進めたくなって、でも元のbranchから派生させるようなものでもないから今のbranchから作りたくて、どこかの時点でマージさせたい、ということがあって、そこでスラッシュを作って派生しているのがわかるようにしようと思っていたのだ。
アンダーバーで区切ればよいのだけど、単語の切れ目で使っているので、それはそれで分かりづらい。
ともかく、gitのbranch名にスラッシュは使えるのだが、使うなら最初からスラッシュを付けて作っておかないと後からはできないよ、という話でした。
役立ちました。
返信削除