gac कमांड-लाइन उपयोग
June 22, 2026 · View on GitHub
English | 简体中文 | 繁體中文 | 日本語 | 한국어 | हिन्दी | Tiếng Việt | Français | Русский | Español | Português | Norsk | Svenska | Deutsch | Nederlands | Italiano
यह दस्तावेज़ uvx gac CLI टूल के लिए सभी उपलब्ध फ्लैग और विकल्पों का वर्णन करता है।
विषय-सूची
- gac कमांड-लाइन उपयोग
बेसिक उपयोग
uvx gac init
# फिर अपने प्रोवाइडर, मॉडल और API कुंजियों को इंटरैक्टिव रूप से कॉन्फ़िगर करने के लिए प्रॉम्प्ट का पालन करें
uvx gac
स्टेज्ड परिवर्तनों के लिए एक LLM-संचालित कमिट मैसेज जेनरेट करता है और पुष्टि के लिए प्रॉम्प्ट करता है। पुष्टि प्रॉम्प्ट निम्नलिखित स्वीकार करता है:
yयाyes- कमिट के साथ आगे बढ़ेंnयाno- कमिट रद्द करेंrयाreroll- समान संदर्भ के साथ कमिट मैसेज पुनर्जनरेट करेंeयाedit- कमिट मैसेज एडिट करें। डिफ़ॉल्ट रूप से, vi/emacs कीबाइंडिंग्स के साथ एक इन-प्लेस TUI खोलता है। अपना पसंदीदा एडिटर खोलने के लिएGAC_EDITORसेट करें (उदा., VS Code के लिएGAC_EDITOR=code gac, vim के लिएGAC_EDITOR=vim gac)- कोई भी अन्य टेक्स्ट - उस टेक्स्ट को फीडबैक के रूप में पुनर्जनरेट करें (जैसे,
make it shorter,focus on performance) - खाली इनपुट (सिर्फ Enter) - प्रॉम्प्ट फिर से दिखाएं
कोर वर्कफ़्लो फ्लैग
| फ्लैग / विकल्प | शॉर्ट | विवरण |
|---|---|---|
--add-all | -a | कमिट करने से पहले सभी परिवर्तनों को स्टेज करें |
--stage | -S | ट्री-आधारित TUI के साथ इंटरैक्टिव रूप से स्टेज करने के लिए फाइलें चुनें |
--group | -g | स्टेज्ड परिवर्तनों को कई तार्किक कमिट्स में ग्रुप करें |
--push | -p | कमिट करने के बाद परिवर्तनों को रिमोट पर पुश करें |
--yes | -y | बिना प्रॉम्प्ट किए स्वचालित रूप से कमिट की पुष्टि करें |
--dry-run | बिना कोई परिवर्तन किए होने वाला दिखाएं | |
--message-only | केवल जेनरेटेड कमिट मैसेज आउटपुट करें, कोई वास्तविक कमिट न करें | |
--no-verify | कमिट करते समय प्री-कमिट और लेफ्थुक हुक छोड़ें | |
--skip-secret-scan | स्टेज्ड परिवर्तनों में सीक्रेट्स के लिए सिक्योरिटी स्कैन छोड़ें | |
--no-verify-ssl | SSL प्रमाणपत्र सत्यापन छोड़ें (कॉर्पोरेट प्रॉक्सी के लिए उपयोगी) | |
--signoff | कमिट मैसेज में Signed-off-by लाइन जोड़ें (DCO अनुपालन) | |
--interactive | -i | बेहतर कमिट बनाने के लिए परिवर्तनों के बारे में प्रश्न पूछें |
नोट: --stage और --add-all एक साथ उपयोग नहीं किए जा सकते। इंटरैक्टिव रूप से स्टेज करने के लिए फाइलें चुनने के लिए --stage का उपयोग करें, और सभी परिवर्तनों को एक साथ स्टेज करने के लिए --add-all का उपयोग करें।
नोट: सभी परिवर्तनों को पहले स्टेज करने के लिए -a और -g को जोड़ें (यानी, -ag), फिर उन्हें कमिट्स में ग्रुप करें।
नोट: --group का उपयोग करते समय, अधिकतम आउटपुट टोकन सीमा कमिट की जा रही फाइलों की संख्या के आधार पर स्वचालित रूप से स्केल की जाती है (1-9 फाइलों के लिए 2x, 10-19 फाइलों के लिए 3x, 20-29 फाइलों के लिए 4x, 30+ फाइलों के लिए 5x)। यह सुनिश्चित करता है कि LLM के पास सभी ग्रुप्ड कमिट्स को बिना कटौती के जेनरेट करने के लिए पर्याप्त टोकन हों, यहां तक कि बड़े चेंजसेट के लिए भी।
नोट: --message-only और --group एक साथ उपयोग नहीं किए जा सकते। बाहरी प्रोसेसिंग के लिए कमिट मैसेज चाहिए हो तो --message-only का उपयोग करें, और वर्तमान git वर्कफ़्लो में कई कमिट व्यवस्थित करने के लिए --group का उपयोग करें।
नोट: --interactive फ्लैग आपके परिवर्तनों के बारे में प्रश्न पूछकर LLM को अतिरिक्त संदर्भ प्रदान करता है, जिससे अधिक सटीक और विस्तृत कमिट मैसेज मिलते हैं। यह विशेष रूप से जटिल परिवर्तनों के लिए उपयोगी है या जब आप सुनिश्चित करना चाहते हैं कि कमिट मैसेज आपके काम के पूरे संदर्भ को कैप्चर करे।
मैसेज कस्टमाइज़ेशन
| फ्लैग / विकल्प | शॉर्ट | विवरण |
|---|---|---|
--one-liner | -o | एक लाइन का कमिट मैसेज जेनरेट करें |
--verbose | -v | प्रेरणा, आर्किटेक्चर, और इम्पैक्ट के साथ विस्तृत कमिट मैसेज जेनरेट करें |
--hint <text> | -h | LLM को मार्गदर्शन देने के लिए एक हिंट जोड़ें |
--model <model> | -m | इस कमिट के लिए उपयोग करने के लिए मॉडल निर्दिष्ट करें |
--language <lang> | -l | भाषा को ओवरराइड करें (नाम या कोड: 'Spanish', 'es', 'zh-CN', 'ja') |
--scope | -s | कमिट के लिए उपयुक्त स्कोप अनुमान लगाएं |
--50-72 | कमिट मैसेज फॉर्मैटिंग के लिए 50/72 नियम लागू करें |
नोट: --50-72 फ्लैग 50/72 नियम लागू करता है जहां:
- सब्जेक्ट लाइन: अधिकतम 50 अक्षर
- बॉडी लाइन्स: प्रति लाइन अधिकतम 72 अक्षर
- यह
git log --onelineऔर GitHub के UI में कमिट मैसेज को पठनीय रखता है
आप हमेशा इस नियम को लागू करने के लिए अपनी .gac.env फाइल में GAC_USE_50_72_RULE=true भी सेट कर सकते हैं।
नोट: आप पुष्टि प्रॉम्प्ट पर सिर्फ टाइपिंग करके इंटरैक्टिव रूप से फीडबैक प्रदान कर सकते हैं - 'r' के साथ प्रीफिक्स करने की आवश्यकता नहीं है। सिंपल रीरोल के लिए r टाइप करें, मैसेज एडिट करने के लिए e टाइप करें (डिफ़ॉल्ट रूप से इन-प्लेस TUI, या सेट होने पर $GAC_EDITOR), या make it shorter जैसा फीडबैक सीधे टाइप करें।
आउटपुट और वर्बोसिटी
| फ्लैग / विकल्प | शॉर्ट | विवरण |
|---|---|---|
--quiet | -q | गलतियों को छोड़कर सभी आउटपुट को दबाएं |
--log-level <level> | लॉग स्तर सेट करें (debug, info, warning, error) | |
--show-prompt | कमिट मैसेज जेनरेशन के लिए उपयोग किए गए LLM प्रॉम्प्ट को प्रिंट करें |
हेल्प और वर्जन
| फ्लैग / विकल्प | शॉर्ट | विवरण |
|---|---|---|
--version | gac वर्जन दिखाएं और बाहर निकलें | |
--help | हेल्प मैसेज दिखाएं और बाहर निकलें |
उदाहरण वर्कफ़्लो
-
सभी परिवर्तनों को स्टेज करें और कमिट करें:
uvx gac -a -
एक कदम में कमिट और पुश करें:
uvx gac -ap -
एक लाइन का कमिट मैसेज जेनरेट करें:
uvx gac -o -
संरचित सेक्शन के साथ विस्तृत कमिट मैसेज जेनरेट करें:
uvx gac -v -
LLM के लिए एक हिंट जोड़ें:
uvx gac -h "Refactor authentication logic" -
कमिट के लिए स्कोप अनुमान लगाएं:
uvx gac -s -
स्टेज्ड परिवर्तनों को तार्किक कमिट्स में ग्रुप करें:
uvx gac -g # केवल उन फाइलों को ग्रुप करता है जिन्हें आपने पहले से स्टेज किया है -
सभी परिवर्तनों को ग्रुप करें (स्टेज्ड + अनस्टेज्ड) और ऑटो-कन्फर्म करें:
uvx gac -agy # सब कुछ स्टेज करता है, इसे ग्रुप करता है, और ऑटो-कन्फर्म करता है -
इस कमिट के लिए एक विशिष्ट मॉडल का उपयोग करें:
uvx gac -m anthropic:claude-haiku-4-5 -
एक विशिष्ट भाषा में कमिट मैसेज जेनरेट करें:
# भाषा कोड का उपयोग करके (छोटा) uvx gac -l zh-CN uvx gac -l ja uvx gac -l es # पूरे नामों का उपयोग करके uvx gac -l "Simplified Chinese" uvx gac -l Japanese uvx gac -l Spanish -
ड्राई रन (देखें कि क्या होगा):
uvx gac --dry-run -
केवल कमिट मैसेज प्राप्त करें (स्क्रिप्ट इंटीग्रेशन के लिए):
uvx gac --message-only # उदाहरण आउटपुट: feat: add user authentication system -
एक-लाइनर फ़ॉर्मेट में कमिट मैसेज प्राप्त करें:
uvx gac --message-only --one-liner # उदाहरण आउटपुट: feat: add user authentication system -
संदर्भ प्रदान करने के लिए इंटरैक्टिव मोड का उपयोग करें:
uvx gac -i # इन परिवर्तनों का मुख्य उद्देश्य क्या है? # आप कौन सी समस्या हल कर रहे हैं? # क्या उल्लेख करने लायक कोई इम्प्लीमेंटेशन डिटेल्स हैं? -
विस्तृत आउटपुट के साथ इंटरैक्टिव मोड:
uvx gac -i -v # प्रश्न पूछें और विस्तृत कमिट मैसेज जेनरेट करें
एडवांस्ड
- अधिक शक्तिशाली वर्कफ़्लो के लिए फ्लैग को जोड़ें (उदाहरण के लिए,
uvx gac -aypस्टेज करने, ऑटो-कन्फर्म करने और पुश करने के लिए) - LLM को भेजे गए प्रॉम्प्ट को डीबग या समीक्षा करने के लिए
--show-promptका उपयोग करें --log-levelया--quietके साथ वर्बोसिटी को एडजस्ट करें
प्री-कमिट और लेफ्थुक हुक को छोड़ना
--no-verify फ्लैग आपको अपने प्रोजेक्ट में कॉन्फ़िगर किए गए किसी भी प्री-कमिट या लेफ्थुक हुक को छोड़ने की अनुमति देता है:
uvx gac --no-verify # सभी प्री-कमिट और लेफ्थुक हुक छोड़ें
--no-verify का उपयोग कब करें:
- प्री-कमिट या लेफ्थुक हुक अस्थायी रूप से विफल हो रहे हों
- समय लेने वाले हुक के साथ काम करते समय
- अभी तक सभी जांचों को पास न करने वाले काम-प्रगति कोड को कमिट करते समय
नोट: सावधानी से उपयोग करें क्योंकि ये हुक कोड गुणवत्ता मानकों को बनाए रखते हैं।
सिक्योरिटी स्कैनिंग
uvx gac में बिल्ट-इन सिक्योरिटी स्कैनिंग शामिल है जो किसी भी AI API कॉल से पहले स्वचालित रूप से आपके स्टेज्ड परिवर्तनों में संभावित सीक्रेट्स और API कुंजियों का पता लगाती है। यदि सीक्रेट पाया जाता है, तो वर्कफ़्लो तुरंत रुक जाता है — कोई API कॉल नहीं होता। यह सुनिश्चित करता है कि आपका संवेदनशील डेटा कभी भी किसी AI मॉडल को न भेजा जाए। स्कैनर regex-आधारित पैटर्न मिलान का उपयोग करता है, LLM नहीं, इसलिए स्कैनिंग तेज़ है और पूरी तरह से लोकल चलती है।
सिक्योरिटी स्कैन छोड़ना:
uvx gac --skip-secret-scan # इस कमिट के लिए सिक्योरिटी स्कैन छोड़ें
स्थायी रूप से अक्षम करने के लिए: अपनी .gac.env फाइल में GAC_SKIP_SECRET_SCAN=true सेट करें।
कब छोड़ें:
- प्लेसहोल्डर कुंजियों के साथ उदाहरण कोड कमिट करते समय
- डमी क्रेडेंशियल्स वाले टेस्ट फिक्स्चर के साथ काम करते समय
- जब आपने सत्यापित कर लिया है कि परिवर्तन सुरक्षित हैं
नोट: स्कैनर सामान्य सीक्रेट फॉर्मेट का पता लगाने के लिए regex-आधारित पैटर्न मिलान (LLM नहीं) का उपयोग करता है। यह किसी भी AI API कॉल से पहले चलता है — यदि सीक्रेट मिलता है, तो कोई API कॉल नहीं होता। कमिट करने से पहले हमेशा अपने स्टेज्ड परिवर्तनों की समीक्षा करें।
Binary File Detection
uvx gac includes automatic detection of binary files in staged changes, preventing accidental commits of compiled files, images, and other binary assets that typically should not be in version control. The detector uses multiple strategies:
- Extension-based detection - Fast recognition of 60+ binary file types
- Null byte detection - Reliable indicator of binary content
- UTF-8 validity checking - Text files should be valid UTF-8 or ASCII
- Magic byte identification - Detects file types from file signatures
Supported binary types:
- Executables: .exe, .dll, .so, .dylib, .bin, .o, .obj, .lib, .a
- Archives: .zip, .tar, .gz, .bz2, .7z, .rar, .xz, .zst
- Images: .png, .jpg, .jpeg, .gif, .bmp, .ico, .svg, .tiff, .webp
- Media: .mp3, .wav, .ogg, .flac, .m4a, .aac, .mp4, .avi, .mkv, .mov, .wmv
- Fonts: .ttf, .otf, .woff, .woff2, .eot
- Documents: .pdf, .doc, .docx, .xls, .xlsx, .ppt, .pptx
- Databases: .db, .sqlite, .sqlite3, .mdb, .accdb
- Compiled code: .class, .jar, .war, .ear, .pyc, .pyd, .pyo, .beam, .hi
When binary files are detected:
uvx gac
# Output:
# BINARY FILE WARNING: Binary files detected!
#
# • image.png
# Type: Image file
# Size: 2.3 MB
#
# Binary files should typically be excluded from version control.
# Use .gitignore to prevent accidental commits of binary files.
#
# Options:
# [a] Abort commit (recommended)
# [c] Continue anyway (you know what you are doing)
# [r] Unstage binary file(s) and continue
#
# Choose an option [a]:
Best practices:
-
Add binary patterns to .gitignore:
# Compiled files *.exe *.dll *.so *.dylib *.o *.a # Images *.png *.jpg *.jpeg *.gif # Archives *.zip *.tar.gz # Python *.pyc __pycache__/ -
Use Git LFS for large binary files that must be tracked:
git lfs track "*.psd" git lfs track "*.zip" -
Commit binary files only when necessary:
- Icons and assets that are part of the codebase
- Test fixtures that need to be versioned
- Documentation images
Note: Binary detection runs automatically during the commit workflow (similar to secret scanning). There is no flag to disable it, as binary files generally should not be committed unless there is a specific reason. If you need to commit a binary file, choose the "Continue anyway" option or ensure it is properly documented in your project guidelines.
SSL प्रमाणपत्र सत्यापन
--no-verify-ssl फ्लैग आपको API कॉल के लिए SSL प्रमाणपत्र सत्यापन छोड़ने की अनुमति देता है:
uvx gac --no-verify-ssl # इस कमिट के लिए SSL सत्यापन छोड़ें
स्थायी रूप से सेट करने के लिए: अपनी .gac.env फाइल में GAC_NO_VERIFY_SSL=true सेट करें।
--no-verify-ssl का उपयोग कब करें:
- कॉर्पोरेट प्रॉक्सी SSL ट्रैफ़िक को इंटरसेप्ट कर रहे हों (MITM प्रॉक्सी)
- विकास परिवेश स्व-हस्ताक्षरित प्रमाणपत्रों का उपयोग कर रहे हों
- नेटवर्क सुरक्षा सेटिंग्स के कारण SSL प्रमाणपत्र त्रुटियाँ आ रही हों
नोट: इस विकल्प का उपयोग केवल विश्वसनीय नेटवर्क वातावरण में करें। SSL सत्यापन को अक्षम करने से सुरक्षा कम हो जाती है और आपके API अनुरोध मैन-इन-द-मिडल हमलों के प्रति संवेदनशील हो सकते हैं।
Signed-off-by लाइन (DCO अनुपालन)
uvx gac कमिट मैसेज में Signed-off-by लाइन जोड़ने का समर्थन करता है, जो कई ओपन-सोर्स प्रोजेक्ट्स में Developer Certificate of Origin (DCO) अनुपालन के लिए आवश्यक है।
Signoff जोड़ें :
uvx gac --signoff # कमिट मैसेज में Signed-off-by लाइन जोड़ें (DCO अनुपालन)
स्थायी रूप से सक्षम करने के लिए : अपनी .gac.env फ़ाइल में GAC_SIGNOFF=true सेट करें, या अपनी कॉन्फ़िगरेशन में signoff=true जोड़ें।
यह क्या करता है :
- कमिट मैसेज में
Signed-off-by: आपका नाम <aapka.email@example.com>जोड़ता है - आपकी git config (
user.nameऔरuser.email) का उपयोग करता है - Cherry Studio, Linux kernel और अन्य DCO का उपयोग करने वाले प्रोजेक्ट के लिए आवश्यक
Git पहचान सेटअप :
सुनिश्चित करें कि आपकी git config में सही नाम और ईमेल है :
git config --global user.name "Your Full Name"
git config --global user.email "your.email@example.com"
नोट : Signed-off-by लाइन कमिट के दौरान git द्वारा जोड़ी जाती है, मैसेज जेनरेशन के दौरान AI द्वारा नहीं। आप इसे प्रीव्यू में नहीं देखेंगे, लेकिन यह अंतिम कमिट में होगी (git log -1 से जांचें)।
कॉन्फ़िगरेशन नोट्स
- gac को सेट अप करने की अनुशंसित विधि
uvx gac initचलाना और इंटरैक्टिव प्रॉम्प्ट का पालन करना है। - पहले से कॉन्फ़िगर की गई भाषा है और सिर्फ प्रोवाइडर या मॉडल स्विच करने की जरूरत है? भाषा प्रश्नों के बिना सेटअप दोहराने के लिए
uvx gac modelचलाएं। - Claude Code का उपयोग कर रहे हैं? OAuth प्रमाणीकरण निर्देशों के लिए Claude Code सेटअप गाइड देखें।
- ChatGPT OAuth का उपयोग कर रहे हैं? ब्राउज़र-आधारित प्रमामाणिकरण निर्देशों के लिए ChatGPT OAuth सेटअप गाइड देखें।
- GitHub Copilot का उपयोग कर रहे हैं? Device Flow प्रमाणीकरण निर्देशों के लिए GitHub Copilot सेटअप गाइड देखें।
- gac निम्नलिखित प्राथमिकता के क्रम में कॉन्फ़िगरेशन लोड करता है:
- CLI फ्लैग
- प्रोजेक्ट-स्तर
.gac.env - यूज़र-स्तर
~/.gac.env - पर्यावरण चर
एडवांस्ड कॉन्फ़िगरेशन विकल्प
आप इन वैकल्पिक पर्यावरण चरों के साथ gac के व्यवहार को कस्टमाइज़ कर सकते हैं:
GAC_EDITOR=code --wait- पुष्टि प्रॉम्प्ट परeदबाने पर उपयोग किए जाने वाले एडिटर को ओवरराइड करें। डिफ़ॉल्ट रूप से,eएक इन-प्लेस TUI खोलता है;GAC_EDITORसेट करने पर बाहरी एडिटर पर स्विच होता है। आर्गुमेंट्स के साथ किसी भी एडिटर कमांड का समर्थन करता है। ज्ञात GUI एडिटर्स (VS Code, Cursor, Zed, Sublime Text) के लिए Wait फ्लैग्स (--wait/-w) स्वतः जोड़ दिए जाते हैं ताकि प्रोसेस तब तक ब्लॉक रहे जब तक आप फाइल बंद न करेंGAC_ALWAYS_INCLUDE_SCOPE=true- कमिट मैसेज में स्वचालित रूप से स्कोप अनुमान लगाएं और शामिल करें (जैसे,feat(auth):बनाम `feat:)GAC_ALWAYS_GROUPED=true- हमेशा समूहीकृत कमिट मोड का उपयोग करें (हमेशा-gया--groupफ्लैग पास करने के समान)GAC_VERBOSE=true- प्रेरणा, आर्किटेक्चर, और इम्पैक्ट सेक्शन के साथ विस्तृत कमिट मैसेज जेनरेट करेंGAC_USE_50_72_RULE=true- कमिट मैसेज के लिए हमेशा 50/72 नियम लागू करें (सब्जेक्ट ≤50 अक्षर, बॉडी लाइन्स ≤72 अक्षर)GAC_SIGNOFF=true- हमेशा कमिट में Signed-off-by लाइन जोड़ें (DCO अनुपालन के लिए)GAC_TEMPERATURE=0.7- LLM रचनात्मकता को नियंत्रित करें (0.0-1.0, कम = अधिक केंद्रित)GAC_REASONING_EFFORT=medium- विस्तारित सोच का समर्थन करने वाले मॉडलों के लिए तर्क/सोच की गहराई को नियंत्रित करें (low, medium, high, max)। प्रत्येक मॉडल का डिफ़ॉल्ट उपयोग करने के लिए अनसेट छोड़ें। केवल संगत प्रदाताओं (OpenAI शैली; Anthropic नहीं) को भेजा जाता है।GAC_MAX_OUTPUT_TOKENS=4096- जेनरेट किए गए मैसेज के लिए अधिकतम टोकन (--groupका उपयोग करते समय फाइल काउंट के आधार पर स्वचालित रूप से 2-5x स्केल किया गया; उच्च या निम्न जाने के लिए ओवरराइड करें)GAC_WARNING_LIMIT_TOKENS=4096- जब प्रॉम्प्ट इस टोकन काउंट से अधिक हो जाएं तो चेतावनी देंGAC_SYSTEM_PROMPT_PATH=/path/to/custom_prompt.txt- कमिट मैसेज जेनरेशन के लिए कस्टम सिस्टम प्रॉम्प्ट का उपयोग करेंGAC_LANGUAGE=Spanish- एक विशिष्ट भाषा में कमिट मैसेज जेनरेट करें (जैसे, Spanish, French, Japanese, German)। पूरे नाम या ISO कोड का समर्थन करता है (es, fr, ja, de, zh-CN)। इंटरैक्टिव चयन के लिएuvx gac languageका उपयोग करेंGAC_TRANSLATE_PREFIXES=true- कन्वेंशनल कमिट प्रीफिक्सेस (feat, fix, आदि) को टारगेट भाषा में अनुवाद करें (डिफ़ॉल्ट: false, प्रीफिक्स को अंग्रेजी में रखता है)GAC_SKIP_SECRET_SCAN=true- स्टेज्ड परिवर्तनों में सीक्रेट्स के लिए स्वचालित सिक्योरिटी स्कैनिंग अक्षम करें (सावधानी से उपयोग करें)GAC_NO_VERIFY_SSL=true- API कॉल के लिए SSL प्रमाणपत्र सत्यापन छोड़ें (SSL ट्रैफ़िक को इंटरसेप्ट करने वाले कॉर्पोरेट प्रॉक्सी के लिए उपयोगी)GAC_DISABLE_STATS=true- उपयोग सांख्यिकी ट्रैकिंग अक्षम करें (कोई स्टैट्स फाइल पढ़ने या लिखने का नहीं; मौजूदा डेटा संरक्षित रहता है)। केवल truthy मान सांख्यिकी अक्षम करते हैं; इसेfalse/0/no/offपर सेट करने से सांख्यिकी सक्षम रहती है, चर को हटाने के समान
पूर्ण कॉन्फ़िगरेशन टेम्प्लेट के लिए .gac.env.example देखें।
कस्टम सिस्टम प्रॉम्प्ट बनाने पर विस्तृत मार्गदर्शन के लिए, docs/CUSTOM_SYSTEM_PROMPTS.md देखें।
कॉन्फ़िगरेशन सबकमांड्स
निम्नलिखित उप-कमांड उपलब्ध हैं:
uvx gac init— प्रदाता, मॉडल और भाषा विन्यास के लिए इंटरैक्टिव सेटअप विज़ार्डuvx gac model— भाषा संकेतों के बिना प्रदाता/मॉडल/API कुंजी सेटअप (त्वरित स्विच के लिए आदर्श)uvx gac auth— सभी प्रदाताओं के लिए OAuth प्रमाणीकरण स्थिति दिखाएंuvx gac auth claude-code login— OAuth का उपयोग करके Claude Code में लॉगिन करें (ब्राउज़र खोलता है)uvx gac auth claude-code logout— Claude Code से लॉगआउट करें और संग्रहीत टोकन हटाएंuvx gac auth claude-code status— Claude Code प्रमाणीकरण स्थिति जांचेंuvx gac auth chatgpt login— OAuth का उपयोग करके ChatGPT में लॉगिन करें (ब्राउज़र खोलता है)uvx gac auth chatgpt logout— ChatGPT से लॉगआउट करें और संग्रहीत टोकन हटाएंuvx gac auth chatgpt status— ChatGPT प्रमाणीकरण स्थिति जांचेंuvx gac auth copilot login— Device Flow के माध्यम से GitHub Copilot में लॉगिन करेंuvx gac auth copilot login --host ghe.mycompany.com— GitHub Enterprise इंस्टेंस पर Copilot में लॉगिन करेंuvx gac auth copilot logout— Copilot से लॉगआउट करें और संग्रहीत टोकन हटाएंuvx gac auth copilot status— Copilot प्रमाणीकरण स्थिति जांचेंuvx gac config show— वर्तमान विन्यास दिखाएंuvx gac config set KEY VALUE—$HOME/.gac.envमें कॉन्फिग कुंजी सेट करेंuvx gac config get KEY— कॉन्फिग मान प्राप्त करेंuvx gac config unset KEY—$HOME/.gac.envसे कॉन्फिग कुंजी हटाएंuvx gac language(याuvx gac lang) — कमिट संदेशों के लिए इंटरैक्टिव भाषा चयनकर्ता (GAC_LANGUAGE सेट करता है)uvx gac editor(याuvx gac edit) — पुष्टिकरण प्रॉम्प्ट परeकुंजी के लिए इंटरैक्टिव एडिटर चयनकर्ता (GAC_EDITOR सेट करता है)uvx gac diff— स्टेज्ड/अस्टेज्ड परिवर्तनों, रंग और ट्रंकेशन विकल्पों के साथ फ़िल्टर किए गए git diff को दिखाएंuvx gac serve— AI एजेंट इंटीग्रेशन के लिए MCP सर्वर के रूप में GAC शुरू करें (stdio ट्रांसपोर्ट)uvx gac stats show— अपनी gac उपयोग सांख्यिकी देखें (कुल, स्ट्रीक, दैनिक और साप्ताहिक गतिविधि, टोकन उपयोग, औसत फ़ाइलों के साथ शीर्ष प्रोजेक्ट, गति और विलंबता के साथ शीर्ष मॉडल)uvx gac stats models— सभी मॉडल के विस्तृत आँकड़े, टोकन विवरण, गति, विलंबता और प्रति-कमिट विलंबता चार्ट के साथuvx gac stats projects— सभी प्रोजेक्ट के आँकड़े, टोकन विवरण और प्रति gac औसत फ़ाइलेंuvx gac stats recent— अंतिम 10 gac का इतिहास, प्रति-gac टोकन, गति, विलंबता, फ़ाइलें (-n 20अधिक के लिए)uvx gac stats reset— सभी सांख्यिकी को शून्य पर रीसेट करें (पुष्टि के लिए प्रॉम्प्ट करता है)uvx gac stats reset model <model-id>— किसी विशिष्ट मॉडल की सांख्यिकी रीसेट करें (बड़े/छोटे अक्षरों में भेद नहीं)
इंटरैक्टिव मोड
--interactive (-i) फ्लैग आपके परिवर्तनों के बारे में लक्षित प्रश्न पूछकर gac की कमिट मैसेज जेनरेशन को बेहतर बनाता है। यह अतिरिक्त संदर्भ LLM को अधिक सटीक, विस्तृत और संदर्भ-उपयुक्त कमिट मैसेज बनाने में मदद करता है।
यह कैसे काम करता है
जब आप --interactive का उपयोग करते हैं, तो gac आपसे इस तरह के प्रश्न पूछेगा:
- इन परिवर्तनों का मुख्य उद्देश्य क्या है? - उच्च-स्तरीय लक्ष्य को समझने में मदद करता है
- आप कौन सी समस्या हल कर रहे हैं? - प्रेरणा पर संदर्भ प्रदान करता है
- क्या उल्लेख करने लायक कोई इम्प्लीमेंटेशन डिटेल्स हैं? - तकनीकी विशिष्टताओं को कैप्चर करता है
- क्या कोई breaking changes हैं? - संभावित इम्पैक्ट समस्याओं की पहचान करता है
- क्या यह किसी issue या टिकट से संबंधित है? - प्रोजेक्ट प्रबंधन से जोड़ता है
इंटरैक्टिव मोड का उपयोग कब करें
इंटरैक्टिव मोड विशेष रूप से उपयोगी है:
- जटिल परिवर्तनों के लिए जहां संदर्भ diff से अकेले स्पष्ट नहीं है
- रिफैक्टरिंग काम के लिए जो कई फाइलों और अवधारणाओं में फैला हुआ है
- नई सुविधाओं के लिए जिनके लिए समग्र उद्देश्य की व्याख्या की आवश्यकता होती है
- बग फिक्स के लिए जहां जड़ का कारण तुरंत दिखाई नहीं देता
- प्रदर्शन अनुकूलन के लिए जहां तर्क स्पष्ट नहीं है
- कोड रिव्यू तैयारी - प्रश्न आपको अपने परिवर्तनों के बारे में सोचने में मदद करते हैं
उपयोग के उदाहरण
बेसिक इंटरैक्टिव मोड:
uvx gac -i
यह करेगा:
- आपको स्टेज्ड परिवर्तनों का सारांश दिखाएगा
- आपसे परिवर्तनों के बारे में प्रश्न पूछेगा
- आपके उत्तरों को शामिल करके एक कमिट मैसेज जेनरेट करेगा
- पुष्टि के लिए कहेगा (या
-yके साथ संयोजित होने पर स्वचालित रूप से पुष्टि करेगा)
स्टेज्ड परिवर्तनों के साथ इंटरैक्टिव मोड:
uvx gac -ai
# सभी परिवर्तनों को स्टेज करें, फिर बेहतर संदर्भ के लिए प्रश्न पूछें
विशिष्ट संकेतों के साथ इंटरैक्टिव मोड:
uvx gac -i -h "उपयोगकर्ता प्रोफाइल के लिए डेटाबेस माइग्रेशन"
# LLM को केंद्रित करने के लिए एक विशिष्ट संकेत प्रदान करते समय प्रश्न पूछें
विस्तृत आउटपुट के साथ इंटरैक्टिव मोड:
uvx gac -i -v
# प्रश्न पूछें और एक विस्तृत, संरचित कमिट मैसेज जेनरेट करें
स्वचालित रूप से पुष्टि किए गए इंटरैक्टिव मोड:
uvx gac -i -y
# प्रश्न पूछें लेकिन परिणामी कमिट को स्वचालित रूप से पुष्टि करें
प्रश्न-उत्तर वर्कफ़्लो
इंटरैक्टिव वर्कफ़्लो इस पैटर्न का अनुसरण करता है:
- परिवर्तनों की समीक्षा - gac दिखाता है कि आप क्या कमिट कर रहे हैं
- प्रश्नों के उत्तर दें - प्रत्येक प्रॉम्प्ट का उत्तर प्रासंगिक विवरणों के साथ करें
- संदर्भ वृद्धि - आपके उत्तर LLM प्रॉम्प्ट में जोड़े जाते हैं
- मैसेज जेनरेशन - LLM पूर्ण संदर्भ के साथ एक कमिट मैसेज बनाता है
- पुष्टि - कमिट की समीक्षा और पुष्टि करें (या
-yके साथ स्वचालित रूप से पुष्टि करें)
उपयोगी उत्तर प्रदान करने के लिए टिप्स:
- संक्षिप्त लेकिन व्यापक - बहुत अधिक शब्दावली के बिना मुख्य विवरण प्रदान करें
- "क्यों" पर ध्यान केंद्रित करें - अपने परिवर्तनों के पीछे तर्क समझाएं
- बाधाओं का उल्लेख करें - कोई सीमाएं या विशेष विचार नोट करें
- बाहरी संदर्भ से जोड़ें - issues, दस्तावेज़ीकरण, या डिज़ाइन दस्तावेज़ों का संदर्भ दें
- खाली उत्तर ठीक हैं - यदि कोई प्रश्न लागू नहीं होता है, तो सिर्फ Enter दबाएं
अन्य फ्लैग के साथ संयोजन
इंटरैक्टिव मोड अधिकांश अन्य फ्लैग के साथ अच्छी तरह काम करता है:
# सभी परिवर्तनों को स्टेज करें और प्रश्न पूछें
uvx gac -ai
# विस्तृत आउटपुट के साथ प्रश्न पूछें
uvx gac -i -v
सर्वोत्तम प्रथाएं
- जटिल PRs के लिए उपयोग करें - विशेष रूप से उपयोगी जो pull requests को विस्तृत विवरण की आवश्यकता होती है
- टीम सहयोग - प्रश्न आपको उन परिवर्तनों के बारे में सोचने में मदद करते हैं जिन्हें अन्य लोग समीक्षा करेंगे
- दस्तावेज़ीकरण तैयारी - आपके उत्तर release notes के आधार का निर्माण करने में मदद कर सकते हैं
- सीखने का उपकरण - प्रश्न कमिट मैसेज की अच्छी प्रथाओं को मजबूत करते हैं
- सरल परिवर्तनों के लिए छोड़ें - तुच्छ फिक्स के लिए, बेसिक मोड तेज हो सकता है
उपयोग सांख्यिकी
uvx gac हल्की उपयोग सांख्यिकी को ट्रैक करता है ताकि आप अपनी कमिट गतिविधि, स्ट्रीक, टोकन उपयोग, और सबसे सक्रिय प्रोजेक्ट और मॉडल देख सकें। आँकड़े स्थानीय रूप से ~/.gac_stats.json में संग्रहीत होते हैं और कभी कहीं नहीं भेजे जाते — कोई टेलीमेट्री नहीं।
क्या ट्रैक किया जाता है: कुल gac रन, कुल कमिट्स, कुल प्रॉम्प्ट और कम्प्लीशन टोकन, पहली/अंतिम उपयोग तिथियां, दैनिक और साप्ताहिक गणना (gacs, कमिट्स, टोकन), वर्तमान और सबसे लंबी स्ट्रीक, प्रति-प्रोजेक्ट गतिविधि (gacs, कमिट्स, प्रॉम्प्ट + कम्प्लीशन टोकन), और प्रति-मॉडल गतिविधि (gacs, प्रॉम्प्ट + कम्प्लीशन टोकन)।
क्या ट्रैक नहीं किया जाता: कमिट मैसेज, कोड सामग्री, फाइल पाथ, व्यक्तिगत जानकारी, या गणना, तिथियों, प्रोजेक्ट नामों (git remote या निर्देशिका नाम से प्राप्त), और मॉडल नामों के अलावा कुछ भी।
ऑप्ट-इन या ऑप्ट-आउट
uvx gac init पूछता है कि क्या आप सांख्यिकी सक्षम करना चाहते हैं और स्पष्ट रूप से बताता है कि क्या संग्रहीत किया जाता है। आप कभी भी अपना विचार बदल सकते हैं:
- सांख्यिकी सक्षम करें:
GAC_DISABLE_STATSहटाएं याfalse/0/no/off/खाली पर सेट करें। - सांख्यिकी अक्षम करें:
GAC_DISABLE_STATSको truthy मान पर सेट करें (true,1,yes,on)।
जब आप uvx gac init के दौरान सांख्यिकी से इनकार करते हैं और मौजूदा ~/.gac_stats.json का पता चलता है, तो आपको इसे हटाने का विकल्प दिया जाता है।
सांख्यिकी सबकमांड्स
| कमांड | विवरण |
|---|---|
uvx gac stats | अपनी सांख्यिकी दिखाएं (uvx gac stats show के समान) |
uvx gac stats show | पूर्ण सांख्यिकी प्रदर्शित करें: कुल, स्ट्रीक, दैनिक और साप्ताहिक गतिविधि, टोकन उपयोग, शीर्ष प्रोजेक्ट, शीर्ष मॉडल |
uvx gac stats models | सभी उपयोग किए गए मॉडल के विस्तृत आँकड़े, टोकन विवरण, गति, विलंबता और प्रति-कमिट विलंबता चार्ट के साथ |
uvx gac stats projects | सभी प्रोजेक्ट के आँकड़े, टोकन विवरण और प्रति gac औसत फ़ाइलें |
uvx gac stats recent | अंतिम 10 gac (-n 20 अधिक के लिए), प्रति-gac टोकन, गति, विलंबता, फ़ाइलें |
uvx gac stats reset | सभी सांख्यिकी को शून्य पर रीसेट करें (पुष्टि के लिए प्रॉम्प्ट करता है) |
uvx gac stats reset model <model-id> | किसी विशिष्ट मॉडल की सांख्यिकी रीसेट करें (बड़े/छोटे अक्षरों में भेद नहीं) |
उदाहरण
# अपनी समग्र सांख्यिकी देखें
uvx gac stats
# सभी उपयोग किए गए मॉडल का विस्तृत विवरण
uvx gac stats models
# सभी प्रोजेक्ट के लिए सांख्यिकी
uvx gac stats projects
# हालिया gac इतिहास
uvx gac stats recent -n 20
# सभी सांख्यिकी रीसेट करें (पुष्टि प्रॉम्प्ट के साथ)
uvx gac stats reset
# किसी विशिष्ट मॉडल की सांख्यिकी रीसेट करें
uvx gac stats reset model wafer:deepseek-v4-pro
आप क्या देखेंगे
uvx gac stats चलाने पर प्रदर्शित होता है:
- कुल gac और कमिट्स — आपने कितनी बार gac का उपयोग किया और उसने कितने कमिट बनाए
- वर्तमान और सबसे लंबी स्ट्रीक — लगातार दिन gac गतिविधि के साथ (5+ दिनों पर 🔥)
- गतिविधि सारांश — आज और इस सप्ताह के gac, कमिट और टोकन बनाम आपके पीक दिन और पीक सप्ताह
- शीर्ष प्रोजेक्ट — gac + कमिट गणना के अनुसार आपके 5 सबसे सक्रिय रेपो, प्रति gac औसत फ़ाइलें और टोकन उपयोग के साथ
- शीर्ष मॉडल — आपके 5 सबसे अधिक उपयोग किए गए मॉडल, समग्र गति, विलंबता और टोकन उपयोग के साथ
uvx gac stats projects सभी प्रोजेक्ट दिखाता है (केवल शीर्ष 5 नहीं) जिनमें:
- सभी प्रोजेक्ट तालिका — गतिविधि के अनुसार क्रमबद्ध प्रत्येक प्रोजेक्ट, gac गणना, कमिट गणना, प्रति-gac कमिट अनुपात, प्रति gac औसत फ़ाइलें, प्रॉम्प्ट टोकन, कम्प्लीशन टोकन, रीजनिंग टोकन, कुल टोकन और कुल gac का हिस्सा
- गतिविधि बार चार्ट — प्रति प्रोजेक्ट सापेक्ष gac गणना दिखाने वाली क्षैतिज बार
- टोकन उपयोग बार चार्ट — प्रति प्रोजेक्ट सापेक्ष टोकन खपत दिखाने वाली क्षैतिज बार
uvx gac stats models सभी मॉडल दिखाता है (केवल शीर्ष 5 नहीं) जिनमें:
- सभी मॉडल तालिका — गतिविधि के अनुसार क्रमबद्ध प्रत्येक उपयोग किया गया मॉडल, gac गणना, कमिट गणना, समग्र गति (टोकन/सेकंड), समग्र विलंबता, प्रॉम्प्ट टोकन, कम्प्लीशन टोकन, रीजनिंग टोकन और कुल टोकन के साथ
- गति तुलना (30d) चार्ट — हालिया (अंतिम 30 दिन) मॉडल गति का क्षैतिज बार चार्ट, सबसे तेज़ से सबसे धीमे तक क्रमबद्ध, गति प्रतिशत के अनुसार रंग-कोडित (🟡 तेज़, 🟢 तीव्र, 🔵 मध्यम, 🔘 धीमा)
- विलंबता तुलना (30d) चार्ट — हालिया प्रति-कॉल विलंबता का क्षैतिज बार चार्ट, सबसे कम से सबसे अधिक तक क्रमबद्ध
- प्रति-कमिट विलंबता (30d) चार्ट — हालिया विलंबता को कमिट गणना से विभाजित क्षैतिज बार चार्ट, प्रति कमिट वास्तविक प्रतीक्षा समय दिखाता है (एक मॉडल जो 10s gac में 5 कमिट करता है, 2s/कमिट लागत vs एक जो 25s gac में 1 कमिट 25s/कमिट पर करता है)
- उच्च स्कोर उत्सव — 🏆 नए दैनिक, साप्ताहिक, टोकन, या स्ट्रीक रिकॉर्ड स्थापित करने पर ट्रॉफी; 🥈 उन्हें बराबरी करने पर
- प्रोत्साहन संदेश — आपकी गतिविधि के आधार पर संदर्भात्मक प्रोत्साहन
uvx gac stats recent आपके अंतिम 10 gac दिखाता है (-n से कॉन्फ़िगरेबल):
- हालिया Gac तालिका — प्रत्येक gac सापेक्ष समय, प्रोजेक्ट, मॉडल, कमिट गणना, फ़ाइलें, गति, विलंबता और प्रति-gac टोकन विवरण के साथ
सांख्यिकी अक्षम करना
GAC_DISABLE_STATS पर्यावरण चर को truthy मान पर सेट करें:
# सांख्यिकी ट्रैकिंग अक्षम करें
export GAC_DISABLE_STATS=true
# या .gac.env में
GAC_DISABLE_STATS=true
Falsy मान (false, 0, no, off, खाली) सांख्यिकी सक्षम रखते हैं — चर को हटाने के समान।
अक्षम होने पर, gac सभी सांख्यिकी रिकॉर्डिंग को छोड़ देता है — कोई फाइल पढ़ने या लिखने का नहीं होता। मौजूदा डेटा संरक्षित रहता है लेकिन तब तक अपडेट नहीं होगा जब तक आप इसे पुनः सक्षम न करें।
डिस्कॉर्ड वेबहुक नोटिफिकेशन
gac हर बार जब आप कमिट करते हैं तो आपके चैनल के इंटीग्रेशन सेटिंग्स से वेबहुक URL का उपयोग करके एक डिस्कॉर्ड चैनल को नोटिफाई कर सकता है। यह इंटीग्रेशन opt-in है: यह कुछ भी नहीं करता जब तक आप स्पष्ट रूप से एक वेबहुक URL कॉन्फ़िगर नहीं करते।
सेटअप
समर्पित discord सबकमांड समूह का उपयोग करें:
uvx gac discord setup # वेबहुक URL को इंटरैक्टिव रूप से कॉन्फ़िगर करें
uvx gac discord show # दिखाएँ कि क्या वेबहुक कॉन्फ़िगर किया गया है (URL मास्क किया गया)
uvx gac discord test # कॉन्फ़िगर किए गए वेबहुक पर एक टेस्ट नोटिफिकेशन भेजें
uvx gac discord remove # कॉन्फ़िगर किए गए वेबहुक URL को हटाएँ
वैकल्पिक रूप से, चर को सीधे $HOME/.gac.env (या ./.gac.env) में सेट करें:
GAC_DISCORD_WEBHOOK_URL='https://discord.com/api/webhooks/XXXX/YYYY'
व्यवहार
- हर सफल कमिट के बाद फायर होता है (एकल और समूहीकृत वर्कफ़्लो)।
--dry-runऔर--message-onlyपर छोड़ दिया जाता है। - एक हरी धारी के साथ एक GitHub-शैली एम्बेड पोस्ट करता है, ऑथर पंक्ति के रूप में रेपो + ब्रांच, टाइटल के रूप में कमिट विषय, विवरण के रूप में कमिट बॉडी, और फुटर में छोटा SHA।
- gac अवतार और यूजरनेम
gacका उपयोग करता है। - वेबहुक विफलताएँ WARNING पर लॉग होती हैं और आपके कमिट को कभी भी ब्लॉक नहीं करतीं।
- डिसेबल करने के लिए
GAC_DISCORD_WEBHOOK_URLको अनसेट (या खाली) छोड़ दें।gac initप्रभावित नहीं होता — डिस्कॉर्ड सेटअप केवलgac discordके अंतर्गत है।
मदद प्राप्त करना
- MCP सर्वर सेटअप (AI एजेंट इंटीग्रेशन) के लिए, docs/MCP.md देखें
- कस्टम सिस्टम प्रॉम्प्ट के लिए, docs/CUSTOM_SYSTEM_PROMPTS.md देखें
- Claude Code OAuth सेटअप के लिए, docs/CLAUDE_CODE.md देखें
- ChatGPT OAuth सेटअप के लिए, docs/CHATGPT_OAUTH.md देखें
- GitHub Copilot सेटअप के लिए, GITHUB_COPILOT.md देखें
- ट्रबलशूटिंग और एडवांस्ड टिप्स के लिए, docs/TROUBLESHOOTING.md देखें
- इंस्टॉलेशन और कॉन्फ़िगरेशन के लिए, README.md#installation-and-configuration देखें
- योगदान करने के लिए, docs/CONTRIBUTING.md देखें
- लाइसेंस जानकारी: LICENSE