跳到內容

Git · ChangeSet

Blyck 以兩層提供版本管理。以 Git 管理檔案,以 ChangeSet 追蹤 Git 看不到的部分(DB · SSH · 套件),無論變更了什麼都能確認並還原。

Ctrl+Shift+H 開啟變更紀錄視窗,或點選 AI 聊天底部的 📦 ChangeSet 晶片也會開啟同一個視窗。


Windows 版內建了 MinGit。若系統已安裝 git 則優先使用,若無則自動回退至內附的 MinGit。即使在從未安裝過 git 的 PC 上,提交·推送·ChangeSet 也全部運作。


專案中發生的變更,不論種類都會記錄於一處。無需鎖定或簽出程序,在變更發生的當下自動納入。唯讀作業(SELECT · file_read · ls)不會記錄。

種類記錄內容
檔案變更前/後內容、時間、來源(👤 人 / ✨ AI)
DB DDLSQL 原文、自動生成的反向 SQL、風險度
DB DMLSQL 原文、影響列數、供還原用的事前備份列
SSH 執行執行的命令、伺服器、部分輸出、風險度
套件套件名、執行階段

開啟視窗:Ctrl+Shift+H 或 AI 聊天底部的 📦 晶片。用 [全部變更 | 此作業] 切換在整體紀錄與目前聊天作業範圍間切換。


ChangeSet 視窗由三個分頁構成。

一併顯示未提交的檔案(以 git status 為基礎)與 DB·SSH·套件變更(以 history 為基礎)。可選擇項目執行還原

  • 未提交的檔案 → git checkout(取消修改)或刪除新檔案
  • DB 變更 → 執行自動生成的反向 SQL
  • SSH 變更 → 可推測反向命令時自動提示

git log 為基礎顯示提交清單。點選項目時確認該提交的 git show diff,並以 [還原此提交] 按鈕執行 git revert(保留歷史,非強制覆寫)。

檔案變更以 git push 匯出,DB 變更以 SQL 遷移指令稿匯出。

  • 驗證(verify) — 檢查無 WHERE 的 UPDATE/DELETE、危險的 DDL(DROP · 新增 NOT NULL)、新函式缺少對應測試等。
  • 匯出(export) — 以 SQL 遷移指令稿、供 PR 的 git 命令組合或 JSON 匯出。用於將開發 DB 的作業內容整理成可套用至正式環境。

可選擇紀錄中的任何項目進行還原。

種類還原方式
檔案復原為變更前的內容
DDL執行自動生成的反向 SQL(CREATEDROPADD COLUMNDROP COLUMN)
DML復原為執行前備份的列(第 1 層/第 2 層備份,見下方)
SSH可推測反向命令時自動提示(mkdirrmdir),無法時則提供手動說明

AI 在執行 DML 前會自動建立備份。

  • 第 1 層 — 單一資料表·可解析 WHERE·有 PK·≤1,000 列時:將變更前的列 JSON 儲存到歷程 DB(blyck-history.db)的 dml_backup。還原時立即復原。
  • 第 2 層 — 大量·複雜查詢·無 PK 時:在目標 DB 中建立備份資料表(blyck_bak_…)保存。還原完成後備份資料表會自動刪除。
  • 執行前反向作業預覽 + 確認模態框 — DROP / DELETE 為紅色警告
  • 還原中間項目時會警告「之後的 N 個變更將被覆寫」
  • 若目前值與記錄的值不同(在其他地方又被改過),會再次確認是否強制
  • 還原本身也會記錄為新紀錄 — 可以還原還原

紀錄儲存在 %APPDATA%\Blyck\blyck-history.db

政策基準
每個對象最多保存最近 40 個項目
自動清理週期刪除經過 14 天的項目
DB 大小上限2 GB
單一檔案大小上限超過 1 MB 的檔案不記錄

在 ChangeSet 視窗的提交紀錄分頁,或命令面板(Ctrl+Shift+P)中執行 Git 作業。

作業說明
檢查點將作業途中的自動存檔點建立為時間戳記提交。實驗中可隨時返回。
作業單位提交將目前聊天(作業)中發生的檔案·DB·SSH 變更匯整為一個提交。以 ✨ 按鈕自動生成 AI 提交訊息。
選擇提交 / 全部提交挑選檔案提交,或將全部一次提交。
diff以工作樹、特定提交、兩個提交之間、特定作業範圍等想要的基準比較。
discard取消工作樹的變更。
log查詢提交紀錄。
push將目前分支推送到遠端儲存庫。

以 GitHub OAuth device flow 登入。在瀏覽器輸入一次代碼即完成,token 會加密保存在 OS 認證儲存區(safeStorage)。

  1. 命令面板(Ctrl+Shift+P)→ 「GitHub 登入」或 ChangeSet 視窗上方的 GitHub 按鈕
  2. 瀏覽器開啟後,輸入顯示的代碼以認證
  3. 完成後 push/pull 認證會自動處理
作業說明
Publish將本機專案在 GitHub 上建立為新儲存庫並推送
Clone將 GitHub 儲存庫複製到本機資料夾
Link將既有的本機儲存庫與 GitHub 儲存庫連結

整合後 push/pull 認證會自動處理。token 加密儲存在 OS 認證儲存區,因此無需每次登入。



Q. 我沒安裝 git,但可以提交嗎? Windows 版內附 MinGit,因此無需另外安裝即可提交·推送。

Q. AI 修改的檔案在 ChangeSet 中看不到。 AI 用內建 Edit/Write 變更的檔案不會經過 Blyck 的 file_write 路徑,因此不會立即記錄到 history。但 git 會辨識變更,因此會顯示在變更分頁的未提交檔案清單中。

Q. 我誤執行了 DML,可以還原嗎? 可以。DML 執行前會自動建立備份(第 1 層:歷程 DB,第 2 層:目標 DB 備份資料表),因此可從 Ctrl+Shift+H → 該項目 → 還原 復原。無 WHERE 的 UPDATE/DELETE 也能復原。

Q. 我不小心執行了還原,該怎麼辦? 還原本身也會記錄為新紀錄。再從 Ctrl+Shift+H 還原該「還原」項目,即可恢復為原始狀態。

Q. 我想在提交紀錄中取消特定提交。 在提交紀錄分頁點選該提交 → 按下 [還原此提交] 按鈕即會執行 git revert。歷史會保留並新增一個 revert 提交。

Q. 為什麼 SSH 命令有時無法還原? 僅在可自動推測反向命令的情況(mkdirrmdir 等)才會自動提示。有副作用的命令必須手動處理。

Q. GitHub device flow 登入已過期。 在命令面板重新執行「GitHub 登入」重新認證即可。之後 push/pull 會再次自動處理。

Q. 紀錄 DB 檔案變得太大。 %APPDATA%\Blyck\blyck-history.db 以 2 GB 上限與 14 天自動清理政策管理。大型檔案(超過 1 MB)會從紀錄中排除。若想立即清理,重新啟動應用程式即會執行清理常式。