Learn or Die

生涯勉強。Macです。

Google Apps ScriptのプロジェクトをGitでバージョン管理する

GASの勉強中に、これGoogleのエディタじゃなくて自分の好きなエディタで書けたらいいな、それをGitで管理できたらいいな、と思って調べました。
環境はMacです。

必要なもの

2018年に発表されたGoogle「clasp」というCLIツールを使います。 これを使うとGASのプロジェクトをCLIで操作できます。
詳しくはこちら

前提

  • GitHubのアカウントがあること
  • Homebrewがインストールされていること

手順

nodebrew&Node.jsをインストールする

claspはNode.jsで書かれているので、nodebrewを用いてインストールしましょう。 nodebrewとは、Node.jsのバージョンを管理・切替ができるツールです。

インストールは以下を参考にしてください▼
Node.jsをインストールする - Learn or Die

Node.jsのバージョン確認

$ node -v
v13.0.0

npmのバージョン確認

claspはnpmで配信されています。
nodeとnpmのバージョン対応表▼

nodejs.org

$ npm -v 
6.12.0
  • npmとは
    Node Package Managerの略。
    Node.jsのパッケージを管理するツール。 パッケージというのは、予め用意されている便利な機能をまとめたもの。

claspをインストールする

1. claspをインストールする

$ npm i @google/clasp -g
エラーが出た場合

エラーが出てしまったら、Node.jsのバージョンが古いのが原因かもしれません。バージョンを切り替えてみてください。

2. ログインする

$ clasp login
Logging in globally...
🔑 Authorize clasp by visiting this url:

ブラウザが開いたら、アクセスを許可してください。

3. ログイン成功

ログインできると以下のメッセージが表示されるはず

Authorization successful.

Default credentials saved to: ~/.clasprc.json (/Users/User/.clasprc.json).

プロジェクトをクローンする

1. Google Apps APIを有効化する

https://script.google.com/home/usersettingsにアクセスしてAPIの使用を許可してください スクリーンショット 2020-04-28 10.48.44.png

2. スクリプトIDを確認

スクリーンショット 2020-04-28 10.54.24.png スクリーンショット 2020-04-28 10.56.20.png

3. プロジェクトをクローンする

$ clasp clone スクリプトID

Finderを見ると、cloneしたファイルが入っているはずです。

GitHubにpushする

Bitbucketなどでも大丈夫ですが、今回はGitHubを使います。
SSH鍵は作成済みであることが前提です。
作っていない方は以下サイト参考に▼
Macで公開鍵と秘密鍵を生成する方法

1. 非公開リポジトリを作成する

スクリーンショット 2020-04-28 11.16.26.png

2. 公開鍵をGitHubに登録する

titleには公開鍵の名前、keyに中身をコピーしてください。

スクリーンショット 2020-04-28 11.19.15.png

スクリーンショット 2020-04-28 11.20.46.png

スクリーンショット 2020-04-28 11.24.19.png

3. クローンしてきたファイルをgitの管理下に置く

クローンしてきたファイルのある階層にcdコマンドで移動してから以下を実行

$ git init

4. pushする

$ git status
$ git add .
$ git commit -m 'はじめてのコミット'
$ git remote add origin https://github.com/[GitHubのアカウント名]/[作成したリポジトリ名].git
$ git push -u origin master
エラーが出た場合

README関連のエラーかもしれないので以下参考にしてみてください はじめてのGitHubへのpushでエラーが出る

まとめ

以上長かったですが、おかげでGit管理しつつ、大好きなVSCodeを使ってこれから学習を進めていけそうです。