Google Cloud Datalab の git リポジトリをバックアップする方法
Google Cloud Datalab は Google が提供するクラウド上の iPython Notebook 環境。
そこに作った個別のノート(ipyhone notebookのファイル)はブラウザからダウンロードできるが、一式ダウンロードはできず、いちいちダウンロードするのも面倒くさい・・・
そこで公式ドキュメントを見ると、Datalab 上に作ったソースやコンテンツ一式を Google Cloud 上の git リポジトリとして管理する方法がある、というので、リポジトリを作成して一式を clone しようとしたのだが、意外とはまったのでメモを残しておく。
大まかな流れ
Datalab 上のコンテンツ一式を git リポジトリにしてローカル PC などに一式を取得するには、以下の流れに沿ってリポジトリの作成 -> pull を行う。
1. Datalab にログインしてリポジトリを作成する
2. ローカル PC から git pull して Datalab のコンテンツ一式をバックアップする
注)Datalab 環境はできている前提
1. Datalab にログインしてリポジトリを作成する
Datalab にログインすると、画面右上に git リポジトリへのリンクがある。
git リポジトリのリンク先はこんな感じ。自分の Datalab コンテンツ一式が、標準だと datalab_main という名前のブランチの下で管理されているのがわかる。
2. ローカル PC から git pull して Datalab のコンテンツ一式をバックアップする
1.で作成したリポジトリをローカルPCに pull するには次のような手順で行う必要がある。
2-1. ローカルPC側で git init
~ % git init my-1st-datalab
~ % cd my-1st-datalab/
2-2. credential の登録
Datalab のリポジトリは Google Cloud Repositories という Google のクラウド上の git リポジトリとなっているので、ローカルPCからアクセスするためには、セキュア接続を行う必要があり、credential の登録が必要。
~ % git config credential.helper gcloud.sh
2-3. リモートリポジトリを追加して git pull
Google Cloud Repositories 上の Datalab 用のリポジトリを、ローカルPCのリモートリポジトリとして、適当な名前(ここでは google としている)で追加して pull する。
~ % git remote add google https://source.developers.google.com/p/Datalab を動かしている gcp の PROJECT_ID/
~ % git pull google
2-4. ブランチを切っている時
複数ブランチを作成している場合は、一度 checkout することでローカルPC上にも各ブランチのソースやコンテンツ一式をバックアップすることができる。
~ % git branch -r # <- -r オプションでリモートリポジトリ上のブランチを確認する
例えば、datalab というブランチをローカルに取得する場合は、git checkout datalab する
~ % git checkout datalab
注)Datalab の Source repository settings に記載されている注釈には要注意
Datalab のリポジトリはブラウザでも見れるのだが、右上の歯車のアイコンから、Source repository settings という、リポジトリの設定画面が見れるようになっている。そこに、
Cloning your repository
という項目があって、次のような説明があるが、これはあくまで gcp の標準のリポジトリのことなので、Datalab のバックアップとはまた別なので要注意。
Cloning your repository
Create a local clone of your Cloud Repository to get set up quickly.
Select your preferred authentication method:
Google Cloud SDK (recommended)
1.Install Google Cloud SDK
2.Authenticate using the following command:
gcloud init
3.Clone your empty Cloud Repository to a local Git repository:
gcloud source repos clone default <local-directory>
4.Switch to your new local Git repository:
cd <local-directory>
Create a local clone of your Cloud Repository to get set up quickly.