git tag

التفرّع والدمج

إنشاء الوسوم وسردها وحذفها


يعطي الأمر 'git tag' اسمًا ثابتًا لـ commit، عادة إصدارًا مثل v1.0. على عكس الفرع، لا يتحرّك الوسم أبدًا. الوسم الخفيف مجرد اسم؛ أما الوسم المُعلَّق (-a) فكائن كامل فيه منشئ الوسم وتاريخ ورسالة، وهو النوع الموصى به للإصدارات. لا تُدفع الوسوم تلقائيًا: ادفعها بـ git push origin <tag>.

الصيغة

git tag [-a | -s] [-f] [-m <msg>] <tagname> [<commit>]
git tag -d <tagname>...
git tag [-n[<num>]] -l [<pattern>...]
[ ] اختياري| أو<arg> قيمة تُستبدل... قابل للتكرار--flag خيار

الخيارات

انقر على أي خيار لتوسيعه

مبتدئ (3)

إنشاء كائن وسم مُعلَّق فيه المنشئ والتاريخ والرسالة.

موصى بهيجب أن تسجّل الإصدارات من وسمها ومتى ولماذا

مثال

git tag -a v1.0 -m "First release"

سرد الوسوم، واختياريًا ما يطابق نمطًا منها فقط.

موصى بهتصفية قائمة وسوم طويلة بنمط

مثال

git tag -l "v1.*"

حذف الوسوم المحلية المحدّدة.

عند الحاجةإصلاح وسم محلي خاطئ؛ تجنّب حذف وسوم يستخدمها غيرك

مثال

git tag -d v1.0

متوسط (1)

استبدال وسم موجود بنقله إلى commit آخر.

غير موصى بهنقل وسم منشور يربك كل من جلبه

مثال

git tag -f v1.0

اختيار الخيار المناسب

خفيف مقابل مُعلَّق

نوعان من الوسوم

الأمريخزّنيُستخدم لـ
git tag v1.0الاسم فقطعلامات شخصية
git tag -a v1.0 -m "..."المنشئ، التاريخ، الرسالةالإصدارات

وسم مقابل فرع

كلاهما يسمّي commit

الأمريتقدّم مع كل commit؟يدفعه git push؟
Branchنعمنعم (الفرع الحالي)
Tagأبدًالا، ادفعه صراحةً

أمثلة

وسم الـ commit الحالي

git tag v1.0

وسم خفيف باسم v1.0.


وسم مُعلَّق

git tag -a v1.0 -m "First release"

وسم مع منشئه وتاريخ ورسالة.


دفع وسم

git push origin v1.0

مشاركة الوسم على المستودع البعيد.


عرض الوسوم

git tag -l "v1.*"

سرد الوسوم المطابقة لنمط.

أمثلة على سير العمل

1
git switch main && git pull

أن تكون على أحدث main

2
git tag -a v1.0 -m "First release"

إنشاء وسم الإصدار

3
git push origin v1.0

مشاركته

حل المشكلات

fatal: tag 'v1.0' already exists

السبب: الاسم مستخدم

اختر اسمًا آخر، أو احذفه أولًا (git tag -d v1.0)

وسمي غير موجود على GitHub

السبب: لا يرسل git push الوسوم

git push origin v1.0، أو git push --tags

وسم محذوف يعود بعد fetch

السبب: ما زال موجودًا على المستودع البعيد

احذفه هناك أيضًا: git push origin --delete v1.0

نصائح وأخطاء شائعة

أفضل الممارسات

  • ✓استخدم الوسوم المُعلَّقة (annotated) للإصدارات.
  • ✓اتبع الترقيم الدلالي للإصدارات (v1.2.3).
  • ✓لا تنقل وسمًا ولا تُعِد استخدامه بعد نشره.

أخطاء متكررة

  • ✗توقّع أن يرسل git push الوسوم — ادفعها صراحةً أو استخدم --follow-tags.
  • ✗استخدام الوسوم الخفيفة للإصدارات: لا تسجّل مؤلفًا ولا تاريخًا ولا رسالة.
  • ✗نقل وسم جلبه الآخرون بالفعل.

الأسئلة الشائعة

A:

git switch --detach v1.0، أو أنشئ منه فرعًا: git switch -c hotfix v1.0.

A:

git push --tags (أو git push --follow-tags للوسوم المعلَّقة على الـ commits المدفوعة).

A:

يسمّي commit نسبةً إلى أقرب وسم، مثل v1.0-3-g1a2b3c4.