Google Cloud Datalab の git リポジトリをバックアップする方法

Google Cloud Datalab は Google が提供するクラウド上の iPython Notebook 環境。
そこに作った個別のノート(ipyhone notebookのファイル)はブラウザからダウンロードできるが、一式ダウンロードはできず、いちいちダウンロードするのも面倒くさい・・・
そこで公式ドキュメントを見ると、Datalab 上に作ったソースやコンテンツ一式を Google Cloud 上の git リポジトリとして管理する方法がある、というので、リポジトリを作成して一式を clone しようとしたのだが、意外とはまったのでメモを残しておく。

Google Cloud Datalab

大まかな流れ

Datalab 上のコンテンツ一式を git リポジトリにしてローカル PC などに一式を取得するには、以下の流れに沿ってリポジトリの作成 -> pull を行う。
1. Datalab にログインしてリポジトリを作成する
2. ローカル PC から git pull して Datalab のコンテンツ一式をバックアップする

注)Datalab 環境はできている前提

1. Datalab にログインしてリポジトリを作成する

Datalab にログインすると、画面右上に git リポジトリへのリンクがある。
Datalab の git リポジトリへのリンク

git リポジトリのリンク先はこんな感じ。自分の Datalab コンテンツ一式が、標準だと datalab_main という名前のブランチの下で管理されているのがわかる。
Datalab の git リポジトリの様子

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.

参考:Google Cloud Source Repositories