【Ruby on Railsチュートリアル】第一章中盤戦。Bitbucketとの連結。

続き

前半はこんな感じ

www.around50th-woman.me

バージョン管理

前半ではAWSでのRailsのインストールとアプリケーションの作成がメインだった。

後半はバージョン管理。これがハマった部分。

今朝、解決したから備忘録しなきゃってブログに書き始めたんだけど。

Gitによるバージョン管理

もうどこの現場でも当たり前にGitだろうと。

でもね、2年都心に出稼ぎに行きましたが、どこも使っている現場はなかったです。

はい。

レガシーなところですから。

CVSがあったよ・・・ね?一応C#。

SVNもあったわ。C#。

以外のASPとかにはなかった・・・よね?

あ、あったか?あった。ASPでバージョン管理してるところ。

2拠点で同じソースいじってたから必需のような。

チェックアウトしなきゃいけない感じだったはず。

でも、あれ何だった?

CVSか?

もう忘れてる。

でもコマンドレベルとかでしてないからコマンドベースのバージョン管理は思考が別物。

11月くらいから自分だけで慣れるために使ってるけど、まだまだ奥が深すぎる。

インストールとセットアップ

クラウドIDEにはデフォルトでGitが導入されている。

今気づいた。この1文。だからか。なんかメッセージが出るなって無視してたんですけどね。

でも、まずは個人設定から。

git configで設定

$ git config --global user.name "Your Name"
$ git config --global user.email your.email@example.com

インストールしたGitを使う前に、最初に1回だけ設定を行う必要があります。これはsystemセットアップと呼ばれ、コンピュータ1台につき1回だけ行います。

はい!質問です。クラウドIDEの場合はどうなの?

新しいアプリケーションを作るたびには必要ないということ?

そこがわからないわ。

git initでセットアップ

今度は、リポジトリ (リポ (repo) と略されることもあります) ごとに作成の必要な作業を行います。まず、Railsアプリケーションのルートディレクトリに移動し、新しいリポジトリの初期化を行います。

これは理解できる・・・できたかな。

$ git init

 

次にgit add -Aを実行し、プロジェクトのファイルをリポジトリに追加します。

そんな素敵なコマンドがあるの?

ローカルである程度書いてからコミットしようとしてて、いちいちファイル単位でaddしなきゃかと思ってたわ。

ただし、.gitignoreに記載されているパターンにファイル名がマッチする場合、そのファイルは追加されません。

了解。

ステージングって概念なんだね。待機用リポジトリ。

$ git status

これで確認してからリポジトリに反映(コミット)

$ git commit -m "Initialize repository"

1行コメントで十分です。

いきなりvimとか起動されてもそっちの使い方がわからないわ。

あ、全部削除した。

とか

あれ?エスケープが先?コロンが先?とか。

-mで無問題です。

あと覚えておくといいコマンド。

$ git log

pushまでしたのかしてないのかも確認できる。

このあとにGitのメリットが書いてあって、そんな怖いこと・・・なことを復旧する例が記載されててと。

真面目に間違えてローカルのディレクトリごと削除したら憤死するね。でも慌てずに、戻せますってことです。

Bitbucket

Bitbucketを採用していてくれて助かります。

11月から使ってるのがBitbucketだったから。

まぁこちら無料で非公開に出来るというメリットがあります。

GitHubはなぜか「一般公開は無料。非公開は有料」って。

意地悪〜。

公開してもし他の人に見られてだよ。勉強中なのに誹謗中傷されたら私のノミのような心臓は弾けちゃうよ。

Bitbucketはなぜか共同作業者数らしい。

なぜだろう?

ってことでBitbucketとの連携です。

でもすごいそこが薄いの。

だからすごく大変でした。

  • Bitbucketアカウントがない場合はアカウントを作成します。

これは大丈夫でした。ありますからね。

  • 公開鍵をクリップボードにコピーします。クラウドIDEを使っていればcatコマンドで公開鍵を表示できるので、それを選択、コピーします。

    $ cat ~/.ssh/id_rsa.pub

