GitWizard কী?
GitWizard হলো একটি প্রফেশনাল গ্রেড পাইথন CLI টুল যা Git কমিট জেনারেশন, পুশিং এবং রিপোজিটরি ম্যানেজমেন্ট সম্পূর্ণভাবে অটোমেট করে। এটি ডেভেলপারদের জন্য তৈরি করা হয়েছে যারা পুনরাবৃত্তিমূলক git অপারেশন অটোমেট করে সময় বাঁচাতে চান এবং পরিষ্কার ও অর্থবহ কমিট হিস্ট্রি বজায় রাখতে চান।
আপনি একটি সম্পূর্ণ নতুন প্রজেক্ট শুরু করছেন বা বিদ্যমান রিপোজিটরি ম্যানেজ করছেন, GitWizard প্রাথমিক GitHub সেটআপ থেকে শুরু করে স্মার্ট diff-ভিত্তিক কমিট মেসেজ জেনারেশন পর্যন্ত সবকিছু পরিচালনা করার জন্য শক্তিশালী কমান্ড প্রদান করে। টুলটি আপনার প্রকৃত কোড পরিবর্তনগুলো বিশ্লেষণ করে এবং স্বয়ংক্রিয়ভাবে বর্ণনামূলক কমিট মেসেজ তৈরি করে, ভেরিয়েবল রিনেমের মতো শব্দ-স্তরের প্রতিস্থাপন সনাক্ত করে, এবং অটোমেটেড ও ম্যানুয়াল উভয় কমিট ওয়ার্কফ্লো সাপোর্ট করে।
টুলটি ২৪০+ প্রোগ্রামিং ও স্ক্রিপ্টিং ভাষা সাপোর্ট করে প্রতিটি প্রধান ক্যাটাগরিতে, যা একে আধুনিক ডেভেলপমেন্ট এনভায়রনমেন্টের জন্য সত্যিকারের ইউনিভার্সাল করে তোলে। এটি সম্পূর্ণ লোকালি কাজ করে, কোনো কোড বাহ্যিক সার্ভারে পাঠায় না, কোনো API টোকেনের প্রয়োজন হয় না, এবং Windows, macOS ও Linux এ কাজ করে।
প্রধান বৈশিষ্ট্যসমূহ
GitHub Auth ইন্টিগ্রেশন
স্বয়ংক্রিয় VS Code এবং GitHub CLI অথরাইজেশন চেক প্রথমবার ব্যবহারকারীদের জন্য ইন্টারেক্টিভ সেটআপ গাইডেন্সসহ।
ওয়ান-কমান্ড সেটআপ
gitwizard setup সবকিছু হ্যান্ডেল করে: git init, স্টেজিং, কমিট, রিমোট কানেকশন এবং পুশ — একটি ফ্লোতে।
স্মার্ট Diff-ভিত্তিক কমিট
git diff আউটপুট স্বয়ংক্রিয়ভাবে বিশ্লেষণ করে অর্থবহ, বর্ণনামূলক কমিট মেসেজ জেনারেট করে।
শব্দ প্রতিস্থাপন সনাক্তকরণ
টেক্সট রিনেম সনাক্ত করে (যেমন, ভেরিয়েবল Fahim থেকে Hasib) এবং কমিট মেসেজে অন্তর্ভুক্ত করে।
অ্যাটমিক পার-ফাইল কমিট
--atomic ফ্ল্যাগ প্রতিটি ফাইলের জন্য আলাদা কমিট তৈরি করে, আপনার git হিস্ট্রি পরিষ্কার ও গ্র্যানুলার রাখে।
বাল্ক অটো-কমিট
কাস্টমাইজযোগ্য ডিলে, মেসেজ টেমপ্লেট এবং ঐচ্ছিক অটো-পুশ সহ একাধিক অটোমেটেড কমিট জেনারেট করুন।
অটো ও ম্যানুয়াল মোড
সম্পূর্ণ স্বয়ংক্রিয় কমিট মেসেজ জেনারেশন ব্যবহার করুন বা যেকোনো সময় নিজের কাস্টম মেসেজ দিন।
২৪০+ ভাষা সাপোর্ট
প্রোগ্রামিং ভাষা বুদ্ধিমানভাবে সনাক্ত করে এবং অটো-কমিট অপারেশনের জন্য সঠিক কমেন্ট সিনট্যাক্স প্রয়োগ করে।
ড্রাই-রান সিমুলেশন
--dry-run ফ্ল্যাগ ব্যবহার করে কোনো আসল পরিবর্তন না করেই কী হবে তা প্রিভিউ করুন।
রিয়েল-টাইম প্রগ্রেস বার
সুন্দর ASCII প্রগ্রেস বার যা রিয়েল টাইমে কমিট জেনারেশনের অগ্রগতি দেখায়।
নিরাপদ ইন্টারাপ্ট হ্যান্ডলিং
যেকোনো মুহূর্তে Ctrl+C ইন্টারাপ্ট গ্রেসফুলি হ্যান্ডেল করে আপনার রিপোজিটরি অবস্থা নষ্ট না করে।
সম্পূর্ণ লোকাল এক্সিকিউশন
সমস্ত অপারেশন লোকালি চলে। কোনো কোড বাহ্যিক সার্ভারে পাঠানো হয় না। কোনো API টোকেন লাগে না।
ক্রস-প্ল্যাটফর্ম
স্বয়ংক্রিয় কালার ডিটেকশনসহ Windows, macOS এবং Linux এ নিরবচ্ছন্নভাবে কাজ করে।
ইনস্টলেশন
PyPI থেকে একটি কমান্ডে ইনস্টল করুন:
pip install gitwizard-pro
প্রয়োজনীয়তা
Python 3.7 থেকে 3.14 পর্যন্ত সম্পূর্ণভাবে সাপোর্টেড
আপনার সিস্টেম PATH এ ইনস্টল থাকতে হবে
অথেনটিকেশন ফিচারের জন্য প্রয়োজন। cli.github.com থেকে ইনস্টল করুন
আপগ্রেড
pip install gitwizard-pro --upgrade
দ্রুত শুরু
আপনার যদি কোনো প্রজেক্ট থাকে যা GitHub এ এখনও কানেক্ট না হয়ে থাকে, তাহলে সেটআপ কমান্ড সবকিছু হ্যান্ডেল করবে:
gitwizard setup
এই ইন্টারেক্টিভ কমান্ডটি আপনাকে ধাপে ধাপে গাইড করবে:
যাচাই করে আপনি GitHub CLI তে লগইন আছেন কিনা। না থাকলে, ধাপে ধাপে অথেনটিকেশন প্রসেস গাইড করে।
প্রজেক্টটি ইতিমধ্যে git রিপোজিটরি না হলে git init রান করে।
আপনার প্রজেক্ট ডিরেক্টরির প্রতিটি ফাইল স্টেজ করতে git add . স্বয়ংক্রিয়ভাবে রান করে।
কমিট মেসেজের জন্য প্রম্পট করে (টাইমস্ট্যাম্প-ভিত্তিক ডিফল্ট দেয়) এবং প্রাথমিক কমিট তৈরি করে।
আপনার GitHub রিপোজিটরি URL এর জন্য প্রম্পট করে এবং এটিকে origin রিমোট হিসেবে কনফিগার করে।
কমিটটি স্বয়ংক্রিয়ভাবে GitHub এ পুশ করে। রেগুলার পুশ ব্যর্থ হলে, ফোর্স পুশ ট্রাই করে।
git কমান্ডও টাইপ করতে হবে না। পুরো প্রক্রিয়াটি সম্পূর্ণ অটোমেটেড এবং ইন্টারেক্টিভ।
প্রাথমিক সেটআপের পর, শুধু পরিবর্তন করুন এবং রান করুন:
gitwizard push
টুলটি স্বয়ংক্রিয়ভাবে git add . রান করবে, git diff পার্স করবে, অর্থবহ কমিট মেসেজ জেনারেট করবে, এবং পুশ করবে।
# Custom commit message
gitwizard push -m "fix: resolve login bug"
# Atomic commits (one per file)
gitwizard push --atomic
# Commit locally without pushing
gitwizard push --no-push
রিপোজিটরি অ্যাক্টিভিটির জন্য একাধিক অটোমেটেড কমিট জেনারেট করুন:
# Generate 10 auto commits
gitwizard auto --count 10
# With auto-push after each commit
gitwizard auto --count 5 --push
# Preview mode (no actual commits)
gitwizard auto --count 3 --dry-run
# Custom delay range and message template
gitwizard auto --count 5 --min-delay 1 --max-delay 3 -m "update {file}"
কমান্ড রেফারেন্স
gitwizard setup
ইন্টারেক্টিভ প্রজেক্ট সেটআপ। একটি কমান্ডে আপনার লোকাল প্রজেক্ট GitHub এ কানেক্ট করে।
gitwizard setup
| ধাপ | কাজ | বিস্তারিত |
|---|---|---|
| 1 | GitHub auth চেক | অথেনটিকেট না থাকলে লগইন প্রম্পট করে |
| 2 | Git রিপো ইনিশিয়ালাইজ | git init রান করে (ইতিমধ্যে রিপো থাকলে স্কিপ করে) |
| 3 | সব ফাইল স্টেজ | git add . রান করে |
| 4 | কমিট তৈরি | কমিট মেসেজ জিজ্ঞাসা করে |
| 5 | রিমোট কানেক্ট | GitHub রিপো URL জিজ্ঞাসা করে |
| 6 | GitHub এ পুশ | স্বয়ংক্রিয়ভাবে কমিট ও পুশ করে |
gitwizard push
সনাক্তকৃত কোড পরিবর্তনের উপর ভিত্তি করে স্মার্ট কমিট ও পুশ।
gitwizard push # Auto-generate commit message
gitwizard push -m "message" # Custom commit message
gitwizard push --atomic # Separate commit per file
gitwizard push --no-push # Commit only, don't push
| ফ্ল্যাগ | বিবরণ |
|---|---|
-m, --message | অটো-জেনারেশনের পরিবর্তে কাস্টম কমিট মেসেজ দিন |
--atomic | প্রতিটি পরিবর্তিত ফাইলের জন্য আলাদা কমিট তৈরি করুন |
--no-push | রিমোটে পুশ না করে শুধু লোকালি কমিট করুন |
gitwizard auto --count N
বাল্ক অটো-কমিট জেনারেটর। ট্র্যাকড সোর্স ফাইলে নিরাপদ কমেন্ট লাইন যোগ করে একাধিক কমিট তৈরি করে।
gitwizard auto --count 5 # Generate 5 auto commits
gitwizard auto --count 10 --push # With auto-push
gitwizard auto --count 3 --dry-run # Preview mode
gitwizard auto --count 5 --min-delay 1 --max-delay 3 # Custom delay
gitwizard auto --count 5 -m "update {file}" # Custom template
| ফ্ল্যাগ | ডিফল্ট | বিবরণ |
|---|---|---|
--count, -c | (প্রয়োজনীয়) | জেনারেট করার কমিটের সংখ্যা |
--min-delay | 2 | কমিটের মধ্যে ন্যূনতম বিলম্ব (সেকেন্ড) |
--max-delay | 4 | কমিটের মধ্যে সর্বোচ্চ বিলম্ব (সেকেন্ড) |
--message, -m | auto commit at {time} | কমিট মেসেজ টেমপ্লেট |
--push, -p | false | প্রতিটি কমিটের পরে রিমোটে পুশ |
--dry-run | false | আসল কমিট না করে সিমুলেট করুন |
টেমপ্লেট ভেরিয়েবল
| ভেরিয়েবল | আউটপুট উদাহরণ |
|---|---|
{time} | 2025-01-15 14:30:00 |
{iteration} | 3 |
{file} | src/main.py |
gitwizard auth
GitHub / VS Code অথেনটিকেশন চেক বা সেটআপ করুন।
gitwizard auth # Full interactive setup guide
gitwizard auth --check # Quick auth status check
এই কমান্ডটি চেক করে GitHub CLI (gh) অথেনটিকেটেড আছে কিনা। GitHub CLI একই অথেনটিকেশন সিস্টেম যা VS Code এর বিল্ট-ইন Git ইন্টিগ্রেশন ব্যবহার করে। অথেনটিকেশন কনফিগার না থাকলে, টুলটি ধাপে ধাপে ইন্টারেক্টিভ গাইড প্রদান করে লগইন করতে সাহায্য করে।
gitwizard help
কালার আউটপুট সহ সম্পূর্ণ কমান্ড রেফারেন্স দেখান, সাথে ডকুমেন্টেশন এবং সমস্যা রিপোর্ট লিংক।
gitwizard help
স্মার্ট Diff বিশ্লেষণ কীভাবে কাজ করে
যখন আপনি gitwizard push রান করেন, টুলটি একটি মাল্টি-স্টেপ বিশ্লেষণ পাইপলাইন পারফর্ম করে:
পরিবর্তন সনাক্তকরণ
টুলটি সব পরিবর্তন স্টেজ করতে git add . রান করে, তারপর git diff --cached আউটপুট ক্যাপচার করে। এটি টুলকে প্রতিটি ফাইলে ঠিক কোন লাইন যোগ, মুছে বা পরিবর্তন হয়েছে তার সম্পূর্ণ চিত্র দেয়।
ফাইল ক্যাটাগরাইজেশন
প্রতিটি পরিবর্তিত ফাইল তার নাম ও পথের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে ক্যাটাগরাইজ হয়। কনফিগারেশন ফাইল, টেস্ট ফাইল, ডকুমেন্টেশন ফাইল, ডিপেন্ডেন্সি ফাইল এবং ডেটা ফাইল প্রতিটি চেনা হয় এবং উপযুক্ত কমিট প্রিফিক্স দেওয়া হয়।
শব্দ-স্তর প্রতিস্থাপন সনাক্তকরণ
টুলটি মুছে ফেলা এবং যোগ করা লাইনগুলো জোড়ায় জোড়ায় তুলনা করে নির্দিষ্ট শব্দ বা ফ্রেজ প্রতিস্থাপন সনাক্ত করে। যেমন, আপনি যদি একটি ভেরিয়েবল Fahim থেকে Hasib এ রিনেম করেন, টুলটি এটি শব্দ স্তরে সনাক্ত করে এবং উপযুক্ত মেসেজ জেনারেট করে।
কন্টেন্ট বিশ্লেষণ
টুলটি পরিবর্তিত কন্টেন্টে সাধারণ প্যাটার্ন যেমন ইমপোর্ট স্টেটমেন্ট, ফাংশন ডেফিনিশন, ক্লাস ডেফিনিশন এবং অন্যান্য স্ট্রাকচারাল এলিমেন্ট স্ক্যান করে অর্থবহ কমিট মেসেজ জেনারেট করতে।
কমিট মেসেজ জেনারেশন
সমস্ত বিশ্লেষণ ফলাফল একটি একক, বর্ণনামূলক কমিট মেসেজে কনভেনশনাল কমিট ফরম্যাটে (type: description) একত্রিত হয়। মাল্টি-ফাইল পরিবর্তনের জন্য, মেসেজে কতগুলো ফাইল পরিবর্তন হয়েছে তার সারাংশ থাকে।
অ্যাটমিক কমিট মোড
যখন আপনি --atomic ফ্ল্যাগ ব্যবহার করেন, প্রতিটি ফাইলের পরিবর্তন আলাদা কমিট হয় নিজস্ব অটো-জেনারেটেড মেসেজসহ:
1. Unstage all files
2. Stage only the first file
3. Analyze the diff for that file
4. Generate a commit message specific to that file's changes
5. Commit with the generated message
6. Repeat for each changed file
7. Push all commits at once
অটো-জেনারেটেড কমিট মেসেজের উদাহরণ
টুলটি আপনার git diff আউটপুটের একটি ব্যাপক বিশ্লেষণ রান করে এবং কনভেনশনাল কমিট ফরম্যাট ব্যবহার করে বর্ণনামূলক কমিট মেসেজ জেনারেট করে:
| পরিবর্তনের ধরন | জেনারেট করা মেসেজ |
|---|---|
| কোডে শব্দ প্রতিস্থাপিত | update: replace 'Fahim' with 'Hasib' in main.py |
| নতুন ফাইল যোগ | feat: add config.py |
| ফাইল মুছে ফেলা | remove: delete old_script.js |
| ইমপোর্ট স্টেটমেন্ট পরিবর্তিত | refactor: update imports in utils.py |
| ফাংশন/ক্লাস পরিবর্তিত | update: modify login in auth.py |
| ফাংশন/ক্লাস মুছে ফেলা | update: remove calculate from math_utils.py |
| কনফিগ ফাইল পরিবর্তিত | config: modify settings.yaml (+3/-1) |
| টেস্ট ফাইল পরিবর্তিত | test: modify test_auth.py (+5/-2) |
| ডকস ফাইল পরিবর্তিত | docs: modify README.md (+12/-3) |
| ডিপেন্ডেন্সি ফাইল পরিবর্তিত | deps: modify requirements.txt (+1/-1) |
| একাধিক ফাইল পরিবর্তিত | update: modify 3 file(s) [main.py, app.py, utils.py] (+12/-3) |
| সব নতুন ফাইল | feat: add 5 new file(s) (config.py, utils.py, ...) |
| সব মুছে ফেলা ফাইল | remove: delete 3 file(s) (old.py, backup.py, ...) |
২৪০+ সাপোর্টেড ভাষা
অটো-কমিট জেনারেটর ২৪০+ প্রোগ্রামিং ও স্ক্রিপ্টিং ভাষা বুদ্ধিমান কমেন্ট স্টাইল ডিটেকশনসহ সাপোর্ট করে। প্রতিটি ভাষা তার উপযুক্ত কমেন্ট স্টাইলে ম্যাপ করা হয় যাতে অটো-জেনারেটেড কমেন্ট লাইন সঠিক সিনট্যাক্স ব্যবহার করে।
| ক্যাটাগরি | ভাষাসমূহ |
|---|---|
| Web Frontend | JavaScript, TypeScript, JSX, TSX, HTML, CSS, SCSS, SASS, LESS, PHP |
| Systems Programming | C, C++, C#, Rust, Go, Zig, Assembly |
| Scripting Languages | Python, Ruby, Bash, Zsh, PowerShell, Perl, Lua, Tcl |
| Mobile Development | Swift, Kotlin, Dart |
| Functional Programming | Haskell, Erlang, Elixir, Clojure, Scala |
| Data & Analysis | SQL, R, MATLAB, CSV, TSV, JSON |
| Configuration | YAML, TOML, INI, XML, JSON |
| IaC / DevOps | Dockerfile, Terraform, Nix, Kubernetes, CI/CD configs |
| Blockchain / Web3 | Solidity, Move, Vyper |
| Low-Level / Hardware | Assembly, VHDL, Verilog, Fortran, Ada, COBOL |
| Niche / Academic | Lean, Coq, Agda, Idris, Mercury, Joy, Forth |
| আরও ২০০+ ভাষা | বিদ্যমান প্রতিটি প্রধান প্রোগ্রামিং ভাষা কভার করে |
নিরাপত্তা ও সুরক্ষা
সম্পূর্ণ লোকাল এক্সিকিউশন
কোনো কোড কখনো বাহ্যিক সার্ভারে পাঠানো হয় না। সমস্ত git অপারেশন সরাসরি আপনার মেশিনে চলে।
API টোকেন প্রয়োজন নেই
আপনার বিদ্যমান Git ও GitHub CLI কনফিগারেশন ব্যবহার করে। অতিরিক্ত টোকেনের প্রয়োজন নেই।
নিরাপদ কমেন্ট লাইন
অটো-জেনারেটেড কমেন্ট লাইনগুলো টাইমস্ট্যাম্পসহ স্পষ্টভাবে চিহ্নিত এবং অ-আক্রমণাত্মক।
ড্রাই-রান মোড
--dry-run ব্যবহার করে কোনো আসল কমিট না করেই ঠিক কী হবে তা প্রিভিউ করুন।
Ctrl+C নিরাপত্তা
সমস্ত দীর্ঘস্থায়ী অপারেশন স্টেট নষ্ট না করে কীবোর্ড ইন্টারাপ্ট গ্রেসফুলি হ্যান্ডেল করে।
MIT লাইসেন্স
MIT লাইসেন্সের অধীনে ওপেন সোর্স এবং বিনামূল্যে ব্যবহার, পরিবর্তন ও বিতরণ করুন।
প্ল্যাটফর্ম সামঞ্জস্যতা
Windows
সাপোর্টেডGit for Windows প্রয়োজন। নন-টার্মিনাল এনভায়রনমেন্টে কালর অটো-ডিসেবল।
macOS
সাপোর্টেডIntel ও Apple Silicon উভয় Mac এ কাজ করে।
Linux
সাপোর্টেডসমস্ত প্রধান ডিস্ট্রিবিউশনে কাজ করে।
NO_COLOR এনভায়রনমেন্ট ভেরিয়েবল সেট করে ম্যানুয়ালি কালর ডিসেবল করতে পারেন।
প্রয়োজনীয়তা
| প্রয়োজনীয়তা | ভার্সন | বিস্তারিত |
|---|---|---|
| Python | 3.7+ | Python 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.14 |
| Git | যেকোনো সাম্প্রতিক ভার্সন | আপনার সিস্টেম PATH এ ইনস্টল থাকতে হবে |
| GitHub CLI | সর্বশেষ রিকমেন্ডেড | অথেনটিকেশনের জন্য প্রয়োজন। cli.github.com থেকে ইনস্টল করুন |