في هذا الدرس 6تصفّح المواضيع
تتبع إصدارات البرمجيات عالمياً معيار الترقيم الدلالي للإصدارات Semantic Versioning (SemVer) الذي يكتب بالصيغة الثلاثية vMAJOR.MINOR.PATCH مثل v2.4.1:
- الرقم الأكبر
MAJOR (2): يزداد عند إجراء تغييرات جذرية غير متوافقة مع الإصدارات السابقةBreaking Changes. - الرقم الفرعي
MINOR (4): يزداد عند إضافة ميزات ووظائف جديدة متوافقة مع الإصدارات السابقة دون كسرها. - رقم الترقيع
PATCH (1): يزداد عند إصلاح الأخطاء البرمجية أو الثغرات الأمنية مع الحفاظ التام على التوافق.
# Initial stable release:
git tag -a v1.0.0 -m "Initial stable public release"
# After a backward-compatible bug fix:
git tag -a v1.0.1 -m "Patch: fix mobile menu overflow"
افتراضياً، يربط الأمر git tag الوسم بالتزامك الحالي HEAD. أما إذا نسيت وسم إصدار معين يوم الجمعة ثم أضيفت بعده عدة التزامات جديدة، فلن تحتاج إلى إرجاع الفرع؛ بل يكفي تمرير المعرّف المختصر لذلك الالتزام السابق في نهاية الأمر: git tag -a v1.1.0 <commit-hash> -m "...".
git log --oneline -n 5
# Tag commit 9fceb02 retroactively:
git tag -a v1.1.0 9fceb02 -m "Release v1.1.0"
git show v1.1.0 --stat
يلخص الجدول التالي جميع أوامر git tag الأساسية وعمليات إدارة الإصدارات:
| العملية | الأمر القياسي | ملاحظات الاستخدام |
|---|---|---|
| إنشاء وسم موثق | git tag -a v1.0.0 -m "msg" | يحفظ اسم الناشر والتاريخ والرسالة — معتمد للإصدارات |
| إنشاء وسم خفيف | git tag v1.0.0-local | مؤشر خام للالتزام دون بيانات وصفية |
| وسم التزام سابق | git tag -a v0.9.0 <hash> -m "msg" | يوسم التزاماً تاريخياً بأثر رجعي دون تبديل الفرع |
| عرض ومعاينة الوسوم | git tag -l "v1.*" / git show v1.0.0 | تصفية قائمة الوسوم أو عرض تفاصيل الوسم والالتزام |
| رفع الوسم إلى GitHub | git push origin v1.0.0 | يرفع الوسم للسحابة لإنشاء صفحة GitHub Release |
| حذف الوسم محلياً وبعيداً | git tag -d <tag> / git push origin --delete <tag> | يحذف الوسم من جهازك ومن الخادم السحابي |
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
تمثل الوسوم git tag مؤشرات ثابتة توثق التزامات الإصدارات وفق معيار vMAJOR.MINOR.PATCH. استخدم الوسوم الموثقة git tag -a للإصدارات الرسمية وادفعها صراحةً بالأمر git push origin v1.0.0 أو git push --follow-tags.
الخطوة التالية والدرس القادم
انتقل إلى الدرس الختامي للدورة توثيق المستودع والنظافة الأمنية repository-documentation-and-security-hygiene لتأمين مستودعاتك وحماية الفرع الرئيسي والتعامل الاحترافي مع تسرب المفاتيح السرية.
سجّل الدخول لحفظ تقدمك
تابع إنجاز المواضيع والمصطلحات والمهام، وكمّل من آخر خطوة على أي جهاز.
المصطلحات4
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 git tag & Releases وسوم الإصدارات git tag
- وثّق إصدارات مشروعك بمعيار الترقيم الدلالي SemVer، وأنشئ الوسوم الموثقة والخفيفة بالأمر git tag، وارفعها إلى الخادم البعيد لنشر GitHub Releases.
- للمراجعة
- 02 Immutable Tags vs Branches الوسم الثابت مقابل الفرع
- المفهوم الأساسي لدرس وسوم الإصدارات git tag وإصدارات GitHub Releases في سير عمل Git وGitHub.
- للمراجعة
- 03 Semantic Versioning Standard معيار الترقيم الدلالي SemVer
- التطبيق العملي المباشر لمفهوم معيار الترقيم الدلالي SemVer.
- للمراجعة
- 04 Annotated vs Lightweight Tags الوسوم الموثقة مقابل الخفيفة
- قواعد التحقق وأفضل الممارسات الخاصة بـ الوسوم الموثقة مقابل الخفيفة.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
الاختصارات4
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 DVCS DVCS
- Distributed Version Control System
- معمارية يمتلك فيها كل مطور نسخة محلية كاملة من تاريخ المستودع وكائناته.
- للمراجعة
- 02 SSH SSH
- Secure Shell
- بروتوكول شبكي مشفر يُستخدم للمصادقة الآمنة ونقل كائنات Git عبر المفاتيح.
- للمراجعة
- 03 PR PR
- Pull Request
- مقترح على GitHub لمراجعة واختبار ودمج التزامات فرع الميزة داخل الفرع الهدف.
- للمراجعة
- 04 CI CI
- Continuous Integration
- تشغيل الاختبارات وفحوصات البناء آلياً عند رفع الالتزامات أو فتح طلبات السحب.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
مهامك قبل الاختبار
خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.
-
نفّذ أوامر الطرفية المشروحة في الوسم الثابت مقابل الفرع داخل مستودع تجريبي محلي وافحص المخرجات.
-
بدّل بين الحالات الثلاث في المختبر التفاعلي ضمن قسم معيار الترقيم الدلالي SemVer وقارن الأوامر والمخرجات.
تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.
اختبر فهمك.
ووصلها للإتقان.
كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.
أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.
الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.
لمحة عن التحدي8 أسئلة تنتظرك +
بماذا يختلف الوسم (git tag) عن الفرع (git branch) في Git؟
الوسم مؤشر ثابت يشير دائماً إلى التزام محدد لإصدار معين، بينما يتحرك الفرع للأمام مع كل التزام جديد.
في معيار الترقيم الدلالي (vMAJOR.MINOR.PATCH)، أي رقم تزيده عند إضافة ميزة جديدة متوافقة مع الإصدارات السابقة؟
يزداد الرقم الأوسط MINOR (مثلاً من v1.1.0 إلى v1.2.0) عند إضافة ميزة جديدة متوافقة دون كسر التوافق.
أي أمر ينشئ وسماً موثقاً (Annotated Tag) باسم "v1.0.0" مرفقاً برسالة إصدار؟
ينشئ الأمر git tag -a v1.0.0 -m "..." وسماً موثقاً كاملاً في قاعدة بيانات Git.
تحفظ الوسوم الموثقة (Annotated Tags) اسم المنشئ وبريده والتاريخ والرسالة ككائن كامل داخل قاعدة بيانات Git.
صواب؛ فعلى عكس الوسوم الخفيفة، تُحفظ الوسوم الموثقة ككائنات مستقلة كاملة البيانات.
كيف توسم التزاماً قديماً (معرّفه 9fceb02) بأثر رجعي بالاسم v0.9.0؟
تمرر معرّف الالتزام في نهاية الأمر: git tag -a v0.9.0 9fceb02 -m "...".
يؤدي تنفيذ الأمر "git push" العادي إلى رفع جميع الوسوم المحلية إلى المستودع البعيد تلقائياً.
خطأ؛ فالأمر git push العادي لا يرفع الوسوم، بل يجب تحديد اسم الوسم أو استخدام --follow-tags.
أي أمر يرفع وسماً محدداً باسم "v1.2.0" إلى المستودع البعيد origin؟
يرفع الأمر git push origin v1.2.0 ذلك الوسم بعينه إلى الخادم البعيد.
كيف تحذف وسماً باسم "v1.0.0-rc" من المستودع البعيد origin؟
يحذف الأمر git push origin --delete v1.0.0-rc الوسم من الخادم البعيد.