প্রকল্প সম্পর্কে
# manygit — একটি মাল্টি-রিপোজিটরি গিট CLI ম্যানেজার
manygit একটি একক CLI টুল যা গিট রিপোজিটরির একটি সম্পূর্ণ **ট্রি**-তে lazygit-স্টাইলের টার্মিনাল UI নিয়ে আসে। এটি একটি ফোল্ডারে নির্দেশ করুন, এবং নীচের প্রতিটি রিপো এক স্ক্রিনে দেখা যায়, তার ব্রাঞ্চ এবং এটি ahead, behind, বা dirty কিনা দেখায়। আপনি হাইলাইট করা রিপোতে fetch, pull, push, বা ব্রাঞ্চ পরিবর্তন করতে পারেন, পাশাপাশি কমিট গ্রাফ দেখতে, স্ক্রিপ্ট চালাতে এবং GitHub pull requests ব্রাউজ করতে পারেন (যখন `gh` CLI ইনস্টল থাকে)।
`gita` বা `mani`-এর মতো ব্যাচ রানারদের থেকে ভিন্ন, রিপো নিবন্ধনের জন্য কোনো কনফিগ ফাইল নেই এবং পড়ার জন্য কোনো আউটপুট নেই: manygit ফোল্ডার হাঁটার মাধ্যমে সেগুলি আবিষ্কার করে, এবং আপনি তালিকায় থাকেন।
## মূল বৈশিষ্ট্য
- **স্বয়ংক্রিয় আবিষ্কার**: গিট রিপোর জন্য একটি ফোল্ডার (ডিফল্ট গভীরতা 3) স্ক্যান করে এবং প্যারেন্ট ডিরেক্টরি অনুসারে গ্রুপ করে।
- **একীভূত অবস্থা ভিউ**: এক নজরে ব্রাঞ্চ, ahead/behind সংখ্যা, dirty অবস্থা এবং শুধুমাত্র-স্থানীয় রিপো দেখুন।
- **সরাসরি ক্রিয়া**: Sync (fetch + fast-forward pull), push, checkout ব্রাঞ্চ, পরিবর্তন বাতিল (নিশ্চিতকরণ সহ), এক বা সব রিপো fetch করুন।
- **কমিট গ্রাফ**: কমিট ইতিহাসের পূর্ণ-স্ক্রিন ভিজ্যুয়ালাইজেশন।
- **স্ক্রিপ্ট রানার**: রিপো জুড়ে স্ক্রিপ্ট সংজ্ঞায়িত এবং চালান।
- **GitHub PRs প্যান**: আপনার খোলা PR এবং পর্যালোচনা অনুরোধ তালিকাভুক্ত করে (`gh` CLI প্রয়োজন), PR-এর ব্রাঞ্চ এক-কি checkout সহ।
- **সরল-ইংরেজি গিট**: "rebase current onto master"-এর মতো অনুরোধ টাইপ করুন এবং একটি AI হারনেস সেগুলিকে আপনার নিশ্চিতকরণের জন্য গিট কমান্ডে রূপান্তর করে।
- **রিপো-ভিতরে শেল**: নির্বিচারে কমান্ড চালানোর জন্য হাইলাইট করা রিপোতে একটি স্থায়ী শেল প্রম্পট খুলুন।
- **ফিল্টারিং**: নাম, ব্রাঞ্চ বা ট্যাগ দ্বারা রিপো ফিল্টার করুন; শুধুমাত্র পরিবর্তন/ahead/behind সহ রিপো দেখান।
- **থিম**: একাধিক রঙের থিম (default, serika_dark, dracula, nord, catppuccin, 8008)।
- **স্ব-আপডেট**: চেঞ্জলগ প্রদর্শন সহ অন্তর্নির্মিত আপডেটার।
## ইনস্টলেশন
**Linux**
```bash
curl -fsSL https://raw.githubusercontent.com/rabeeh-ta/manygit/main/install.sh | bash
```
**macOS**
```bash
brew tap rabeeh-ta/manygit && brew trust rabeeh-ta/manygit && brew install manygit
```
**Windows (PowerShell)**
```powershell
irm https://raw.githubusercontent.com/rabeeh-ta/manygit/main/install.ps1 | iex
```
অন্যান্য পদ্ধতি: `go install github.com/rabeeh-ta/manygit@latest` (Go 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`: প্রসঙ্গ-নির্ভর (ব্রাঞ্চ দেখুন, checkout, স্ক্রিপ্ট চালান, PR ব্রাঞ্চ checkout)
- `s`/`p`: হাইলাইট করা রিপো সিঙ্ক (fetch + ff-pull) / push করুন
- `d`/`D`: পরিবর্তন বাতিল করুন (শুধুমাত্র ট্র্যাকড / আনট্র্যাকডও)
- `f`/`r`: একটি fetch / সব পুনরায় fetch করুন
- `g`: পূর্ণ-স্ক্রিন কমিট গ্রাফ
- `n`: পূর্ণ-স্ক্রিন নিউজ ফিড (AI-সংক্ষিপ্ত শিরোনাম)
- `t`: সর্বশেষ ট্যাগ প্রদর্শন টগল করুন
- `F`: পরিবর্তন/ahead/behind সহ রিপোতে ফিল্টার করুন
- `/`: তালিকা ফিল্টার করুন (রিপো নাম এবং ব্রাঞ্চ মেলে; ব্রাঞ্চ নাম মেলে; স্ক্রিপ্ট নাম মেলে)
- `:`: AI হারনেসের মাধ্যমে সরল-ইংরেজি গিট কমান্ড
- `!`: হাইলাইট করা রিপোতে শেল খুলুন
- `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 লঞ্চ ফোল্ডারে কখনও লেখে না।
- নিজে থেকে, এটি কখনও force-push, merge, বা rebase করে না; `s` হল fetch + fast-forward-only pull, `p` হল সাধারণ push।
- এটি নিজে থেকে দেওয়া একমাত্র ধ্বংসাত্মক ক্রিয়া হল পরিবর্তন বাতিল করা (`d`/`D`), যা সর্বদা নিশ্চিতকরণ চায়।
- `!` শেল এবং `:` AI কমান্ডগুলি ইচ্ছাকৃত ব্যতিক্রম, সুরক্ষা সহ: কমান্ড চালানোর আগে দেখানো হয়, গিট আর্গুমেন্ট তালিকা দিয়ে চালানো হয় (কোনো শেল পাইপ নেই), এবং বিপজ্জনক ফ্ল্যাগ প্রত্যাখ্যান করা হয়।
## রিলিজ (মেইনটেইনার)
একটি সংস্করণ ট্যাগ পুশ করুন (যেমন, `git tag v0.2.0 && git push origin v0.2.0`) — GitHub Actions বাইনারি বিল্ড করে এবং রিলিজ প্রকাশ করে; ইনস্টলার এবং স্ব-আপডেটার স্বয়ংক্রিয়ভাবে এটি গ্রহণ করে। রিলিজ নোট অ্যাপ-ভিতরের চেঞ্জলগ হয়ে যায়।
## অনলাইনে চেষ্টা করুন
TUI-এর একটি কার্যকরী পোর্ট [ল্যান্ডিং পেজে](https://rabeeh-ta.github.io/manygit/) চলে — গিটটি নকল, কিন্তু কীগুলি আসল।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.