ADVERTISEMENT

【Googleスプレッドシート】Apps ScriptでGitと連携するワークフロー!バージョン管理の取り入れ方

【Googleスプレッドシート】Apps ScriptでGitと連携するワークフロー!バージョン管理の取り入れ方
🛡️ 超解決

Googleスプレッドシートで業務を自動化していると、Apps Scriptのコードが複雑になりバージョン管理をしたくなります。しかし、スプレッドシートに内蔵されたエディタではGitと直接連携できず、変更履歴が追いにくいと感じている方も多いでしょう。この記事では、claspというツールを使ってApps ScriptとGitを連携する方法を詳しく説明します。この手順を実践すれば、コードの変更履歴をGitで管理できるようになり、チーム開発やロールバックが容易になります。

【要点】claspとGitでApps Scriptのコードをバージョン管理するワークフロー

  • claspのインストールと初期設定: Node.jsとnpmを使ってclaspをインストールし、Googleアカウントで認証を行います。
  • プロジェクトのクローンとプッシュ: スプレッドシートのスクリプトをローカルにクローンし、編集後にGitリポジトリにプッシュします。
  • ブランチ戦略とプルリクエスト: 機能ごとにブランチを切り、プルリクエストでコードレビューを行いながらマージすることで品質を保ちます。

ADVERTISEMENT

claspを使ったGit連携の概要と前提条件

clasp(Command Line Apps Script)は、Googleが公式に提供するコマンドラインツールです。これを使うと、Apps Scriptのプロジェクトをローカルファイルとして管理し、Gitと連携できます。必要なものは、Node.js(バージョン4以上)、npm(Node Package Manager)、そしてGoogleアカウントです。GoogleアカウントはApps Scriptが有効なものであれば問題なく使えます。また、Gitがインストールされていることも前提となります。claspを使うことで、スプレッドシートのスクリプトをローカルにダウンロードし、編集後にアップロードするという一連の流れが実現します。このワークフローにより、従来のコピー&ペーストによる管理から解放され、チーム開発がスムーズになります。

claspでApps ScriptとGitを連携する手順

ここからは、実際にclaspを使ってGit連携の環境を構築する手順を説明します。大きく分けて、claspのインストール、プロジェクトのセットアップ、Gitリポジトリとの連携の3つのフェーズがあります。

1. claspのインストールと認証

  1. Node.jsとnpmの確認
    ターミナル(Windowsの場合はコマンドプロンプトまたはPowerShell)を開き、node -v と npm -v を実行してバージョンが表示されるかを確認します。表示されない場合はNode.js公式サイトからインストーラをダウンロードしてインストールします。
  2. claspのグローバルインストール
    npm install -g @google/clasp を実行します。これでclaspが使えるようになります。インストール後、clasp –version でバージョンが表示されることを確認します。
  3. Googleアカウントでログイン
    clasp login を実行します。ブラウザが開き、Googleアカウントへのアクセス許可を求められます。許可すると、ローカルに認証情報が保存されます。この操作は最初の1回だけ行います。

2. 既存のApps Scriptプロジェクトをローカルにクローンする

  1. スクリプトIDの確認
    スプレッドシートを開き、拡張機能メニューから Apps Script を開きます。エディタが表示されたら、プロジェクトの設定(歯車アイコン)をクリックし、「スクリプトID」をコピーします。
  2. ローカルにプロジェクトを作成
    ターミナルで任意のディレクトリに移動し、clasp clone <スクリプトID> を実行します。すると、そのスクリプトIDに対応するApps Scriptのファイルがローカルにダウンロードされます。ファイル構成は、Code.gs や その他 .gs ファイル、そして appsscript.json というマニフェストファイルが含まれます。
  3. ローカルリポジトリの初期化
    クローンしたディレクトリ内で git init を実行し、続けて git add . と git commit -m “initial commit” で最初のコミットを作成します。これでGit管理の準備が整いました。

3. コードの編集とプッシュ(アップロード)

  1. ローカルでコードを編集
    自分の好きなエディタ(VS Codeなど)で .gs ファイルを開き、コードを変更します。変更後、git add と git commit でコミットします。
  2. 変更をGoogleのサーバーにプッシュ
    clasp push を実行します。ローカルの変更がApps Scriptプロジェクトにアップロードされます。clasp push は上書きアップロードなので、注意が必要です。特に複数人で作業する場合は、事前に clasp pull で最新の状態を取得してから編集します。
  3. リモートリポジトリへのプッシュ
    GitHubなどのリモートリポジトリを設定している場合、git remote add origin <リポジトリURL> でリモートを追加し、git push -u origin main でプッシュします。これでコードがGitHub上にも保存されます。

claspとGit連携時の注意点とよくあるトラブル

claspを使ったワークフローにはいくつかの注意点があります。これらを理解していないと、意図しないバージョンの上書きや認証エラーに悩まされることがあります。

clasp pushで上書きされてしまう

clasp push は、ローカルのファイルでサーバー上のファイルを完全に置き換えます。そのため、複数人でプロジェクトを共有している場合、自分だけが編集した状態で push すると、他の人の変更が消えてしまいます。対策として、push する前に必ず clasp pull を実行してサーバー上の最新状態をローカルに反映させ、コンフリクトが起きないようにします。また、Gitのブランチを使って作業することで、安全に変更をマージできます。

認証が切れてしまう

clasp login で認証したトークンは一定期間で期限切れになります。エラーが発生した場合は、clasp login –no-localhost で再認証するか、clasp logout してから再度ログインします。また、CI/CD環境で使う場合は、サービスアカウントを使ってCLIを認証することも可能ですが、その設定はやや複雑です。

スクリプトIDが間違っている

clasp clone や clasp pull で使うスクリプトIDは、Apps Scriptエディタの設定画面からコピーする必要があります。スプレッドシートのURLに含まれるIDとは異なりますので注意しましょう。間違ったIDを指定すると、存在しないプロジェクトとしてエラーになります。

ADVERTISEMENT

手動管理とclasp+Gitの比較

従来の手動バージョン管理(コピー&ペーストでファイルを保存する方法)と、clasp+Gitを使った管理方法を比較します。

項目 手動管理 clasp+Git
変更履歴の追跡 ファイル名や日時で管理するため、差分確認が難しい Gitのコミットログで誰がいつ何を変更したか明確
チーム開発 同時編集ができず、変更の衝突が起きやすい ブランチとプルリクエストで安全に共同編集可能
ロールバック 手動で古いファイルを探してコピーする必要がある git revert や git checkout で簡単に過去の状態に戻せる
バックアップ ローカルにファイルを保管する必要がある リモートリポジトリに自動でバックアップされる
導入の手間 特別なツールは不要 Node.js、clasp、Gitのインストールと設定が必要

この表からもわかるように、チーム開発や本格的なプロジェクトではclasp+Gitの導入メリットが大きいです。一方、個人の簡単なスクリプトであれば手動管理でも十分かもしれません。ただし、後々の拡張を考えれば、早い段階でGit管理に切り替えることをおすすめします。

まとめ

この記事では、claspを使ってGoogle Apps ScriptとGitを連携するワークフローを解説しました。claspのインストールからプロジェクトのクローン、プッシュまでの一連の流れを実践すれば、コードのバージョン管理がGitで行えます。特に、複数人で開発する場合や、過去の変更に戻したい場面で大きな効果を発揮します。次のステップとして、GitHub上でプルリクエストを活用したレビューフローや、CI/CDパイプラインと連携して自動テストを実行する方法も検討してみてください。Apps Scriptの開発効率をさらに高めるために、ぜひこのワークフローを取り入れてみてください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。