Git · ChangeSet
Blyck 以兩層提供版本管理。以 Git 管理檔案,以 ChangeSet 追蹤 Git 看不到的部分(DB · SSH · 套件),無論變更了什麼都能確認並還原。
用 Ctrl+Shift+H 開啟變更紀錄視窗,或點選 AI 聊天底部的 📦 ChangeSet 晶片也會開啟同一個視窗。
MinGit 內附 — 無需安裝 git
Section titled “MinGit 內附 — 無需安裝 git”Windows 版內建了 MinGit。若系統已安裝 git 則優先使用,若無則自動回退至內附的 MinGit。即使在從未安裝過 git 的 PC 上,提交·推送·ChangeSet 也全部運作。
ChangeSet — 所有變更的單一紀錄
Section titled “ChangeSet — 所有變更的單一紀錄”專案中發生的變更,不論種類都會記錄於一處。無需鎖定或簽出程序,在變更發生的當下自動納入。唯讀作業(SELECT · file_read · ls)不會記錄。
| 種類 | 記錄內容 |
|---|---|
| 檔案 | 變更前/後內容、時間、來源(👤 人 / ✨ AI) |
| DB DDL | SQL 原文、自動生成的反向 SQL、風險度 |
| DB DML | SQL 原文、影響列數、供還原用的事前備份列 |
| SSH 執行 | 執行的命令、伺服器、部分輸出、風險度 |
| 套件 | 套件名、執行階段 |
開啟視窗:Ctrl+Shift+H 或 AI 聊天底部的 📦 晶片。用 [全部變更 | 此作業] 切換在整體紀錄與目前聊天作業範圍間切換。
ChangeSet 視窗由三個分頁構成。
一併顯示未提交的檔案(以 git status 為基礎)與 DB·SSH·套件變更(以 history 為基礎)。可選擇項目執行還原。
- 未提交的檔案 →
git checkout(取消修改)或刪除新檔案 - DB 變更 → 執行自動生成的反向 SQL
- SSH 變更 → 可推測反向命令時自動提示
提交紀錄分頁
Section titled “提交紀錄分頁”以 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(CREATE↔DROP、ADD COLUMN↔DROP COLUMN) |
| DML | 復原為執行前備份的列(第 1 層/第 2 層備份,見下方) |
| SSH | 可推測反向命令時自動提示(mkdir↔rmdir),無法時則提供手動說明 |
DML 自動備份(第 1 層 / 第 2 層)
Section titled “DML 自動備份(第 1 層 / 第 2 層)”AI 在執行 DML 前會自動建立備份。
- 第 1 層 — 單一資料表·可解析 WHERE·有 PK·≤1,000 列時:將變更前的列 JSON 儲存到歷程 DB(
blyck-history.db)的dml_backup。還原時立即復原。 - 第 2 層 — 大量·複雜查詢·無 PK 時:在目標 DB 中建立備份資料表(
blyck_bak_…)保存。還原完成後備份資料表會自動刪除。
- 執行前反向作業預覽 + 確認模態框 —
DROP/DELETE為紅色警告 - 還原中間項目時會警告「之後的 N 個變更將被覆寫」
- 若目前值與記錄的值不同(在其他地方又被改過),會再次確認是否強制
- 還原本身也會記錄為新紀錄 — 可以還原還原
紀錄保存政策
Section titled “紀錄保存政策”紀錄儲存在 %APPDATA%\Blyck\blyck-history.db。
| 政策 | 基準 |
|---|---|
| 每個對象最多保存 | 最近 40 個項目 |
| 自動清理週期 | 刪除經過 14 天的項目 |
| DB 大小上限 | 2 GB |
| 單一檔案大小上限 | 超過 1 MB 的檔案不記錄 |
Git 作業
Section titled “Git 作業”在 ChangeSet 視窗的提交紀錄分頁,或命令面板(Ctrl+Shift+P)中執行 Git 作業。
| 作業 | 說明 |
|---|---|
| 檢查點 | 將作業途中的自動存檔點建立為時間戳記提交。實驗中可隨時返回。 |
| 作業單位提交 | 將目前聊天(作業)中發生的檔案·DB·SSH 變更匯整為一個提交。以 ✨ 按鈕自動生成 AI 提交訊息。 |
| 選擇提交 / 全部提交 | 挑選檔案提交,或將全部一次提交。 |
| diff | 以工作樹、特定提交、兩個提交之間、特定作業範圍等想要的基準比較。 |
| discard | 取消工作樹的變更。 |
| log | 查詢提交紀錄。 |
| push | 將目前分支推送到遠端儲存庫。 |
GitHub 整合
Section titled “GitHub 整合”以 GitHub OAuth device flow 登入。在瀏覽器輸入一次代碼即完成,token 會加密保存在 OS 認證儲存區(safeStorage)。
- 命令面板(
Ctrl+Shift+P)→ 「GitHub 登入」或 ChangeSet 視窗上方的 GitHub 按鈕 - 瀏覽器開啟後,輸入顯示的代碼以認證
- 完成後 push/pull 認證會自動處理
整合後可用的作業
Section titled “整合後可用的作業”| 作業 | 說明 |
|---|---|
| Publish | 將本機專案在 GitHub 上建立為新儲存庫並推送 |
| Clone | 將 GitHub 儲存庫複製到本機資料夾 |
| Link | 將既有的本機儲存庫與 GitHub 儲存庫連結 |
整合後 push/pull 認證會自動處理。token 加密儲存在 OS 認證儲存區,因此無需每次登入。
- AI 聊天 — AI 所做的變更也會自動記錄到 ChangeSet
- 程式碼編輯器 — 儲存檔案時記錄變更紀錄,行內 AI 修改也會被追蹤
- DB 用戶端 — 執行 DDL/DML 時自動生成反向 SQL·備份
- 終端機 · SSH · SFTP — 記錄 SSH 命令執行紀錄
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 命令有時無法還原?
僅在可自動推測反向命令的情況(mkdir↔rmdir 等)才會自動提示。有副作用的命令必須手動處理。
Q. GitHub device flow 登入已過期。 在命令面板重新執行「GitHub 登入」重新認證即可。之後 push/pull 會再次自動處理。
Q. 紀錄 DB 檔案變得太大。
%APPDATA%\Blyck\blyck-history.db 以 2 GB 上限與 14 天自動清理政策管理。大型檔案(超過 1 MB)會從紀錄中排除。若想立即清理,重新啟動應用程式即會執行清理常式。