تكامل التحكم بالإصدارات
العمل مع Git وأنظمة التحكم بالإصدارات الأخرى
يتكامل Verdent for VS Code بسلاسة مع Git وأنظمة التحكم بالإصدارات الأخرى، ما يتيح عمليات التحكم بالإصدارات باللغة الطبيعية، وتوليد رسائل الالتزام (commit) تلقائيًا، وإدارة الفروع بذكاء. يوضح هذا الدليل كيفية الاستفادة من تكامل Git في Verdent لتحقيق سير عمل فعّال في التحكم بالإصدارات.
إنشاء رسائل التزام (commit) ذات معنى
لنفترض أنك أجريت تغييرات وتريد من Verdent توليد رسالة التزام وصفية.
طلب الالتزام مع توليد الرسالة
Stage all changes and create a commit with an appropriate messageيحلل Verdent تغييراتك باستخدام git diff.
يحلل Verdent التغييرات
يفحص Verdent:
- الملفات المعدَّلة والغرض منها
- طبيعة التغييرات (ميزة جديدة، إصلاح خلل، إعادة هيكلة)
- نطاق التأثير
- الوظائف ذات الصلة
توليد رسالة التزام وصفية
git commit -m "feat: add user profile image upload with S3 integration
- Add file upload endpoint to user API
- Integrate AWS S3 for image storage
- Update user model with profileImage field
- Add frontend image upload component with preview"تتبع الرسالة تنسيق الالتزام التقليدي (conventional commit) وتصف ما تغيّر.
يتم إنشاء الالتزام
يتم الالتزام بالتغييرات باستخدام الرسالة المولَّدة. يمكنك مراجعة الالتزام:
git log -1نصائح:
- يتّبع Verdent تنسيقات الالتزام التقليدية (feat وfix وrefactor وdocs وغيرها)
- تركّز رسائل الالتزام على "ماذا" و"لماذا"، وليس "كيف"
- يمكنك تخصيص تنسيق رسالة الالتزام في القواعد الخاصة بالمستخدم أو قواعد المشروع
- اطلب أنماطًا محددة لرسالة الالتزام: "أنشئ التزامًا برسالة مفصّلة متعددة الأسطر"
تخصيص تنسيقات رسائل الالتزام
لنفترض أنك تريد من Verdent اتّباع اصطلاحات رسائل الالتزام الخاصة بفريقك.
حدِّد تفضيلات رسالة الالتزام في VERDENT.md لجميع المشاريع:
# VERDENT.md
## Git Commit Messages
When generating commit messages:
- Always include ticket number in format: [PROJ-123]
- Use present tense verbs
- Maximum 50 characters for first line
- Include detailed explanation in body
- Add "Co-authored-by" for pair programming sessions
Example format:
[PROJ-123] Add user authentication feature
Detailed explanation of changes...
Co-authored-by: Team Member <email@example.com>يتّبع Verdent هذه القواعد عالميًا.
حدِّد اصطلاحات الالتزام الخاصة بالمشروع في AGENTS.md:
# AGENTS.md
## Git Commit Conventions
For this project, use conventional commits with these scopes:
- feat(api): API changes
- feat(ui): Frontend changes
- fix(auth): Authentication fixes
- docs(readme): Documentation updates
Always reference GitHub issue: "Fixes #123" or "Relates to #456"تنطبق القواعد على هذا المشروع فقط.
قدِّم تعليمات لمرة واحدة مباشرةً:
Create a commit with message format: "[TICKET-NUMBER] description" including reference to issue #42يولّد Verdent:
git commit -m "[PROJ-42] Add search functionality
Relates to #42"نصائح:
- تنطبق قواعد المستخدم عالميًا على جميع المشاريع
- تتجاوز قواعد المشروع (AGENTS.md) قواعد المستخدم في مشاريع محددة
- تتجاوز التعليمات المضمَّنة كلتيهما لتلبية الاحتياجات لمرة واحدة
- يُوصى باستخدام تنسيق Conventional Commits للحفاظ على الاتساق
إنشاء طلبات السحب (Pull Requests)
لنفترض أنك تريد من Verdent إنشاء طلب سحب شامل.
تأكد من الالتزام بالتغييرات
Make sure all my changes are committedيتحقق Verdent من حالة git ويلتزم بأي تغييرات غير ملتزَم بها.
ادفع الفرع إلى المستودع البعيد
Push this branch to originيدفع Verdent:
git push origin feature/user-notificationsطلب إنشاء طلب السحب
Create a pull request for this featureيستخدم Verdent واجهة سطر الأوامر gh لإنشاء طلب السحب.
يولّد Verdent وصف طلب السحب
يحلل Verdent الالتزامات والتغييرات لتوليد ما يلي:
العنوان: Add user notification system
النص:
## Summary
- Implements real-time user notifications
- Adds WebSocket support for instant delivery
- Includes email fallback for offline users
- Comprehensive test coverage
## Test Plan
- [ ] Test real-time notifications in browser
- [ ] Verify email fallback for offline users
- [ ] Check notification persistence across sessions
- [ ] Test with multiple concurrent users
## Changes
- Added NotificationService with WebSocket integration
- Created notification UI components
- Integrated SendGrid for email notifications
- Added notification preferences to user settingsيتم إنشاء طلب السحب بوصف شامل.
نصائح:
- يحلل Verdent جميع الالتزامات في الفرع لتوليد وصف طلب السحب
- اطلب تنسيقات محددة لطلب السحب: "أنشئ طلب سحب مع خطة اختبار مفصّلة"
- أضف لقطات الشاشة: "أضف لقطة الشاشة هذه إلى وصف طلب السحب"
- يمكنك تنقيح وصف طلب السحب قبل الإنشاء: "حدِّث طلب السحب ليذكر التغيير الجذري (breaking change)"
حل تعارضات الدمج (Merge Conflicts)
لنفترض أنك واجهت تعارضات دمج وتحتاج إلى مساعدة Verdent لحلها.
محاولة الدمج
Merge main into this feature branchيحدث تعارض دمج:
Auto-merging src/auth.ts
CONFLICT (content): Merge conflict in src/auth.tsطلب حل التعارض
Help me resolve the merge conflict in src/auth.tsيقرأ Verdent علامات التعارض.
يحلل Verdent كلا الإصدارين
يفحص Verdent:
- تغييرات الفرع الحالي (HEAD)
- التغييرات الواردة (الفرع الرئيسي)
- السياق المحيط بالتعارضات
- غرض كلا التغييرين
يقترح Verdent حلًا
The conflict is between your JWT implementation and the main branch's session-based auth. I'll merge both approaches to support both authentication methods.يحل Verdent التعارض عبر دمج التغييرين بذكاء.
تحديد التعارض كمحلول
git add src/auth.ts
git commit -m "Merge main into feature/jwt-auth, resolved conflicts"يتم حل التعارض واكتمال الدمج.
نصائح:
- يفهم Verdent سياق الكود لحل التعارضات بذكاء
- راجع دائمًا حلول التعارضات قبل الالتزام
- بالنسبة للتعارضات المعقدة، اطلب من Verdent شرح كلا الإصدارين أولًا
- اختبر بدقة بعد حل التعارضات
يحلل Verdent تعارضات الدمج عبر فهم غرض كلا الفرعين، ويقترح حلولًا تحافظ على وظائف الطرفين.
إدارة الفروع والوسوم (Tags)
لنفترض أنك بحاجة إلى إدارة الفروع وإنشاء وسوم الإصدارات.
إنشاء الفروع والتبديل بينها:
Create a new branch called feature/user-notificationsينفّذ Verdent:
git checkout -b feature/user-notificationsgit checkout maingit checkout -b feature/payment-integration
git push -u origin feature/payment-integrationدمج فروع الميزات:
Merge the feature/user-notifications branch into mainينفّذ Verdent سير عمل الدمج:
git checkout main
git pull origin main
git merge feature/user-notifications
git push origin mainيتأكد Verdent من أن الفرع الرئيسي محدَّث قبل الدمج.
إنشاء وسوم موصوفة (annotated tags):
Create an annotated tag for version 1.2.0 with release notesينشئ Verdent وسمًا مفصّلًا:
git tag -a v1.2.0 -m "Release 1.2.0
New Features:
- User notification system
- Email integration
- Real-time WebSocket support
Bug Fixes:
- Fixed authentication timeout issue
- Resolved cart calculation bug"دفع الوسوم:
Push all tags to originيدفع Verdent:
git push origin --tagsنصائح:
- استخدم أسماء فروع وصفية:
feature/user-auth،fix/cart-bug،refactor/api-layer - اسحب دائمًا أحدث التغييرات قبل الدمج
- استخدم الوسوم الموصوفة (annotated tags) للإصدارات (فهي تتضمن بيانات وصفية)
- اتّبع الترقيم الدلالي (semantic versioning): v1.2.3 (رئيسي.فرعي.تصحيح)
تساعد اصطلاحات تسمية الفروع المتسقة Verdent على فهم سير عملك. حدِّد الأنماط في AGENTS.md للامتثال التلقائي.
الأسئلة الشائعة
هل يلتزم Verdent بتغييراتي تلقائيًا؟
لا. لا ينشئ Verdent التزامات إلا عند طلبك ذلك صراحةً. تحتفظ بالتحكم الكامل في توقيت الالتزام بالتغييرات. يكفي أن تطلب "جهّز جميع التغييرات وأنشئ التزامًا (commit)" عندما تكون جاهزًا.
هل يمكنني تعديل رسالة الالتزام قبل الالتزام؟
نعم. يمكنك أن تطلب من Verdent تنقيح رسالة الالتزام قبل إنشائها. قل "حدِّث رسالة الالتزام لذكر التغيير الجذري (breaking change)" أو "اجعل رسالة الالتزام هذه أكثر إيجازًا." سيعيد Verdent توليد الرسالة بناءً على ملاحظاتك.
هل يعمل Verdent مع GitHub وGitLab وBitbucket ومنصات Git الأخرى؟
نعم. يستخدم Verdent أوامر Git القياسية، لذا فهو يعمل مع أي مستودع Git بغض النظر عن منصة الاستضافة. لإنشاء طلبات السحب، يستخدم Verdent واجهة سطر الأوامر gh التي تتطلب GitHub، لكن جميع عمليات Git الأخرى تعمل بشكل عام.
هل يدفع Verdent إلى المستودعات البعيدة دون طلب؟
لا. لا يدفع Verdent إلى المستودعات البعيدة إلا عند طلبك ذلك صراحةً. تتطلب جميع عمليات Git (الالتزام، الدفع، الدمج، إعادة الأساس (rebase)) تعليمات صريحة منك لضمان السلامة.
هل يمكن لـ Verdent حل جميع أنواع تعارضات الدمج؟
يمكن لـ Verdent حل معظم تعارضات الدمج النصية عبر فهم سياق الكود وغرضه. قد تتطلب تعارضات الملفات الثنائية أو التعارضات المعقدة متعددة الأطراف تدخلًا يدويًا. راجع دائمًا حل التعارض الذي يقترحه Verdent قبل الالتزام.