はじめに
初心者が学びの内容を言語化することで、学習の中で得た知識を定着させすることを目的としている記事です。
今回は、Railsチュートリアルを実施するために、チュートリアル内で推奨されているCloud9を初めて使用している際に起きたトラブルとその対処法についてメモしていきます。
トラブルの症状
何かの拍子にCloud9で作成していたインスタンスを消してしまったことで、アクセス不能になりました。(ローカル環境のデータが抹消されてしまいました。)
考えられる原因
以下のような警告文が何回も出てきたことで焦り、指示通りTool > Process Listへ行きました。
その後、プロセスリストがずらーっと出てきたのですが、焦っていたので、よく分からないけど何かしなければと全処理をKillしてしまったことが原因だと考えられます。
(もしかすると原因は違うかもしれませんが、これをした直後にインスタンスが消滅していてアクセス不可能となったのでこれが原因ではないかと考えています。)
対処法について
- 消滅したのはローカル環境にあったファイルであって、GitHubやBitbucket上にプッシュされていたデータがあれば、そこからファイルを復元できるのではないかと初心者なりに考えました。
- そこで、Cloud9にて新規インスタンスを作成し、GitHubやBitbucket上のリポジトリからクローンを作成する方法を調べながら実施しました。
実際に実行したこと
(1) Cloud9にて新規インスタンスを作成
(2) Cloud9にRailsをインストール
- $ gem install rails -v 5.1.6
(3) 秘密鍵、公開鍵の再発行(毎度する必要はない?)
- $ cd ~/.ssh
- $ ssh-keygen
- $ cat ~/.ssh/id_rsa.pub
(4) 公開鍵をコピーしてGitHubやBitbucketに登録
(5) ディレクトリの移動
- $ cd ..
- $ cd environment
(6) $ git init(※後から不必要な作業だったと発覚)
(7) クローンの作成
- GitHubの場合、$ git clone https://github.com/ユーザー名/リポジトリ名.git
- Bitbucketの場合、$ git clone git@bitbucket.org:ユーザー名/リポジトリ名.git
- ユーザー名とパスワードを聞かれるので入力
(8) 以上で無事に復元成功!
以上のような流れで予想していたよりも簡単に復旧ができたので良かったです。
しかしながら前述の流れの中で1点反省点があります。
$ git init
を実施したのですが、この流れだとリモートブランチに合わす必要があるため、よく考えるとせっかくリモートブランチに最新版があるのにforce pushしたら消えてしまうという危険なことをしていたことに後から気付きました。
当たり前のことですが、きちんと各コマンドの意味を意識しながらこういったミスを減らせるように精進していきます。
なお、前述の流れの後、本番環境(Heroku)にも接続しておきたかったため、【Cloud9】Herokuへの接続方法を参考に実施しておきました。
まとめ、所感
- ローカル環境のデータがなくなってしまったときに、GitHubやBitbucketからファイルのクローンを作成する方法について学びました。
- 慣れない作業だと深く理解できていない状態で手を動かす場面もあるため、こういったミスが出てくることが多々あるとは思いますが、今後は焦らず適切な対処をするよう意識付けしていきたいです。
- また、こういうミスをカバーするためにも、GitHubやBitbucketに適宜更新したものをプッシュしておく重要性を身をもって体験することができました。GitHubは偉大です。