LoginSignup
1
0

More than 3 years have passed since last update.

GCPのJupyter LabからGSRにGitするやり方

Last updated at Posted at 2020-07-12

1.目的

最近、GCP上でcloud shellからGSRへのadd, commit, pushといった基本的な一連の流れはだいぶ慣れてきたものの、実際の開発はjupyter Labとかでやることも多いから、cloud shellからじゃなくてJupyter Labからpushできると便利だなと思い、基本の流れをまとめました。

具体的には、GCPのAI Platformからノートブックを立ち上げます。

2.早速やってみよう

(1)先にリポジトリを作っておく

「Qiita」というリポジトリをGSR上で作り、「test.txt」を事前にcloud shellからpushしておきました。
(下記はGSRのQiitaリポジトリの画面)

キャプチャ2.PNG

(2)Jupyter Labの立ち上げ

GCPのハンバーガーメニュー(左側のメニュー)から「AI Platform」を選択。
※私はピン止めしているので上の方に出てきますが、実際は結構下の方にあります。

その後、ノートブックを選択し、インスタンスを作成します。
※私はリージョンはasia-northeastにしています。

キャプチャ1.PNG

(3)ディレクトリの作成

下記のように、新しいフォルダを作っておきます。
今回はQiita_notebookというディレクトリを手動で作っておきました。
※clone_jupyterというディレクトリは別途私が個人的に作っているだけなので、無視してください。

キャプチャ3.PNG

(4)Git用のnotebookを作成→GSRからクローンする

(3)で作成したQiita_notebookディレクトリ内にnotebookを作ります。
今回は「Qiita.ipynb」です。

このnotebook内で、下記のようにコマンドを打っていきます。

キャプチャ4.PNG

①初期設定
ここは通常のGitと同じ流れです。

②クローン
GSRのQiitaリポジトリをクローンします

→これを実行すると、上のキャプチャの③のように、突如ぽこっと「Qiita」リポジトリがクローンされます

(5)テキストファイルを修正してみる

Qiitaリポジトリに移動し、test.txtを開き、下記のように追記
→保存して閉じておきます。

※ここが、実際は開発時にコードを修正しているイメージです。

キャプチャ5.PNG

(6)Qiita.ipynbをQiitaリポジトリ内に移動

手動になりますが、今はQiitaリポジトリの外にいるQiita.ipynbをCutして、QiitaリポジトリにPasteしておきます。
※こうしないと、この後pushができませんでした。

キャプチャ6.PNG

(7)いよいよ、pushしていく

下記のようにコマンドを打つと、GSRへpushされます!

キャプチャ7.PNG

(8)GSRで確認

無事にjupyter Labからpushできていました!

キャプチャ8.PNG

3.リモートリポジトリにpushしたくないファイルを設定する(7/19追記)

仕事で開発をしていると、避けて通れないのが「セキュリティ関連」
gitでいうと、「パスワードが書かれたファイルを気づかないうちにリモートリポジトリにpushしてしまっていた」ということは割と頻繁に起こっているようです。

私も、セキュリティ的には問題ないのですが、意図せぬファイルをpushしてしまったことがあり、それ以来gitがめちゃくちゃ怖いです・・。

そんなときは「.gitignore」ファイルを作り、「ここに記載するファイルはバージョン管理しない」と設定することができます。

「.gitignoreファイルの作成」

色んなサイトで.gitignoreファイルについては説明されていますが、意外に手取り足取り書いてくれているサイトが少なく、「で、結局どうすればいいの?」という点に詰まってしまいました。
特にjupyter lab上でのやり方に触れている記事が少なかったので、記載していきます。

下記のように、/test/branchディレクトリにリポジトリがクローンされているとします。

キャプチャ1.PNG

ここで、上のキャプチャの「+」を押し、テキストファイルを選択します。

キャプチャ2.PNG

テキストファイルが立ち上がりますので、untitled・・の部分を右クリックし、「名前の変更(Rename File)」を選択。

キャプチャ3.PNG

ここで、ファイル名を「.gitignore」にします(.txtも消します)。
キャプチャ4.PNG

これでRenameし、このテキストの中にバージョン管理したくないファイル名を書いていきます。
今回でいうと、例えば「administer.ipynb」と「member1.ipynb」に公開してはいけない情報が記載されているのでこの2つのファイルはバージョン管理しない、と設定するわけです。

キャプチャ5.PNG

このファイルを保存するとjupyter lab上からは「.gitignoreファイル」は見た目上いなくなりますが、「ls -a」で見ると存在します。

これだけで.gitignoreファイルの作成は完了です!
あとはこのファイルも併せてpushすれば、設定した2つのファイルはバージョン管理がされないというわけです。

※注意点
1.当然ですが、最初にpushする前にこの設定はしておいてください。
1度pushしてしまったら元も子もないので・・・。

2.notebookで作業する場合、「.gitignore」ファイルにバージョン管理したくないファイル名だけでなく、「.ipynb_checkpoints/」も入れておいた方がいいです。

→「.ipynb_checkpoints/」は、notebookで作業する場合自動でできるファイルのようで、バージョン管理したくないファイル名を.gitignoreファイルに記載していても、この「.ipynb_checkpoints/」の中にそのファイルがコピーされていて、pushしたら実は「.ipynb_checkpoints/」もpushされ、その中にバージョン管理したくない2つのファイルが入っていました・・。

4.結び

いかがでしたでしょうか。
今後も適宜追記していきます。

Gitは奥が深い・・・。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0