Skip to content

Sử dụng cơ bản

Repomix được thiết kế để dễ sử dụng với các tùy chọn mặc định hợp lý, đồng thời cung cấp khả năng tùy chỉnh mạnh mẽ cho các trường hợp sử dụng nâng cao.

Đóng gói kho lưu trữ cục bộ

Đóng gói toàn bộ kho lưu trữ

Để đóng gói toàn bộ kho lưu trữ hiện tại của bạn, chỉ cần chạy Repomix trong thư mục gốc của dự án:

bash
repomix

Lệnh này sẽ tạo một tệp repomix-output.xml trong thư mục hiện tại, chứa toàn bộ codebase của bạn ở định dạng XML.

Đóng gói một thư mục cụ thể

Để đóng gói một thư mục cụ thể thay vì toàn bộ kho lưu trữ:

bash
repomix path/to/directory

Đóng gói các tệp cụ thể

Bạn có thể chỉ định các tệp hoặc mẫu cụ thể để đóng gói bằng cách sử dụng tùy chọn --include:

bash
repomix --include "src/**/*.ts,**/*.md"

Điều này sẽ đóng gói tất cả các tệp TypeScript trong thư mục src và tất cả các tệp Markdown trong toàn bộ dự án.

Đóng gói kho lưu trữ từ xa

Repomix có thể đóng gói các kho lưu trữ từ xa mà không cần clone chúng cục bộ:

bash
# Sử dụng định dạng rút gọn
repomix --remote yamadashy/repomix

# Sử dụng URL đầy đủ
repomix --remote https://github.com/yamadashy/repomix

# Chỉ định nhánh
repomix --remote https://github.com/yamadashy/repomix/tree/main

# Sử dụng URL của commit
repomix --remote https://github.com/yamadashy/repomix/commit/836abcd7335137228ad77feb28655d85712680f1

Nhập danh sách tệp (stdin)

Truyền đường dẫn tệp qua stdin để có tính linh hoạt tối đa:

bash
# Sử dụng lệnh find
find src -name "*.ts" -type f | repomix --stdin

# Sử dụng git để lấy các tệp được theo dõi
git ls-files "*.ts" | repomix --stdin

# Sử dụng grep để tìm tệp chứa nội dung cụ thể
grep -l "TODO" **/*.ts | repomix --stdin

# Sử dụng ripgrep để tìm tệp với nội dung cụ thể
rg -l "TODO|FIXME" --type ts | repomix --stdin

# Sử dụng ripgrep (rg) để tìm tệp
rg --files --type ts | repomix --stdin

# Sử dụng sharkdp/fd để tìm tệp
fd -e ts | repomix --stdin

# Sử dụng fzf để chọn từ tất cả các tệp
fzf -m | repomix --stdin

# Chọn tệp tương tác với fzf
find . -name "*.ts" -type f | fzf -m | repomix --stdin

# Sử dụng ls với các mẫu glob
ls src/**/*.ts | repomix --stdin

# Từ một tệp chứa đường dẫn tệp
cat file-list.txt | repomix --stdin

# Nhập trực tiếp với echo
echo -e "src/index.ts\nsrc/utils.ts" | repomix --stdin

Tùy chọn --stdin cho phép bạn truyền danh sách đường dẫn tệp tới Repomix, mang lại tính linh hoạt tối đa trong việc chọn tệp nào để đóng gói.

Khi sử dụng --stdin, các tệp được chỉ định thực sự được thêm vào các mẫu bao gồm. Điều này có nghĩa là hành vi bao gồm và bỏ qua bình thường vẫn áp dụng - các tệp được chỉ định qua stdin vẫn sẽ bị loại trừ nếu chúng khớp với các mẫu bỏ qua.

NOTE

Khi sử dụng --stdin, đường dẫn tệp có thể là tương đối hoặc tuyệt đối, và Repomix sẽ tự động xử lý việc phân giải đường dẫn và loại bỏ trùng lặp.

Tùy chọn đầu ra

Định dạng đầu ra

Repomix hỗ trợ nhiều định dạng đầu ra:

bash
# XML (mặc định)
repomix --style xml

