Git & GitHub Helper Smart Pro
Git & GitHub Helper Smart Pro هي اداة PowerShell تفاعلية متكاملة صُممت لتبسيط ادارة مستودعات Git/GitHub. متوفرة بنسختين:
واجهة رسومية (GUI) - GitHelper_GUI.ps1 (v7.0) — تصميم WPF عصري
سطر اوامر (CLI) - GitHelpersmart4.4.ps1 (v4.4.1) — واجهة نصية للمتقدمين
الميزة
الوصف
Smart Commit
نافذة commit ذكية مع نوع (feat/fix/docs) + ملخص diff تلقائي
Async Runspace
عمليات Git تعمل في Background Thread — الواجهة لا تتجمد ابدا
Conflict Detection
كشف تلقائي لتعارضات الدمج بعد Pull مع عرض الملفات المتعارضة
GitHub CLI
تكامل مع gh — انشاء repositories مباشرة من الواجهة + فحص الاتصال
Settings Persistence
حفظ واسترجاع الاعدادات (الثيم، حجم النافذة، المجلد) تلقائيا
التقنية
الوصف
السبب
ازالة Invoke-Expression
كل اوامر git الان تستخدم عامل الاستدعاء الامن &
منع حقن الاوامر (Command Injection) — كان يسمح بتنفيذ اوامر خبيثة عبر URL مزيف
تحقق من الروابط (URL Validation)
فحص regex للروابط قبل استخدامها
حظر الرموز الخطيرة مثل ; و | و & في الروابط
فتح روابط امن
فقط روابط http:// و https:// تُفتح في المتصفح
حظر URI schemes خبيثة مثل javascript: او مسارات UNC
التحقق من المدخلات
كل مدخلات المستخدم تُفحص قبل تمريرها لـ git
منع الاوامر المشوهة والاحرف الخاصة
التقنية
الوصف
الاثر
Timer موحد قابل لاعادة الاستخدام
DispatcherTimer واحد بدل انشاء جديد مع كل اشعار Toast
القضاء على تسرب الذاكرة (Memory Leak)
تقليل DoEvents()
ازالة استدعاءات غير ضرورية لتحديث الواجهة
تقليل حظر UI Thread وتسريع الاستجابة
محرك ثيمات موحد
دالة Apply-Theme مع جدول الوان بدل 100+ سطر مكرر
كود اخف واسهل صيانة
حارس قائمة الفروع
$Script:UpdatingBranches يمنع استدعاءات git زائدة
تقليل عمليات git الفرعية غير الضرورية
تخزين BrushConverter
نسخة واحدة مُعاد استخدامها لتحويل الالوان
اداء اسرع في تبديل الثيم
الخطأ
الوصف
الحل
تضارب ارقام الاصدارات
العنوان يقول v5.0 والمساعدة v6.5 والسجل v6.6
توحيد عبر $Script:AppVersion
خلط النطاقات (Scope)
بعض المتغيرات $Global: وبعضها $Script:
توحيد الكل على $Script:
تسرب مسار العمل
Set-Location بدون Pop-Location يغير المجلد نهائيا
Push-Location/Pop-Location مع try/finally
كشف ثيم النظام
Set-AppTheme كانت تُلغى فورا بـ Set-DarkTheme
Set-SystemTheme تقرا الريجستري وتطبق الثيم الصحيح
سياق اعدادات Git
الاعدادات المحلية تُحفظ في مجلد السكربت مو المستودع المحدد
الحفظ والقراءة من مسار المستودع المختار
لون اشعار التحذير
النص الغامق يتسرب للاشعارات اللاحقة
اعادة ضبط Foreground قبل كل اشعار
فقدان اخطاء git
مخرجات stderr تختفي بصمت
التقاط 2>&1 وتسجيلها في Activity Log
تسرب Timer
الـ Timer يستمر بعد اغلاق النافذة
$window.Add_Closed يوقف الـ Timer
شاشة المساعدة CLI
العنصر "1)" مفقود من قائمة المساعدة
اضافة النص الصحيح
اعادة تعريف الدالة
Get-MenuIndex تُعاد تعريفها كل دورة في الحلقة
نقلها خارج الحلقة
رسالة commit غير محمية
$msg بدون علامات تنصيص يفشل مع المسافات
"$msg" لحماية الاحرف الخاصة
عدم وقف عند الفشل
Magic Push CLI تطبع "اكتمل" حتى لو فشلت خطوات
متغير $allOk يتتبع النجاح/الفشل
تقسيم CRLF
git status يُقسم على \n فقط مما يسبب بقايا \r
تغيير لـ \r?\n
Push/Pop-Location
اختلال في Dashboard عند فتح المحرر او GitHub
لف بـ try/finally لضمان التوازن
Sleep غير ضروري
Start-Sleep 2 بعد فتح المحرر رغم ان Start-Process لا تحجب
ازالة التاخير
التقنية
الاستخدام
الاصدار
PowerShell
لغة البرمجة الاساسية
5.1+
WPF (XAML)
الواجهة الرسومية
.NET Framework 4.5+
Git CLI
ادارة المستودعات
2.x
DispatcherTimer
اشعارات Toast المؤقتة
WPF Built-in
BrushConverter
تحويل الالوان للثيمات
WPF Built-in
Windows Registry
كشف ثيم النظام (Dark/Light)
HKCU
8.3 Short Path
دعم المسارات العربية في PS 5.1
COM FileSystemObject
SnapsToDevicePixels
منع اختفاء الايقونات عند تبديل النوافذ
WPF Rendering
InvalidateVisual
اعادة رسم العناصر عند استعادة التركيز
WPF Rendering
Runspace
تشغيل git في background thread منفصل
PowerShell Threading
Synchronized Hashtable
مشاركة بيانات thread-safe بين UI و Runspace
.NET ConcurrentCollections
DispatcherTimer Polling
مراقبة حالة العمليات غير المتزامنة
WPF Threading
ConvertTo-Json
حفظ واسترجاع الاعدادات
PowerShell 5.1+ Built-in
GitHub CLI (gh)
انشاء repos وفحص الاتصال
GitHub CLI 2.x
XAML Child Window
نافذة commit dialog ديناميكية
WPF Runtime XAML
الميزة
GUI
CLI
الوصف
اكتشاف تلقائي
نعم
نعم
يكتشف جميع مستودعات Git تلقائيا
لوحة تحكم Dashboard
نعم
نعم
عرض تفصيلي لحالة كل مستودع
عمليات دفعية
نعم
نعم
Status/Pull/Push على جميع المستودعات
Magic Push
نعم
نعم
رفع مشروع جديد لـ GitHub بخطوة واحدة
Clone + Init
نعم
نعم
استنساخ مع اعداد README تلقائي
ادارة الفروع
نعم
-
انشاء، تبديل، وحذف الفروع
دعم Stash
نعم
-
حفظ واسترجاع التغييرات المؤقتة
تبديل الثيم
نعم
-
وضع ليلي/نهاري مع كشف ثيم النظام
اشعارات Toast
نعم
-
تنبيهات انيقة لنتائج العمليات
شريط تقدم
نعم
-
متابعة حية لتقدم العمليات
اعدادات Git محلية
نعم
-
اعدادات خاصة لكل مستودع
اختصارات لوحة المفاتيح
نعم
-
Ctrl+P/L/D/S و F5
Smart Commit
نعم
-
نافذة commit مع نوع وملخص diff
Async Runspace
نعم
-
عمليات git في background thread
كشف التعارضات
نعم
-
كشف merge conflicts تلقائي
GitHub CLI
نعم
-
انشاء repos + فحص الاتصال
حفظ الاعدادات
نعم
-
settings.json للثيم والنافذة
المتطلب
الحد الادنى
Windows
10/11
PowerShell
5.1+
Git CLI
2.x
.NET Framework
4.5+ (للواجهة الرسومية فقط)
# استنساخ المستودع
git clone https:// github.com / F2lcon01/ Git- github_Helper_smart.git
# الانتقال للمجلد
cd Git- github_Helper_smart
تشغيل الواجهة الرسومية (موصى به)
ملاحظة: قد تحتاج لتعديل سياسة التنفيذ:
Set-ExecutionPolicy - ExecutionPolicy Bypass - Scope CurrentUser
اختصارات لوحة المفاتيح (GUI)
الاختصار
الوظيفة
Ctrl+P
رفع للـ GitHub
Ctrl+L
سحب من GitHub
Ctrl+D
فتح لوحة التحكم
Ctrl+S
مزامنة جميع المستودعات
F5
تحديث لوحة التحكم
Git-github_Helper_smart/
├── GitHelper_GUI.ps1 # الواجهة الرسومية (v7.0)
├── GitHelpersmart4.4.ps1 # سطر الاوامر (v4.4.1)
├── errors.md # سجل الاخطاء والحلول
├── History.md # تاريخ الاصدارات
├── Research-and-Development.md # البحث التقني
├── findings.md # القرارات التقنية
├── progress.md # سجل التقدم
├── task_plan.md # خطة المهام
└── planning-with-files/ # قوالب التخطيط
هذا المشروع يتبع افضل ممارسات الامان:
بدون Invoke-Expression — كل الاوامر الخارجية تستخدم عامل & الامن
تحقق من الروابط — فحص regex يمنع حقن الاوامر عبر الروابط
فتح URI امن — فقط http:// و https:// مسموح فتحها
اعدادات Git محلية — بيانات الاعتماد تُحفظ لكل مستودع وليس عالميا
رفع الصلاحيات — يرفع تلقائيا عند الحاجة مع تراجع امن
التقاط stderr — اخطاء git تُسجل بدل ما تختفي بصمت
try/finally — كل Push-Location محمي بـ finally { Pop-Location } لمنع تسرب المسارات
الاصدار
النوع
ابرز التحديثات
v7.0
GUI
Smart Commit, Async Runspace, Conflict Detection, GitHub CLI, Settings
v6.6.2
GUI
تحصين امني، تحسين اداء، اصلاح 28 خطأ
v6.6.1
GUI
اصلاح Timer، اصلاح عرض الايقونات
v6.6
GUI
اعدادات Git محلية، تحسينات الثيم
v6.5
GUI
ادارة الفروع، دعم Stash، اختصارات لوحة المفاتيح
v6.0
GUI
شريط تقدم، اشعارات Toast، تبديل الثيم
v5.0
GUI
اول اصدار للواجهة الرسومية WPF
v4.4.1
CLI
اصلاحات امنية، استدعاءات git امنة، حماية المسارات
v4.4
CLI
ميزة Magic Push
v4.2
CLI
الاتصال الاول، بحث ذكي عن المحررات
v4.0
CLI
الاصدار الاول
البند
قبل (v6.6.1)
بعد (v6.6.2)
تنفيذ اوامر git
Invoke-Expression (غير امن)
عامل & المباشر (امن)
فحص الروابط
بدون تحقق
Regex validation
تسرب الذاكرة
Timer جديد مع كل Toast
Timer واحد مُعاد استخدامه
دوال الثيم
100+ سطر مكرر
Apply-Theme مع hashtable (30 سطر)
نطاق المتغيرات
خليط $Global: و $Script:
موحد على $Script:
حماية المسارات
Set-Location بدون حماية
Push/Pop-Location مع try/finally
اخطاء git
تختفي بصمت (stderr مفقود)
تُلتقط وتُسجل في Log
كشف ثيم النظام
يُلغى فورا بالثيم الافتراضي
يقرا الريجستري ويطبق الثيم الصحيح
فتح الروابط
اي URI scheme مسموح
فقط HTTP/HTTPS
git commit -m
$msg بدون تنصيص
"$msg" محمي
فشل Magic Push
يطبع "اكتمل" حتى لو فشل
$allOk يتتبع الحالة
تقسيم الاسطر
\n فقط (يخلي بقايا \r)
\r?\n (يدعم CRLF)
هذا المشروع مرخص تحت رخصة MIT.
صُنع باتقان من فريق Falcon01
GUI v7.0 | CLI v4.4.1
© 2026 Falcon01 Team. All Rights Reserved.