git-memento 是一個 Git 擴充功能,能記錄產生提交時所使用的 AI 編碼對話紀錄。它將 AI 對話紀錄附加為 Git notes,為 AI 輔助開發建立稽核軌跡。
git-memento 解決了 AI 輔助開發中的一個關鍵問題:當 AI 助手產生一個提交時,導致該變更的對話通常會遺失。團隊成員看到的是變更內容,但不知道為何要求 AI 進行變更、考慮了哪些替代方案,或給予了哪些限制。
這適合誰? 使用 AI 編碼助手(Codex、Claude Code)的開發團隊,他們希望維持透明度、支援程式碼審查、符合合規要求,或保留除錯與導入的上下文。
從最新的 GitHub 發行版安裝 git-memento:
替代方案:如果您願意,也可以從原始碼建置。
安裝後,驗證 git-memento 是否可用:
為您的儲存庫初始化 git-memento。這會將提供者設定儲存在本機 Git 中繼資料(.git/config):
您只需要為每個儲存庫執行一次 init。設定是本機儲存的,不會影響其他儲存庫。
像平常一樣進行變更
建立一個附加 AI 對話紀錄的提交:
檢查 AI 對話紀錄是否已附加到您的提交:
您應該會看到一個以 markdown 格式呈現的與您的 AI 提供者的對話,顯示該對話期間交換的訊息。
推送您的提交並將紀錄同步到您的遠端儲存庫:
您的團隊成員可以透過以下方式擷取紀錄:
您現在已準備就緒!繼續閱讀以了解更多進階功能和命令。
init 會將設定儲存在 .git/config 下的 memento.* 中繼資料中。
您可以多次傳遞 -m,每個值會依序轉發給 git commit。當省略 -m 時,git commit 會開啟您的預設編輯器。
--summary-skill <skill|default>(用於 commit 和 amend <session-id>)會改變紀錄行為:
在 summary 執行後驗證兩個紀錄:
這會推送 refs/notes/* 並設定本機 remote.<name>.fetch,以便團隊成員可以擷取紀錄。
這會執行 git push <remote>,然後執行與 share-notes 相同的紀錄同步。預設遠端是 origin。
如果找不到 session id,git-memento 會向設定的提供者詢問可用的對話,並將它們列印出來。
預設遠端是 origin,預設策略是 cat_sort_uniq。
稽核提交範圍內的紀錄覆蓋率和紀錄中繼資料:
執行儲存庫診斷,檢查提供者設定、notes refs 和遠端同步狀態。
對於重寫的提交(rebase / commit --amend):
對於合併/重寫流程到新的目標提交:
這會從 <base>..<head> 中的提交讀取紀錄,並將來源區塊附加到 <new-commit>。它會同時攜帶 refs/notes/commits 和 refs/notes/memento-full-audit。
提供者預設值可以來自環境變數,而 init 會將選定的提供者 + 值保留在本機 Git 設定中:
設定 MEMENTO_AI_PROVIDER=claude 以使用 Claude Code。
如果找不到 session id,git-memento 會向提供者詢問可用的對話,並將它們列印出來。
此儲存庫包含一個可重複使用的 marketplace 動作,具有三種模式:
需要 .NET SDK 10 和原生工具鏈相依性才能使用 NativeAOT。
Git 會在 PATH 中尋找名為 git-<name> 的命令。
CI 在 Linux、macOS 和 Windows 上執行安裝煙霧測試,驗證:
歡迎貢獻!貢獻方式:
如需開發設定,請參閱 Build (AOT)。
記錄每次提交的 codex 對話紀錄