
Gitingest:把整個專案變成 Prompt
先說結論
如果你平常已經使用 AI 輔助工具進行程式開發(Github Copilot,Cursor,Cline 等),推薦你這個工具,Gitingest
可以將你的整個專案轉換為 AI 友善的 Prompt Context,你可以用這個:
- 產生專案文件:讓 AI 直接從完整的程式碼內容生成 README、API 文件,甚至是技術規格書。
- 生成測試程式:AI 可以根據完整的程式碼結構幫你寫測試程式,聽了TDD(測試驅動開發)N年,終於在今年開始寫測試了(淚)。
- 生成開發計劃:讓 AI 根據上面步驟生成的專案文件和程式碼,再幫我寫開發計劃,終於可以用嘴寫程式了(淚again)。
- 測試文件驅動開發(TDDD?):結合測試驅動開發(TDD)與文件驅動開發(DDD),讓 AI 先根據開發計劃寫測試,寫完測試寫程式,寫完程式再測試,舒服。
Gitingest能幹麻?
Gitingest 官網:https://gitingest.com/
Gitingest Github:https://github.com/cyclotruc/gitingest


Gitingest 怎麼用?
Gitingest 官網提供了分析公開 Git Repository 的功能,但我們的專案通常是私有的,無法直接使用這個線上服務。
因此,我們需要安裝他的 Command Line 工具,就能在電腦本地執行 Gitingest 來分析專案內容,這樣就能安全地轉換專案 Context,也不用怕網路服務會不會偷你的程式碼。
你可以透過簡單的指令讓 gitingest 生成專案的 Context,細節你可以看 Gitingest Github 內說明:
gitingest . -o codebase.txt
這個指令會將當前專案的所有程式碼轉換成 codebase.txt
,之後就能將這個 Context 提供給 AI 來提升開發體驗。
指令說明
參數 | 說明 |
---|---|
. | 分析當前專案目錄 |
-i | 指定要包含的檔案或目錄 |
-e | 指定要排除的檔案或目錄 |
-o gitingest_output.txt | 分析結果輸出到 gitingest_output.txt |
範例指令
分析專案但排除
node_modules
gitingest . -e "**/node_modules/**" -o output.txt
僅分析特定類型的檔案(如 Vue 檔案)
gitingest . -i "**/*.vue" -o vue_files.txt
排除測試與構建產物,只保留業務程式碼
gitingest . -e "**/tests/**" -e "**/dist/**" -o clean_codebase.txt
Gitingest 的實際應用
有了完整的專案 Context 之後,我們可以來做很多事情:
- 生成 README 文件
- 讓 AI 根據完整的程式碼內容寫 README。
- 產生 API 文件
- 提供後端專案的 Context 給 AI,讓它寫 API 文件。
- 寫測試
- 不要再說沒空寫測試了,但我也沒寫過測試,反而是花了一些時間去了解測試程式結構、原理、目的。
- 測試驅動開發(TDD)
- 不知道請 Google。
- 文件驅動開發(DDD)
- 我找到這份簡報講 DDD ,我有一個大膽的想法:DDD + AI,好像很酷,經過我的實測,「酷到爆!」
- 懶人如我現在都用嘴巴寫程式,用DDD架構:先跟 AI 聊需求,然後整個專案程式碼 context 丟給他,用那些號稱聰明到爆的 O1、deepseek、sonnet 3.7 都行,叫他去好好想一想,規劃一下後寫個開發計劃,再叫另一個 AI 根據這個開發計劃實作功能
自動化 Gitingest 執行
程式碼會不斷更新,因此 Context 也需要同步更新。如果每次都手動執行 gitingest
來更新 Context,會非常麻煩。因此,我將這個流程寫成一個 Bash 指令,讓它自動執行:
#!/bin/bash
# 定義專案路徑
PROJECT_PATH="你的專案路徑"
# 切換到專案目錄
cd "$PROJECT_PATH"
echo "開始匯出專案程式碼..."
# 執行 gitingest 並輸出到 docs/codebase.txt
gitingest . \\\\
-i "**/pages/**/*.vue" \\\\
-i "**/components/**/*.vue" \\\\
-i "**/layouts/**/*.vue" \\\\
-i "**/store/**/*.js" \\\\
-i "**/composables/**/*.js" \\\\
-i "**/server/**/*.js" \\\\
-o docs/codebase.txt
echo "專案程式碼匯出完成,檔案已存至 docs/codebase.txt"
這樣,每次git commit後,順便執行這個指令,就能同步專案 Context 是最新的。可以讓它跟git commit一起自動執行更棒
專案產生的內容太大怎辦?
正常專案如果完整匯出的話,內容會非常多,所以匯出指令需要針對你的專案做優化,一些無用的檔案就排除,或是指定特定檔案就好
即使我已經挑重要的檔案了,我剛剛跑的最新結果

現在一般模型的 context window 好像都是 128K,這明顯超過了,我用 cursor、cline 或 Github Copilot 引用整個檔案,是沒問題的,看起來他們應該有再做壓縮或是 RAG 處理,所以就看狀況,我的心得是:
- 寫功能、問問題用加法:把檔案直接加入引用參考
- 寫文件、跨功能、跨模組、或是要引用很多檔案用減法:直接輸出專案 context
更新:VS Code 外掛,免安裝不要下指令
今天發現一個vscode外掛叫做 Repomix 星星數比 Gitingest 還多 XD
https://github.com/yamadashy/repomix
跟 Gitingest 一樣功能,但他整合到 vscode 內,不用使用指令,也挺方便的,懶得安裝的可以看看,點連結看他操作影片,真香
https://marketplace.visualstudio.com/items?itemName=DorianMassoulier.repomix-runner
如果你有什麼想法歡迎與我交流