Git tag = تسمية دائمة على إيداع محدَّد.
الاستخدام الرئيسي: تعليم الإصدارات (v1.0، v2.0، إلخ)
الفرق مع الفروع:
تشبيه: الوسم = ملصق «الإصدار 1.0» على صفحة دفتر.
git tag v1.0 # وسم بسيطgit tag -a v1.0 -m "Version 1.0 - First stable release"mkdir demo-tags && cd demo-tags
git init
echo "print('app v0.1')" > app.py
git add . && git commit -m "Initial version"
echo "print('app v0.2')" > app.py
git add . && git commit -m "Bug fixes"
echo "print('app v1.0')" > app.py
git add . && git commit -m "First stable version"# وسم بسيط
git tag v1.0
# وسم مع رسالة
git tag -a v1.0-stable -m "Version 1.0 - Production ready"
# وسم على إيداع سابق
git log --oneline # عرض التجزئات
git tag v0.2-beta <hash> # وسم على إيداع محدَّدgit tag # كل الوسوم
git tag -l "v1.*" # وسوم تطابق النمط
git show v1.0 # تفاصيل الوسمgit checkout v1.0 # الذهاب إلى الإيداع الموسوم
git checkout main # العودة إلى maingit push origin v1.0 # دفع وسم محدَّد
git push origin --tags # دفع كل الوسومvMAJOR.MINOR.PATCH
- v1.0.0 → First stable release
- v1.0.1 → Bug fix
- v1.1.0 → New feature (backward compatible)
- v2.0.0 → Breaking changes# انتهى التطوير
git checkout main
git pull origin main
# وسم الإصدار
git tag -a v1.2.0 -m "Release v1.2.0 - Add user authentication"
# دفع الشفرة + الوسوم
git push origin main
git push origin v1.2.0
# أو دفع الكل دفعة واحدة:
git push origin main --tags# حذف وسم محلي
git tag -d v1.0
# حذف وسم بعيد
git push origin --delete v1.0
# تعديل وسم (إعادة إنشائه)
git tag -d v1.0 # حذف محلي
git push origin --delete v1.0 # حذف بعيد
git tag -a v1.0 -m "Corrected message" # إعادة إنشاء
git push origin v1.0 # إعادة دفع1. إصدار في الإنتاج:
git tag -a v2.1.0 -m "Production release v2.1.0"
git push origin v2.1.0
# Deploy version v2.1.0 en production2. الرجوع إلى إصدار سابق:
git checkout v2.0.0 # الرجوع إلى إصدار مستقر
git checkout -b hotfix-v2.0.0 # إنشاء فرع إصلاح3. مقارنة إصدارات:
git diff v1.0.0 v2.0.0 # عرض كل التغييراتالوسوم = معالم دائمة لمشروعك. استخدمها لكل إصداراتك!