第6章:push / pull / clone を完全に理解する

この記事の内容について、業務や開発でお困りの場合は個別に対応できます。

clasp pushclasp 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ではありません。

  1. ブラウザで対象のGASエディタを開きます。
  2. 左側のメニューから 「プロジェクトの設定」(歯車アイコン⚙️)をクリックします。
  3. 「ID」という項目にある、ランダムな長い文字列をコピーします。

手順2:コマンド実行

ターミナルで、プロジェクトを置きたいフォルダ(親フォルダ)に移動してから、以下を打ち込みます。

# clasp clone <コピーしたスクリプトID>
clasp clone 1A2b3C4d5E6f......

成功すると、現在のフォルダに新しいフォルダが作られ、その中に .js ファイルや appsscript.json がダウンロードされます。 これだけで、ローカルでの開発準備は完了です!あとは cd でそのフォルダに入って作業を始めましょう。

3. 絶対にやってはいけない「二刀流」

一番やってはいけないのが、「ローカル(VS Code)で編集しながら、ブラウザでも編集する」 ことです。 これをやると、悲劇が起きます。

😱 悲劇のシナリオ

  1. ローカルで「機能A」を作る。
  2. clasp push する。(クラウドに機能Aが反映される)
  3. ブラウザを開いて、ちょっとした修正(機能B)をして保存する。
  4. ローカルに戻って、「機能C」を作る。
    • ※このとき、ローカルには「機能B」が存在しません!
  5. 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の基本的な使い方はマスターしました。 次章からは、少し視点を変えて「実際の業務でどう使うか」という実践的な話をします。


>> 次の章:第7章 GASを「実際の業務」に使うイメージ

連載目次

ZIDOOKA!

この記事の内容について、対応できます

この記事に関連する技術トラブルや開発上の問題について個別対応を行っています。

個別対応は3,000円〜 内容・工数により事前にお見積りします
最後までお読みいただきありがとうございました

2 thoughts on “第6章:push / pull / clone を完全に理解する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

AI活用に関するポリシー

当サイトでは、記事の執筆補助にAIを活用する場合がありますが、全面的な委任は行いません。