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 خيار
الخيارات
اختيار الخيار المناسب
إضافة معلومات إلى commit
ملاحظة أم amend؟
| الأمر | هل يتغيّر الـ hash؟ | آمن بعد الدفع؟ |
|---|---|---|
git commit --amend | نعم | No |
git notes add | No | نعم |
أمثلة
إضافة ملاحظة
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 متطابقين.