clasp pushとclasp pullの違い、そして既存のプロジェクトをコピーするclasp cloneについて解説します。これらを理解すれば、どんな状況でも自在にコードを同期できるようになります。
1. データの流れをイメージしよう
Claspを使う上で、一番怖いのが「ファイルの先祖返り(上書き事故)」です。 これを防ぐために、データがどう動くかをしっかりイメージしましょう。
Push (プッシュ)
- 方向: あなたのPC ➡ Google
- 意味: 「私の手元のコードが最新です。これで上書きしてください」
- コマンド:
clasp push
Pull (プル)
- 方向: Google ➡ あなたのPC
- 意味: 「Googleにあるコードが最新です。手元のファイルを更新してください」
- コマンド:
clasp pull
2. 既存のプロジェクトを手元に持ってくる (Clone)
第4章では clasp create で新規プロジェクトを作りましたが、実務では**「すでに動いているGAS」や「スプレッドシートに紐付いているGAS」**を編集したいことの方が多いでしょう。
そんな時に使うのが clasp clone (クローン) です。
これは、クラウド上のGASプロジェクトを、丸ごと自分のPCにダウンロードしてくるコマンドです。
どんな時に使う?
- 昔ブラウザで作ったGASを、これからはVS Codeで本格的に管理したいとき。
- チームメンバーが作ったGASを、自分のPCにコピーして手伝いたいとき。
- PCを買い替えて、開発環境を再構築するとき。
手順1:Script ID(スクリプトID)を探せ!
Cloneするには、そのGASの「住所」にあたる Script ID が必要です。URLではありません。
- ブラウザで対象のGASエディタを開きます。
- 左側のメニューから 「プロジェクトの設定」(歯車アイコン⚙️)をクリックします。
- 「ID」という項目にある、ランダムな長い文字列をコピーします。
手順2:コマンド実行
ターミナルで、プロジェクトを置きたいフォルダ(親フォルダ)に移動してから、以下を打ち込みます。
# clasp clone <コピーしたスクリプトID>
clasp clone 1A2b3C4d5E6f......
成功すると、現在のフォルダに新しいフォルダが作られ、その中に .js ファイルや appsscript.json がダウンロードされます。
これだけで、ローカルでの開発準備は完了です!あとは cd でそのフォルダに入って作業を始めましょう。
3. 絶対にやってはいけない「二刀流」
一番やってはいけないのが、「ローカル(VS Code)で編集しながら、ブラウザでも編集する」 ことです。 これをやると、悲劇が起きます。
😱 悲劇のシナリオ
- ローカルで「機能A」を作る。
clasp pushする。(クラウドに機能Aが反映される)- ブラウザを開いて、ちょっとした修正(機能B)をして保存する。
- ローカルに戻って、「機能C」を作る。
- ※このとき、ローカルには「機能B」が存在しません!
clasp pushする。
結果: ブラウザで作った「機能B」は消滅します! Claspは「ローカルの状態を正」として、クラウドを強制的に上書きしてしまうからです。
4. 鉄の掟:一方通行を守る
事故を防ぐためのルールはたった一つです。
「コードの編集は、必ずローカル(VS Code)だけで行う」
ブラウザのエディタは「見るだけ」「実行するだけ」にしてください。 もしブラウザでコードをいじりたくなっても、グッと我慢してVS Codeを開いてください。
もしどうしてもブラウザで修正してしまったら?
出先でPCがなくて、スマホやブラウザから緊急修正した…なんてこともあるでしょう。 その場合は、作業を再開する前に必ず以下のコマンドを打ちます。
clasp pull
これで、ブラウザで行った変更をローカルに取り込むことができます。
「久しぶりに作業するときは、念のため clasp pull しておく」のが安全です。
5. 無視ファイルの設定 (.claspignore)
プロジェクトが大きくなってくると、「Googleにはアップロードしたくないファイル」が出てきます。 例えば、自分用のメモ書きや、テスト用のデータなどです。
これを実現するのが .claspignore(クラスプ・イグノア)というファイルです。
プロジェクトフォルダの直下に作成し、以下のように記述します。
# 無視したいファイルやフォルダを書く
memo.txt
test-data/**
.git/**
node_modules/**
特に node_modules というフォルダ(ライブラリが入る場所)はファイル数が膨大なので、これをアップロードしようとするとエラーになります。
本格的な開発をする場合は、この設定が必須になります。
6. 便利な機能:自動プッシュ (watch)
いちいち clasp push と打つのが面倒くさいですか?
そんなときは、以下のコマンドを使ってみてください。
clasp push --watch
これを実行している間は、「ファイルを保存(Ctrl+S)するたびに、自動でプッシュ」 してくれます。
ブラウザのエディタと同じような感覚で、保存=反映というリズムで開発できます。
(終わるときは Ctrl + C で停止します)
よくある質問 (Q&A)
Q. ブラウザでちょっと直すくらいなら大丈夫ですよね?
A. ダメです!
「1文字だけだから…」という油断が事故の元です。
ブラウザで修正して保存した瞬間に、ローカルのコードと「矛盾」が生じます。
その後にローカルから clasp push すると、ブラウザでの修正は無慈悲に上書きされて消えます。
「修正は必ずVS Codeで」 を徹底してください。
Q. clasp clone は何回もやるものですか?
A. 基本は最初の一回だけです。
一度ローカルに持ってくれば、あとはそのフォルダで開発を続ければOKです。
ただし、PCを変えたり、別のフォルダで作業したくなった場合は、再度 clone しても構いません。
理解度チェックテスト
Q1. 手元のコードをGoogleにアップロードするコマンドは?
答え:clasp push
Q2. Googleにあるコードを手元にダウンロードするコマンドは?
答え:clasp pull
Q3. 既存のGASプロジェクトを丸ごとコピーしてくるコマンドは?
答え:clasp clone
ここまでで、Claspの基本的な使い方はマスターしました。 次章からは、少し視点を変えて「実際の業務でどう使うか」という実践的な話をします。
2 thoughts on “第6章:push / pull / clone を完全に理解する”