# Markdown
repomix --style markdown

# Văn bản thuần túy
repomix --style plain

Tên tệp đầu ra tùy chỉnh

Để chỉ định tên tệp đầu ra:

bash
repomix --output-file my-codebase.xml

Xóa bình luận

Để xóa bình luận khỏi mã nguồn trong đầu ra:

bash
repomix --remove-comments

Hiển thị số dòng

Để bao gồm số dòng trong đầu ra:

bash
repomix --show-line-numbers

Bỏ qua tệp và thư mục

Sử dụng .gitignore

Theo mặc định, Repomix tôn trọng các tệp .gitignore của bạn. Để ghi đè hành vi này:

bash
repomix --no-respect-gitignore

Mẫu bỏ qua tùy chỉnh

Để chỉ định các mẫu bỏ qua bổ sung:

bash
repomix --ignore "**/*.log,tmp/,**/*.min.js"

Sử dụng .repomixignore

Bạn cũng có thể tạo một tệp .repomixignore trong thư mục gốc của dự án để chỉ định các mẫu bỏ qua cụ thể cho Repomix.

Tùy chọn nâng cao

Nén mã

bash
repomix --compress

# Bạn cũng có thể sử dụng nó với kho lưu trữ từ xa:
repomix --remote yamadashy/repomix --compress

Tối ưu hóa số lượng token

Hiểu được phân phối token của codebase là rất quan trọng để tối ưu hóa tương tác AI. Sử dụng tùy chọn --token-count-tree để trực quan hóa việc sử dụng token trong toàn bộ dự án của bạn:

bash
repomix --token-count-tree

Điều này hiển thị một chế độ xem phân cấp codebase của bạn với số lượng token:

🔢 Token Count Tree:
────────────────────
└── src/ (70,925 tokens)
    ├── cli/ (12,714 tokens)
    │   ├── actions/ (7,546 tokens)
    │   └── reporters/ (990 tokens)
    └── core/ (41,600 tokens)
        ├── file/ (10,098 tokens)
        └── output/ (5,808 tokens)

Bạn cũng có thể đặt ngưỡng token tối thiểu để tập trung vào các tệp lớn hơn:

bash
repomix --token-count-tree 1000  # Chỉ hiển thị tệp/thư mục có 1000+ token

Điều này giúp bạn:

  • Xác định các tệp nặng token - có thể vượt quá giới hạn ngữ cảnh AI
  • Tối ưu hóa lựa chọn tệp - sử dụng các mẫu --include--ignore
  • Lập kế hoạch chiến lược nén - nhắm mục tiêu những đóng góp lớn nhất
  • Cân bằng nội dung vs ngữ cảnh - khi chuẩn bị mã cho phân tích AI

Kiểm tra bảo mật

Để tắt kiểm tra bảo mật:

bash
repomix --no-security-check

Đếm token

Để tắt đếm token:

bash
repomix --no-token-count

Sử dụng tệp cấu hình

Để tạo một tệp cấu hình mẫu:

bash
repomix --init

Điều này sẽ tạo một tệp repomix.config.json mà bạn có thể chỉnh sửa để tùy chỉnh hành vi của Repomix.

Ví dụ về tệp cấu hình:

json
{
  "output": {
    "style": "markdown",
    "filePath": "custom-output.md",
    "removeComments": true,
    "showLineNumbers": true,
    "topFilesLength": 10
  },
  "ignore": {
    "customPatterns": ["*.test.ts", "docs/**"]
  }
}

Sử dụng với AI

Sau khi tạo tệp đầu ra, bạn có thể tải nó lên các công cụ AI như:

  • ChatGPT
  • Claude
  • Gemini
  • Perplexity
  • Phind
  • Và các LLM khác

Khi tải lên tệp, bạn có thể sử dụng một prompt như:

Tệp này chứa toàn bộ codebase của tôi. Tôi muốn bạn:
1. Phân tích cấu trúc tổng thể
2. Xác định các mẫu thiết kế được sử dụng
3. Đề xuất cải tiến

Tiếp theo là gì?

Released under the MIT License.