無い!無い!(git)

共有リポジトリからgit cloneしてきたら作業ファイルが無い。

.git以下はちゃんと中身が詰まっているのに何故?
というのが今日やられたところ。


.gitはあるからrevertしてみようとか、pullするといいんじゃね?とかやってみたけどgitさんはエラーを返すばかり。

ギブアップして共有リポジトリに問題が無いかlogを見ようとしたら、原因へのとっかかりを得る事が出来た。

$ cd shared_repo.git
$ git log
fatal: bad default revision 'HEAD'
$ cat HEAD
ref: refs/heads/master

多分、共有リポジトリの作り方が悪かったんだ。
(と、そのときは考えた)

この共有リポジトリは大元の作業ローカルから

$ git clone --bare /hoge/huga shared_repo.git

してきたもの。

最初に空の共有リポジトリを作って、ローカルにcloneして変更を加えていったものではなかった。


そして、元作業ローカルに移動してHEADを確認ついでにbranchを確認したときに根本の問題が判明した。

$ git branch
* (no branch)

oh... masterブランチが無い(何故?)

今まで延々とno branchにコミットして今に至るらしい。

no branchの状態を是正すればきっとうまくいく。

$ git branch master
$ git branch
* (no branch)
  master
$ git checkout master
$ git branch
* master

と、(当然ながら)masterを作って切り替えるだけでいままでのlogも全てmasterに移行できた。


どういう経緯でno branchのみとなったのかは不明でした。


このあと、共有リポジトリを作り直し、そこから再び最初の目的であったcloneをしたら作業ファイルがちゃんと展開されていました。


おしまいっと。