はぁ〜?何も出てきませんし、not foundですが。

$ cd ~/.ssh/
$ ls -al

authorized_keysしかないようですが・・・

あるものなの?

ってことで、ここからは自力で調べまくってみました。

鍵の作成

ec2-user:~/.ssh $ ssh-keygen -t rsa -C XXX@XXX.xx

XXX@XXX.xxは自分のメールアドレス。多分、最初のconfigで指定したものにした方がいいんですよね?

そうすると

Generating public/private rsa key pair.
Enter file in which to save the key (/home/ec2-user/.ssh/id_rsa): #Enterキー
Enter passphrase (empty for no passphrase): #Enterキー

The key's randomart image is:

で絵が出てきたら成功のようです。

再度確認。

ls -al

  • id_rsa   :秘密鍵
  • id_rsa.pub :公開鍵

が確認できました。

今度はパーミッションの変更です。秘密鍵の変更です。

chmod 600 ~/.ssh/id_rsa

その後に

$ cat ~/.ssh/id_rsa.pub

ずらずらずら〜

ssh-rsa



XXX@XXX.xxx

これでチュートリアルに戻れます。

Bitbucketに公開鍵を設定する

で、チュートリアルのBitbucketと自分のバージョンが違うor日本語仕様にしてる(自分)なので場所が微妙に違うんだよね。それでわからなかった部分が

  • Bitbucketに公開鍵を追加するには、右上にあるアバター画像をクリックして [Bitbucket settings]、[SSH keys] の順に選択します (図 1.18)。

右上ってどこ?

アバター画像って何?

なわけです。

私の画面では左下にありました。アバター画像って言う言葉にイメージが追いつかずって感じだったのがいけなかったな。

画面が見切れてたのもいけなかった。

日本語なので

f:id:kisokoji:20180131110606p:plain:w200

こんな感じ。多分、ここで言っている [Bitbucket settings]は[Bitbucket設定]だな。

f:id:kisokoji:20180131110721p:plain:w200

[SSH keys] は[SSH 鍵]ですな。

よし。

あとは同じ画面。

で、指定通りに作成。

ダッシュボードに戻って、新しいリポジトリを作成する。

[Command line] > [I have an existing project] をクリックしてそこに表示される指示に従います

この文章にも疑問だった。

Command line?

でも、リポジトリを作った直後は * 既にプロジェクトがある * 新しくプロジェクトを作成する

って画面にあるからそれのことだとGoogle翻訳してわかった。

ってことで、「既にプロジェクトがある」に書いてある通りにターミナルで実行する。

リポジトリ追加とプッシュ

$ git remote add origin git@bitbucket.org:/hello_app.git $ git push -u origin --all

ここでは--allってしてるけど、Bitbucketにはここまでは書かれてない。

pushすると

Are you sure you want to continue connecting (yes/no)?

と聞かれるからもちろん「yes」で。

でも

Warning: Permanently added 'bitbucket.org,104.192.143.X' (RSA) to the list of known hosts.

Warning出てる。意味は・・・

警告:既知のホストのリストに「bitbucket.org、104.192.143.X」(RSA)を永久に追加しました。

これはいいことなのか?悪いことなのか?

で、検索したら

qiita.com

えらいね。

実行してみた。

/home/ec2-user/.ssh/known_hosts updated. Original contents retained as /home/ec2-user/.ssh/known_hosts.old

書き換えてくれたらしい。

公開鍵がNGだとpushで何か言われる。

そしてBitbucketのリポジトリの画面も変わらない。

正しくPushされると[概要]に「最近の活動」ってことでPushedがどうのって出て来るから。

ここまでが長い道のりだった。

ここからはまぁブランチの編集とかコミットとかマージでまぁ慣れでしょって感じで。

ここまでくれば、Herokuまですんなり行くはず!