git notes

الفحص والمقارنة

إرفاق ملاحظات بالـ commits دون تغييرها


يرفق الأمر 'git notes' نصًا إضافيًا بـ commit — مراجعة أو نتيجة اختبار أو تاريخ نشر — دون لمس الـ commit نفسه، فيبقى الـ hash كما هو. تُخزَّن الملاحظات منفصلة (في refs/notes/commits) ويعرضها git log تحت رسالة الـ commit. لا تُدفع ولا تُجلب افتراضيًا.

الصيغة

git notes [list [<object>]]
git notes add [-f] [-m <msg>] [<object>]
git notes append [-m <msg>] [<object>]
git notes show [<object>]
git notes remove [<object>...]
[ ] اختياري| أو<arg> قيمة تُستبدل... قابل للتكرار--flag خيار

الخيارات

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

مبتدئ (4)

إضافة نص إلى الملاحظة الموجودة (أو إنشاء واحدة).

موصى بهإضافة معلومات دون فقدان الملاحظة الموجودة

مثال

git notes append -m "Tests pass"

طباعة ملاحظة commit (‏HEAD افتراضيًا).

موصى بهقراءة ملاحظة commit واحد

مثال

git notes show HEAD~1

سرد كل ملاحظة: معرّف الملاحظة والـ commit الذي تنتمي إليه.

عند الحاجةالعثور على كل commit له ملاحظة

مثال

git notes list

حذف ملاحظة commit.

عند الحاجةإزالة ملاحظة قديمة

مثال

git notes remove

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

إضافة معلومات إلى commit

ملاحظة أم amend؟

الأمرهل يتغيّر الـ hash؟آمن بعد الدفع؟
git commit --amendنعمNo
git notes addNoنعم

أمثلة

إضافة ملاحظة

git notes add -m "Reviewed by Sam"

إرفاق ملاحظة بـ HEAD.


التعليق على commit أقدم

git notes add -m "Deployed" a1b2c3d

يمكن لأي commit أن يحصل على ملاحظة.


مشاركة الملاحظات

git push origin refs/notes/commits

لا تُدفع الملاحظات إلا حين تطلب.

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

1
git notes add -m "Reviewed by Sam" a1b2c3d

إرفاق الملاحظة

2
git push origin refs/notes/commits

مشاركتها مع الفريق

حل المشكلات

error: Cannot add notes. Found existing notes

السبب: لدى الـ commit ملاحظة بالفعل

استخدم git notes append، أو add -f لاستبدالها

زملائي لا يرون ملاحظاتي

السبب: لا تُدفع الملاحظات افتراضيًا

git push origin refs/notes/*، واجلبها بـ git fetch origin refs/notes/*:refs/notes/*

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

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

  • ✓استخدم الملاحظات للمعلومات التي تأتي بعد الـ commit (المراجعات، نتائج CI).

أخطاء متكررة

  • ✗تعديل commit مدفوع بـ amend لإضافة معلومة فقط — الملاحظة تحفظ الـ hash.
  • ✗توقّع أن تنتقل الملاحظات مع git push — ادفع refs/notes/* صراحةً.

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

A:

لا. تُخزَّن بجانبه؛ ويبقى الـ commit والـ hash متطابقين.