منصوبے کے بارے میں

# manygit — ایک ملٹی-ریپوزٹری گٹ سی ایل آئی مینیجر manygit ایک واحد سی ایل آئی ٹول ہے جو lazygit طرز کا ٹرمینل یوآئی گٹ ریپوزٹریز کے پورے **درخت** تک لاتا ہے۔ اسے کسی فولڈر کی طرف اشارہ کریں، اور نیچے کی ہر ریپوزٹری ایک اسکرین پر ظاہر ہوتی ہے، جس میں اس کی برانچ اور یہ دکھایا جاتا ہے کہ آیا وہ آگے، پیچھے، یا گندی ہے۔ آپ نمایاں ریپو پر fetch، pull، push، یا برانچ تبدیل کر سکتے ہیں، نیز کمٹ گراف دیکھ سکتے ہیں، اسکرپٹس چلا سکتے ہیں، اور GitHub پل ریکویسٹس براؤز کر سکتے ہیں (جب `gh` سی ایل آئی انسٹال ہو)۔ بیچ رنرز جیسے `gita` یا `mani` کے برعکس، ریپوزٹریز رجسٹر کرنے کے لیے کوئی کنفیگ فائل نہیں ہے اور نہ ہی پڑھنے کے لیے کوئی آؤٹ پٹ ہے: manygit فولڈر چل کر انہیں دریافت کرتا ہے، اور آپ فہرست میں رہتے ہیں۔ ## اہم خصوصیات - **خودکار دریافت**: گٹ ریپوزٹریز کے لیے فولڈر اسکین کرتا ہے (ڈیفالٹ گہرائی 3) اور انہیں پیرنٹ ڈائریکٹری کے لحاظ سے گروپ کرتا ہے۔ - **متحد اسٹیٹس ویو**: برانچ، آگے/پیچھے کی تعداد، گندی حالت، اور صرف-لوکل ریپوزٹریز ایک نظر میں دیکھیں۔ - **براہ راست اعمال**: سنک (fetch + فاسٹ-فارورڈ pull)، push، برانچز چیک آؤٹ، تبدیلیاں مسترد کریں (تصدیق کے ساتھ)، ایک یا تمام ریپوزٹریز fetch کریں۔ - **کمٹ گراف**: کمٹ ہسٹری کا فل-اسکرین تصور۔ - **اسکرپٹ رنر**: ریپوزٹریز میں اسکرپٹس کی وضاحت اور چلائیں۔ - **GitHub PRs پین**: آپ کی کھلی PRs اور جائزہ کی درخواستیں درج کرتا ہے (`gh` سی ایل آئی درکار ہے)، PR کی برانچ کے ایک-کی چیک آؤٹ کے ساتھ۔ - **سادہ انگریزی گٹ**: "rebase current onto master" جیسی درخواستیں ٹائپ کریں اور ایک اے آئی ہارنیس انہیں آپ کی تصدیق کے لیے گٹ کمانڈز میں تبدیل کرتا ہے۔ - **ان-ریپو شیل**: نمایاں ریپو میں مستقل شیل پرامپٹ کھولیں تاکہ صوابدیدی کمانڈز چلا سکیں۔ - **فلٹرنگ**: ریپوزٹریز کو نام، برانچ، یا ٹیگ سے فلٹر کریں؛ صرف تبدیلیوں/آگے/پیچھے والی ریپوزٹریز دکھائیں۔ - **تھیمز**: متعدد رنگ تھیمز (default, serika_dark, dracula, nord, catppuccin, 8008)۔ - **خود-اپڈیٹنگ**: بلٹ-ان اپڈیٹر چینج لاگ ڈسپلے کے ساتھ۔ ## انسٹالیشن **لینکس** ```bash curl -fsSL https://raw.githubusercontent.com/rabeeh-ta/manygit/main/install.sh | bash ``` **میک او ایس** ```bash brew tap rabeeh-ta/manygit && brew trust rabeeh-ta/manygit && brew install manygit ``` **ونڈوز (پاور شیل)** ```powershell irm https://raw.githubusercontent.com/rabeeh-ta/manygit/main/install.ps1 | iex ``` دیگر طریقے: `go install github.com/rabeeh-ta/manygit@latest` (گو 1.24+)، یا سورس سے بنائیں۔ انسٹالر کو ٹیگ دے کر مخصوص ورژن پن کریں (مثلاً، `bash -s -- v1.0.7`)۔ ## استعمال ```bash manygit # موجودہ ڈائریکٹری اسکین کریں manygit --root ~/work # مخصوص فولڈر اسکین کریں manygit stats # GitHub ڈاؤن لوڈ کے اعدادوشمار پرنٹ کریں ``` ## کلیدی بائنڈنگز (خلاصہ) - `1`-`7`: پینز پر فوکس کریں (Repos, Scripts, Branches, PRs, Graph, Changes, Output) - `j`/`k`: فوکسڈ پینل میں منتقل ہوں - `enter`: سیاق و سباق پر منحصر (برانچز دیکھیں، چیک آؤٹ کریں، اسکرپٹ چلائیں، PR برانچ چیک آؤٹ کریں) - `s`/`p`: نمایاں ریپو سنک (fetch + ff-pull) / push کریں - `d`/`D`: تبدیلیاں مسترد کریں (صرف ٹریک شدہ / غیر ٹریک شدہ بھی) - `f`/`r`: ایک fetch کریں / تمام دوبارہ fetch کریں - `g`: فل-اسکرین کمٹ گراف - `n`: فل-اسکرین نیوز فیڈ (اے آئی-خلاصہ شدہ سرخیاں) - `t`: تازہ ترین ٹیگ ڈسپلے ٹوگل کریں - `F`: تبدیلیوں/آگے/پیچھے والی ریپوزٹریز پر فلٹر کریں - `/`: فہرستیں فلٹر کریں (ریپوزٹریز نام اور برانچ سے مماثل؛ برانچز نام سے؛ اسکرپٹس نام سے) - `:`: اے آئی ہارنیس کے ذریعے سادہ انگریزی گٹ کمانڈز - `!`: نمایاں ریپو میں شیل کھولیں - `o`: ریپو ایڈیٹر میں کھولیں - `z`: فوکسڈ پین زوم کریں - `esc`: اسٹیٹ کی ایک پرت پیچھے جائیں - `?`: ہیلپ اوورلے (کی بائنڈنگز اور سیٹنگز) - `q` یا `esc esc`: باہر نکلیں ## کنفیگریشن اختیاری کنفیگ `~/.config/manygit/config.yml` پر: ```yaml max_depth: 3 # روٹ کے نیچے تلاش کرنے کے لیے فولڈرز (1-5) open_cmd: code # `o` کے لیے ایڈیٹر کمانڈ theme: default # default | serika_dark | dracula | nord | catppuccin | 8008 status_glyphs: unicode # یا "ascii" ``` ## حفاظت - manygit لانچ فولڈر میں کبھی نہیں لکھتا۔ - خود سے، یہ کبھی فورس-پش، مرج، یا ریبیس نہیں کرتا؛ `s` fetch + فاسٹ-فارورڈ-صرف pull ہے، `p` سادہ push ہے۔ - واحد تباہ کن عمل جو یہ خود پیش کرتا ہے وہ تبدیلیاں مسترد کرنا ہے (`d`/`D`)، جو ہمیشہ تصدیق مانگتا ہے۔ - `!` شیل اور `:` اے آئی کمانڈز جان بوجھ کر مستثنیات ہیں، حفاظتی اقدامات کے ساتھ: کمانڈز چلانے سے پہلے دکھائی جاتی ہیں، گٹ دلیل کی فہرستوں کے ساتھ چلایا جاتا ہے (کوئی شیل پائپ نہیں)، اور خطرناک جھنڈے مسترد کر دیے جاتے ہیں۔ ## ریلیز (مینٹینر) ورژن ٹیگ پش کریں (مثلاً، `git tag v0.2.0 && git push origin v0.2.0`) — GitHub Actions بائنریز بناتا ہے اور ریلیز شائع کرتا ہے؛ انسٹالر اور خود-اپڈیٹر خودکار طور پر اسے اٹھا لیتے ہیں۔ ریلیز نوٹس ان-ایپ چینج لاگ بن جاتے ہیں۔ ## آن لائن آزمائیں ٹی یو آئی کا ایک کام کرنے والا پورٹ [لینڈنگ پیج](https://rabeeh-ta.github.io/manygit/) پر چلتا ہے — گٹ جعلی ہے، لیکن کیز حقیقی ہیں۔