TIL:別讓手殘毀了你的GAS - 備份的重要性

TIL:別讓手殘毀了你的 GAS!分享 GAS 備份的重要性與 GitHub 整合工具教學。針對 Vibe Coding 流程優化,透過版本管理避免 AI 協作時的覆蓋悲劇,保護你的 Google Apps Script 辛苦成果。

TIL:別讓手殘毀了你的GAS - 備份的重要性

這次想分享的學習點是關於我如何學會要記得做 GAS (Google Apps Script) 的備份。

快速結論:請務必為你的 GAS 專案做備份,以免因為任何意外而遺失辛苦寫好的功能。

推薦工具::https://chromewebstore.google.com/detail/google-apps-script-github/lfjcgcmkmjjlieihflfhjopckgpelofo?hl=en

我是如何「踩坑」的?

在做GAS 功能開發與維護時,很多時候一個專案、或者一個 .gs 檔案要做的事情並不複雜、通常是單一任務的。

例如:搜尋信件中某某業務申請的信件自動存到 Google Sheet上。或是 定期的發送需要續約提醒的內容給對應的客戶。

在管理與開發這些功能時,我不需要一個大型系統做所有的任務,而是最好能讓我把每個任務切成獨立的 Project 或是 檔案進行管理。 而每個檔案當中再稍微細切成幾個函式處理不同任務或流程,例如有的是負責解析信件內容、有的負責管理像工作表位置等變數、有的負責填入內容等等。

Tips:如果是在同一個專案,要注意變數與函數名稱不可重複以及 Trigger 的設定

我經常是將整段程式碼連同需求一起丟給 Gemini,再請他提供給我完整的程式碼。就算是做局部的修改,作為人類除了懶惰還會有人為錯誤的機會,因此在 AI 的精準提提升的前提下,我都會請 AI 提供完整整份的程式碼讓我複製貼上。 (註:檔案中的程式碼不能太長,否則 Token消耗以及幻覺出現的問題會變嚴重)

AI 寫Code 很快,但要毀掉一切也很快

因為我的GAS 大多不需要經過部署,每次更新時的「全選 -> 覆蓋 -> 儲存 -> 測試」流程太順手,次數一多,即使機率為小,也難免會有誤刪檔案、甚至是覆蓋到錯誤的檔案的狀況。

在沒有部署也沒有特別備份的情況,就會發生遺失原本的程式碼、要重新開發又要重新合計有工作表的名稱、參數、Trigger 等個方便的重新校正,會比砍掉重練更為麻煩。


推薦工具:Google Apps Script GitHub Assistant

GAS 其實有「版本(Versions)」和「部署(Deployments)」功能,但可能像我一樣覺得用起來太麻煩、不夠彈性。

後來我學會使用這個工具:Google Apps Script GitHub Assistant

推薦工具::https://chromewebstore.google.com/detail/google-apps-script-github/lfjcgcmkmjjlieihflfhjopckgpelofo?hl=en

它可以連接 GAS 與 Github 直接在 GAS 介面上做 Push & Pull,當然前置設定時需要先開好 Repo、授權 Github帳號與Google帳號、以及提供 Token。

Tips:Token 設定時可以使用 「Fine-grained personal access tokens 」,更安全的只授權必要的權限以及專案範圍給工具。例如我只有給予 「Contents: Read and write」 的權限。

開啟完後, GAS 上就會出現可以選擇 Repo > Branch 以及 Pull & Push 的按鈕囉!


後續

對於像我一樣的非傳統工程師、 Vibe Coding 人員來說,版本控制是一個聽過但不熟悉的領域,往往得真的痛過才會學習。

而且也不只是手殘覆蓋的狀況,在請 AI 改 Code 時也常常會碰到越改越爛、充滿幻覺的狀況。定期的備份與版本管理的習慣不只能讓我們避免悲劇發生,更能節省來回調整的心力與時間。

希望我的分享能拋磚引玉,或者幫助到有相似情境的你。

歡迎和我分享你的經驗,或是推薦我更好的工具或做法!