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のインストールと認証
- Node.jsとnpmの確認
ターミナル(Windowsの場合はコマンドプロンプトまたはPowerShell)を開き、node -v と npm -v を実行してバージョンが表示されるかを確認します。表示されない場合はNode.js公式サイトからインストーラをダウンロードしてインストールします。 - claspのグローバルインストール
npm install -g @google/clasp を実行します。これでclaspが使えるようになります。インストール後、clasp –version でバージョンが表示されることを確認します。 - Googleアカウントでログイン
clasp login を実行します。ブラウザが開き、Googleアカウントへのアクセス許可を求められます。許可すると、ローカルに認証情報が保存されます。この操作は最初の1回だけ行います。
2. 既存のApps Scriptプロジェクトをローカルにクローンする
- スクリプトIDの確認
スプレッドシートを開き、拡張機能メニューから Apps Script を開きます。エディタが表示されたら、プロジェクトの設定(歯車アイコン)をクリックし、「スクリプトID」をコピーします。 - ローカルにプロジェクトを作成
ターミナルで任意のディレクトリに移動し、clasp clone <スクリプトID> を実行します。すると、そのスクリプトIDに対応するApps Scriptのファイルがローカルにダウンロードされます。ファイル構成は、Code.gs や その他 .gs ファイル、そして appsscript.json というマニフェストファイルが含まれます。 - ローカルリポジトリの初期化
クローンしたディレクトリ内で git init を実行し、続けて git add . と git commit -m “initial commit” で最初のコミットを作成します。これでGit管理の準備が整いました。
3. コードの編集とプッシュ(アップロード)
- ローカルでコードを編集
自分の好きなエディタ(VS Codeなど)で .gs ファイルを開き、コードを変更します。変更後、git add と git commit でコミットします。 - 変更をGoogleのサーバーにプッシュ
clasp push を実行します。ローカルの変更がApps Scriptプロジェクトにアップロードされます。clasp push は上書きアップロードなので、注意が必要です。特に複数人で作業する場合は、事前に clasp pull で最新の状態を取得してから編集します。 - リモートリポジトリへのプッシュ
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
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
