bitbucketに新規リポジトリを作成して既存のディレクトリと繋げるときにハマった話

今日はgitの話です。今まで何度かgitでは似たようなハマり方をしてきましたが、ひとつ前進したところがあったので、おもに自分用のメモとして残しておきます。

#にしても本当にAVCみたいになりつつありますが・・まずいまずい。

さて、何が前進したのか、何をやったのか、という話ですが、ひとことで言うとbitbacketにリポジトリを作って、既存の作業ディレクトリとそれを繋げる、ということをやりました。

順に説明すると、やったことは、まずbitbucketのダッシュボード上方(画像内右上)の「作成」でリポジトリ作成。

f:id:note103:20131203213537p:plain

新規リポジトリのスタートページに行くので、そこで「私はこれまでに作ったリポジトリをプッシュします。」を選択。

f:id:note103:20131203213547p:plain

んで、次に行ったページにある、「すでに Git リポジトリをお持ちなら、 Bitbucket にプッシュすることでコードをインポートできます。」と書かれた下のこんなコードを順次ターミナルに入力(というかコピペ)。
#注:ユーザー名とリポジトリ名はこの記事用に変更してます。

$ cd /path/to/my/repo
$ git remote add origin ssh://git@bitbucket.org/sample_user/newrepository.git
$ git push -u origin --all # pushes up the repo and its refs for the first time

で、OK!!

・・となると思ったんですが、全然ならない。これが今日のハマりポイントでした。

んで、とりあえず15分ぐらい試行錯誤して何とかクリアできたので、以下はその模様です。

まず、いきなりつまづいたのはそのターミナルに打ち込む内容として示された最初の行、こんなふうに書いてありますけど、

$ cd /path/to/my/repo

これ、分かる人にはもちろん普通にわかるんだと思いますが、あくまで「例」としてのパスですね。
つまり、ここにはこのままではなく、対象のリポジトリがあるパス(場所)を書かなきゃいけません。

まあ、ぼくはここに実際につまづいたわけではなくて、そういうことだろうな〜、とは思ったんだけど、どこにもそういう補足説明みたいのがなかったので、「そういうことだろうな〜、そういうことかなあ〜?」みたいにビクビクしながらやったら、まあそうだった、ということで。シリアスなハマりではないけど一応ハマりポイントのひとつだった、ということで。

んで、次から普通につまづきます。とりあえず、2行目のこれを打ち込んだところで、

$ git remote add origin ssh://git@bitbucket.org/sample_user/newrepository.git

こんなのが返ってきました。

fatal: Not a git repository (or any of the parent directories): .git

エラーっぽい。どう見ても・・ああ、そうか。このディレクトリそういえば、まだ「git init」してないじゃん。
ということで、

$ git init

してからもう一度、

$ git remote add origin ssh://git@bitbucket.org/sample_user/newrepository.git

すると、無反応。というか、まあたぶん問題ないということらしい。じゃ、OK!

ということで次に行くと、ここでも普通につまづきます。3行目のこれを打ち込んだところ、

$ git push -u origin --all

こんなレスポンスが戻ってきました。

No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly
Everything up-to-date

ふむ・・ブランチマスターがないよ、ってことかね・・
と思い、そういえば、自分が今どのブランチにいるのか確認するのって、「git branch」だっけ。と思い、

$ git branch

と打ったけどウンともスンとも言わない。というか、何もなかったようにスルーされるというか・・
そこで手元のこれを開き、

アリスとボブのGit入門レッスン

アリスとボブのGit入門レッスン

最初にブランチの説明が出てくるp108へ。
ふむ・・でもやっぱり、普通に上記ので合ってるらしい。普通ならマスターブランチにいるので、

$ git branch
* master

みたいに返ってくるはずなんだが・・というところで、ああ、そういえばこのディレクトリ、「git init」したのはいいけど、その後まったくaddもcommitもしてないなあ〜、と思い、とりあえずそれしてみるか、ということに。

んで、既存の作成中ファイルのうち、とりあえずコミットしておきたいのをadd、commitして、あらためてトライしたら、

$ git push -u origin --all
(略)
To ssh://git@bitbucket.org/sample_user/newrepository.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

てな感じに。よくわからんが何となく上手くいった風。

で、その後のコミット&プッシュも上手くいってるようなので、これで何とか良さそう。

ということで、まとめとしては、 「git branch」して無反応だったらとりあえずコミットしとけ。ということでしょうか。(ちがう気もする)

まあ、なし崩し的にではありますが、既存のディレクトリにbitbucket上の新規リポジトリをつなげる方法も分かって、今後につながる学びであったように思います。(GitHubも同じようなものなんだっけ・・まあ、そのうち試してみます)

おしまい。