Gitingest:把整個專案變成 Prompt

Gitingest:把整個專案變成 Prompt

文章目錄(7 節)

先說結論

如果你平常已經使用 AI 輔助工具進行程式開發(Github Copilot,Cursor,Cline 等),推薦你這個工具,Gitingest 可以將你的整個專案轉換為 AI 友善的 Prompt Context,你可以用這個:

產生專案文件

讓 AI 直接從完整的程式碼內容生成 README、API 文件,甚至是技術規格書。

生成測試程式

AI 可以根據完整的程式碼結構幫你寫測試程式,聽了TDD(測試驅動開發)N年,終於在今年開始寫測試了(淚)。

生成開發計劃

讓 AI 根據上面步驟生成的專案文件和程式碼,再幫我寫開發計劃,終於可以用嘴寫程式了(淚again)。

測試文件驅動開發(TDDD?)

結合測試驅動開發(TDD)與文件驅動開發(DDD),讓 AI 先根據開發計劃寫測試,寫完測試寫程式,寫完程式再測試,舒服。

Gitingest能幹麻?

Gitingest 把整個專案變成 Prompt Context 的路徑 在本機對專案下一行 gitingest 指令,整包程式碼會被輸出成一個純文字檔 codebase.txt。把這個檔案貼給 Copilot、Cursor、Cline 這類 AI 工具,就能請它產出 README、API 文件、測試程式與開發計劃。 一行指令 輸出 貼給 AI 請它做事 你的專案 整包程式碼 gitingest . 在本機執行 codebase.txt 一個純文字檔 AI 工具 Copilot、Cursor、Cline 產出 README、API 文件、測試程式 開發計劃、測試驅動開發

左右滑動看完整內容

一行指令把整包專案壓成一個純文字檔,再餵給 AI 工具
輸出的專案結構長這樣
輸出的專案結構長這樣
輸出的程式碼長這樣
輸出的程式碼長這樣

Gitingest 怎麼用?

官網的線上服務

Gitingest 官網提供了分析公開 Git Repository 的功能,但我們的專案通常是私有的,無法直接使用這個線上服務。

本地的 Command Line 工具

因此,我們需要安裝他的 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

範例指令

  1. 分析專案但排除 node_modules
    gitingest . -e "**/node_modules/**" -o output.txt
  2. 僅分析特定類型的檔案(如 Vue 檔案)
    gitingest . -i "**/*.vue" -o vue_files.txt
  3. 排除測試與構建產物,只保留業務程式碼
    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 綁在一起

這樣,每次git commit後,順便執行這個指令,就能同步專案 Context 是最新的。可以讓它跟git commit一起自動執行更棒

專案產生的內容太大怎辦?

正常專案如果完整匯出的話,內容會非常多,所以匯出指令需要針對你的專案做優化,一些無用的檔案就排除,或是指定特定檔案就好

即使我已經挑重要的檔案了,我剛剛跑的最新結果

gitingest 執行後的統計輸出,估算 token 數量 300.2k
整個專案預估 token 數量 300K

現在一般模型的 context window 好像都是 128K,這明顯超過了,我用 cursor、cline 或 Github Copilot 引用整個檔案,是沒問題的,看起來他們應該有再做壓縮或是 RAG 處理,所以就看狀況,我的心得是:

用加法

寫功能、問問題:把檔案直接加入引用參考

用減法

寫文件、跨功能、跨模組、或是要引用很多檔案:直接輸出專案 context

更新:VS Code 外掛,免安裝不要下指令

今天發現一個vscode外掛叫做 Repomix 星星數比 Gitingest 還多 XD

跟 Gitingest 一樣功能,但他整合到 vscode 內,不用使用指令,也挺方便的,懶得安裝的可以看看,點連結看他操作影片,真香

如果你有什麼想法歡迎與我交流

留言