نقاط الاستعادة والتراجع: صمام الأمان للتراجع عن التعديلات
📚 تنقل السلسلة: المقال السابق 36 أوامر slash: اختصارات العمل السريع علمك كيفية إعداد واستدعاء الاختصارات السريعة يدوياً، وظهر أمر
/rewindضمن القائمة. وينتقل هذا المقال لشرح الميزة بالتفصيل - نقاط الاستعادة (Checkpoints) وهي عبارة عن لقطات حفظ تلقائية يسجلها Claude Code قبل تعديل الملفات لتتمكن من التراجع والعودة لكود سليم في أي وقت. سنوضح آلية الحفظ، وكيفية التراجع, وما يمكن استعادته وما لا يمكن، والفرق الجوهري بينها وبين نظام git.
يصف الكثيرون نقاط الاستعادة بأنها "حبة الدواء المهدئة للأخطاء"، حيث تمنحك الأمان لتفويض Claude بمهام تعديل واسعة - ولكن بصراحة، معاملتها كبديل لنظام git ستؤدي حتماً لضياع ملفاتك.
تأمل مطوراً مبتدئاً مع Claude Code، سمع بميزة /rewind وبدأ بتفويض Claude لتعديل عشرات الملفات البرمجية دفعة واحدة، وتخلل ذلك تشغيل أوامر rm e mv في الطرفية لتنظيف المجلدات. وعند اكتشافه خطأ في مسار العمل لاحقاً، استدعى أمر /rewind بثقة تامة للتراجع - ليكتشف استعادة محتوى بعض الملفات فقط، مع اختفاء تام للملفات التي حُذفت بأمر rm. ليقع في حيرة وتساؤل: "ألم تذكر الوثائق قدرة الأداة على التراجع الكامل؟".
تتراجع الأداة وتستعيد الملفات التي عدلها Claude باستخدام أدوات تحرير الملفات الخاصة به، ولا تملك صلاحية التراجع عن أوامر الطرفية (bash) التي تم تشغيلها على قرص جهازك، كما أنها لا تمثل تاريخاً برمجياً دائماً كنظام git. فنظام نقاط الاستعادة يمثل عملية تراجع محلي تفاعلية للجلسة تمتاز بالسرعة والآلية والقدرة على تراجع المحادثة والكود معاً؛ ولكنها تمتلك حدوداً واضحة وصارمة لا يمكن تجاوزها.
يركز هذا المقال على محورين أساسيين: أولاً، شرح تشغيل وإدارة نقاط الاستعادة والتحكم بمسارها؛ وثانياً، تحديد حدودها الأمنية - لتوضيح ما يمكن استعادته وما لا يمكن، ومتى يجب الاعتماد عليها ومتى يتعين الانتقال لنظام git. فمعرفة الحدود تمثل صمام الأمان الحقيقي لاستخدام الميزة بنجاح.
بعد قراءة هذا المقال، ستحصل على:
- مفهوم نقاط الاستعادة ومتى يتم تسجيل وحفظ اللقطات تلقائياً دون تدخل منك.
- كيفية فتح قائمة التراجع بمسارين: كتابة
/rewindأو بالضغط المزدوج على زرEscوخيارات القائمة المتاحة. - جدول مقارنة تفصيلي: ما يمكن استعادته وما لا يمكن (استعادة الكود والمحادثة مقابل ضياع أوامر bash الخارجية).
- توزيع المهام وتكامل العمل بين نقاط الاستعادة ونظام git.
- تطبيق عملي متكامل: إحداث خطأ برمجى وتعديل ملفات ثم التراجع الفوري واستعادة الحالة السليمة.
01 ما هي نقاط الاستعادة وكيف تعمل?
لنبدأ بالخلاصة: نقاط الاستعادة هي لقطات حفظ تلقائية يقوم Claude Code بتسجيلها لملفات مشروعك قبل تعديلها - حيث يتم حفظ لقطة قبل كل سؤال أو توجيه ترسله؛ لتتمكن لاحقاً من التراجع والعودة لتلك اللقطة بكتابة /rewind.
أشرنا للميزة في المقال 07 وذكرنا دورها in حماية الملفات. ولتفصيل آلية عملها، تذكر مسار التفاعل الافتراضي: ترسل سؤالاً أو أمراً ← يقوم Claude بالتفكير والتعديل وفحص الملفات ← تراجع النتائج وترسل سؤالاً جديداً (المقال 03). ودور نقاط الاستعادة هو التقاط وحفظ حالة الكود الحالية قبل البدء بتنفيذ كل سؤال جديد يصله.
تشبيه: علامات الفصول في مسجل الفيديو (Chapter Marks). عند مشاهدة تسجيل فيديو طويل، يضع النظام علامة إرشادية عند بداية كل فصل جديد لتتمكن من الانتقال المباشر للفصل المطلوب دون الحجة للمرور بكافة المقاطع بالتتابع. نقاط الاستعادة تعمل بنفس الفكرة: فكل سؤال أو توجيه ترسله يمثل علامة فصل جديدة في شريط العمل البرمجى؛ واستدعاء /rewind يمثل سحب مؤشر التشغيل للعلامة المطلوبة مباشرة. والفرق الجوهري أن التراجع هنا لا يقتصر على المشاهدة بل يعيد ملفات الكود وسياق المحادثة للحالة الفعلية السليمة لتلك اللحظة للبدء بمسار عمل جديد.
يعرف التوثيق الرسمي نقاط الاستعادة كالتالي:
عند العمل مع Claude، يقوم نظام checkpointing تلقائياً بالتقاط وحفظ حالة الكود قبل بدء كل تعديل للملفات. ويمنحك صمام الأمان هذا الثقة لتفويض الوكيل بمهام بناء برمجية واسعة النطاق لضمان إمكانية العودة لحالة الكود السابقة في أي وقت.
ونشدد على كلمة تلقائياً. فهذا يمثل الفارق الأساسي بين نقاط الاستعادة ونظام git - حيث لا تتطلب الميزة أي إجراء يدوي منك. ففي git تضطر لكتابة git commit لحفظ التغييرات، وفي حال النسيان تضيع التعديلات؛ بينما في نقاط الاستعادة يقوم Claude بالتقاط الصور وحفظها في الخلفية دون الحاجة لتذكيره أو التدخل في عمله.
يحدد التوثيق أربعة استخدامات شائعة للميزة:
- دراسة حلول برمجية بديلة: عند تجربة فكرة ولم تعجبك النتيجة، تراجع فوراً لنقطة البدء وحاول مجدداً بأسلوب آخر دون قلق من تخريب الملفات.
- تدارك الأخطاء البرمجية المفاجئة: إذا أجرى تعديلاً وتوقفت اختبارات المشروع عن العمل، تراجع لنقطة الاستعادة السابقة ليعود الكود سليماً فوراً بدلاً من تتبع السطور يدوياً.
- إعادة بناء المكونات: السماح له بإعادة بناء وتنسيق وحدة برمجية بالكامل، وعند اكتشاف تدني الجودة تراجع للحالة السابقة بضغطة زر.
- تخفيف وتوفير مساحة الذاكرة: عند امتلاء مساحة المحادثة بالاستفسارات الجانبية، يمكنك تراجع الحوار للقطة نظيفة سابقة مع الإبقاء على الكود الحالي (سنوضح ذلك في القسم 03).
تلاحظ أن كافة الحالات تشترك في توفير شجاعة التجربة والمبادرة دون خوف من ضياع الكود.
💡 خلاصة سريعة: نقاط الاستعادة هي لقطات حفظ تلقائية يسجلها Claude لكود المشروع قبل البدء بتنفيذ كل سؤال جديد، وتستدعى بأمر
/rewindللتراجع الفوري كوداً وحواراً دون حاجة لإجراءات حفظ يدوية.
02 تهيئة وتخزين نقاط الاستعادة
بما أن العملية تتم تلقائياً، فمن المهم فهم المعايير الحاكمة لها: متى يتم الحفظ، وأين تُخزن الملفات، وكم تبلغ مدة صلاحيتها.
أولاً: متى يتم التقاط الصور؟
القاعدة البرمجية ثابتة: كل توجيه أو سؤال (prompt) ترسله للوكيل ينشئ تلقائياً نقطة استعادة جديدة. يوضح التوثيق:
ينشئ كل توجيه مستخدم (prompt) نقطة استعادة (checkpoint) جديدة.
وبذلك تتماشى علامات الفصول مع وتيرة حوارك وتوجيهاتك - فإذا أرسلت عشرة أسئلة متتالية، تملك عشرة نقاط استعادة يمكنك التراجع إليها بالتسلسل. وهذا يفسر عرض نصوص أسئلتك السابقة في قائمة خيارات التراجع لتسهيل التعرف على اللحظة المطلوبة.
يوضح المخطط التالي كيفية بناء وتوزيع نقاط الاستعادة على مسار المحادثة:

يوضح المخطط أنه قبل بدء تنفيذ كل سؤال جديد، يسجل Claude نقطة استعادة (الدوائر الزرقاء). وفي حال حدوث خطأ عند السؤال الثالث، يتيح أمر /rewind التراجع الصريح للنقطة الأولى وإلغاء تعديلات السؤالين الثاني والثالث والعودة لمسار حوار نظيف.
ثانياً: أين تُحفظ الملفات على جهازك؟
لا تُحفظ الصور في الذاكرة المؤقتة للبرنامج بل تُكتب كملفات فعلية على قرص جهازك. يوضح مستند تهيئة المجلدات claude-directory.md مسار الحفظ المعتمد:
يمثل مجلد
file-history/<session>/مستودع لقطات الحفظ التلقائية للملفات التي عدلها Claude، ويُستخدم لاستعادة وتهيئة الملفات عند التراجع.
وتُحفظ هذه الملفات في دليل المستخدم الرئيسي ~/.claude/file-history/<session>/ بشكل منظم. ومعرفة هذا المسار يساعدك في فهم استهلاك الأداة للقرص وإمكانية تنظيفها عند الحاجة.
ثالثاً: استمرارية نقاط الاستعادة عند إغلاق الأداة
نظراً لكتابتها على القرص، تتميز نقاط الاستعادة باستمراريتها حتى بعد إغلاق الطرفية أو إعادة تشغيل الجهاز. يوضح التوثيق:
تستمر نقاط الاستعادة (checkpoints) في العمل عبر جلسات التشغيل المختلفة، وتكون متاحة للاستدعاء والتراجع عند استئناف وتكملة المحادثة السابقة.
وبذلك يمكنك إغلاق الجلسة الحالية بـ Ctrl+D والعودة في اليوم التالي لاستئناف العمل بـ claude --resume مع الاحتفاظ بكامل صلاحية التراجع لنقاط استعادة الأمس بيسر وسهولة.
رابعاً: مدة الصلاحية وإيقاف التراكم
لمنع امتلاء القرص بملفات الحفظ القديمة، يطبق النظام آلية تنظيف دورية:
يتم تنظيف وحذف نقاط الاستعادة القديمة تلقائياً بعد مرور 30 يوماً (خيار قابل للتعديل).
ويُضبط خيار الصلاحية في ملف الإعدادات الموحد settings.json باستخدام متغير cleanupPeriodDays (المقال 31). ويقبل هذا المتغير قيماً تبدأ من يوم واحد كحد أدنى ويُحظر تعيينه كـ 0. ويُنصح بترك الإعداد الافتراضي (30 يوماً) لكونه مناسباً لغالبية بيئات التطوير، مع ترحيل التغييرات الهامة والمستقرة لنظام git دوماً.
| معيار التشغيل | السلوك والتهيئة | دور المطور |
|---|---|---|
| توقيت التقاط الصورة | تلقائي مع إرسال كل سؤال جديد للجلسة | لا يتطلب أي إجراء يدوي |
| مسار الحفظ الفعلي | مجلد ~/.claude/file-history/ | مجلد نظام محمي لا يتطلب تدخل يدوي |
| الاستمرارية | تعمل وتستمر عبر جلسات التشغيل وإعادة التشغيل | استئناف الحوار يحتفظ بنقاط التراجع السابقة |
| مدة الصلاحية | 30 يوماً افتراضياً وتُحذف بعدها | يُنصح بترك التهيئة الافتراضية للسلامة |
💡 خلاصة سريعة: تُسجل نقاط الاستعادة تلقائياً مع كل سؤال وتُكتب في مجلد المستخدم
~/.claude/file-history/وتتميز باستمراريتها عبر جلسات التشغيل المختلفة وصلاحيتها لمدة 30 يوماً.
03 كيفية استدعاء خيارات التراجع والعودة
لطلب التراجع والعودة لنقطة استعادة سابقة، يتوفر مساران أساسيان للتشغيل:
أولاً: مسارات تفعيل قائمة التراجع
- كتابة أمر slash المخصص:text
/rewind - الضغط المزدوج على زر Esc: عند خلو صندوق الإدخال تماماً من النصوص، اضغط على زر
Escمرتين متتاليتين:text(صندوق الإدخال فارغ ونضغط Esc Esc)
يفتح كلا المسارين واجهة قائمة التراجع (rewind menu) التفاعلية. يوضح التوثيق:
يؤدي تشغيل أمر
/rewindأو الضغط المزدوج علىEscوصندوق الإدخال فارغ إلى فتح قائمة خيارات التراجع ونقاط الاستعادة.
ونعيد التذكير بقاعدة صندوق الإدخال الهامة لتفادي توقف الاستجابة:
إذا كان صندوق الإدخال يحتوي على نصوص مكتوبة، فإن الضغط المزدوج على
Escيقوم بمسح وحذف تلك النصوص فقط دون فتح القائمة. ويتم حفظ النصوص الممسوحة في سجل الكتابة لتتمكن من استدعائها بالضغط على السهم الأعلى↑لاحقاً.
وبذلك يجب مسح صندوق الإدخال أولاً قبل الضغط المزدوج لـ Esc لضمان ظهور القائمة، أو كتابة أمر /rewind مباشرة لتخطي الفحص.
ثانياً: خيارات قائمة التراجع ونقاط الاستعادة
بمجرد فتح القائمة، يعرض النظام قائمة بنصوص أسئلتك السابقة بالترتيب الزمني. بعد اختيار السؤال (اللحظة الزمنية المطلوبة)، يعرض النظام الخيارات التالية لتحديد طبيعة التراجع:
| خيار القائمة | سلوك التراجع الفعلي | السيناريو المفضل للاستخدام |
|---|---|---|
| Restore code and conversation | استعادة الكود والمحادثة معاً لتلك اللحظة | رغبة في إلغاء وتصفير كامل الخطوات السابقة كأنها لم تكن. |
| Restore conversation | استعادة المحادثة وتصفير حوارها، مع الإبقاء على الكود الحالي دون تغيير | الكود المكتوب سليم ولكن تشتت سياق الحوار وتريد إعادة ترتيب الأسئلة. |
| Restore code | استعادة وتراجع كود الملفات، مع الإبقاء على المحادثة وسياق الحوار | الكود المكتوب يحتوي على أخطاء وتريد إعادة صياغته مع حفظ التوجيهات السابقة. |
| Summarize from here | تلخيص وضغط الحوار بدءاً من هذا السؤال والسطور التالية | تقليص حجم المحادثات الجانبية الطويلة لتوفير مساحة الذاكرة. |
| Summarize to here | تلخيص وضغط كافة الأسئلة السابقة وصولاً لهذا السؤال | تصفية المقدمات الطويلة للمشروع لتسريع عمل الجلسة الحالية. |
| Cancel | إغلاق القائمة والعودة دون إجراء تعديلات | إغلاق الواجهة عند الاستدعاء الخاطئ. |
تسمح خيارات "التراجع الجزئي" للوكيل بالتركيز على معالجة المشاكل بدقة:
- خيار استعادة الكود فقط (Restore code): إذا استغرقت الجلسة خمس جولات نقاش لتحديد آلية المعالجة، وكتب الكود بشكل خاطئ لاحقاً. فبدلاً من إعادة شرح الموضوع من البداية، تراجع عن الكود المكتوب فقط مع الإبقاء على الحوار لتطالبه بإعادة الكتابة وفق فهمه الحالي.
- خيار استعادة المحادثة فقط (Restore conversation): إذا كان الكود المكتوب سليماً، وتخلل ذلك أسئلة فرعية كثيرة شتتت انتباه الوكيل، فيمكنك تراجع الحوار لنقطة ما قبل الأسئلة الفرعية مع حفظ الكود المكتوب سليماً في مجلد المشروع لمواصلة البناء بكفاءة.
ويرجى الانتباه للفارق الجوهري بين خيارات التراجع (Restore) وخيارات التلخيص (Summarize):
- خيارات التراجع (Restore): تعدل وتسترجع حالة الكود والملفات على قرص جهازك لتعود للحالة السابقة (تغيير فعلي للملفات).
- خيارات التلخيص (Summarize): لا تمس ملفات الكود نهائياً، وتكتفي بضغط وتلخيص سياق نصوص المحادثة لتوفير مساحة الذاكرة للعمل (تغيير في الذاكرة فقط).
ويشير التوثيق لهذا الفارق:
تقوم خيارات الاستعادة (Restore) بتعديل حالة الملفات وتاريخ الحوار، بينما تقوم خيارات التلخيص (Summarize) بضغط أجزاء من المحادثة برمجياً دون لمس الملفات على القرص.
وتمثل خيارات التلخيص هنا آلية ضبط وتوجيه متطورة لأمر التلخيص العام /compact (المقال 19).
تفصيل إضافي مفيد: عند اختيار "استعادة المحادثة" أو "التلخيص من هنا"، يتم تلقائياً نسخ نص السؤال المختار ولصقه في صندوق الإدخال مجدداً لتتمكن من تعديله وإعادة إرساله بيسر وسهولة.
💡 خلاصة سريعة: تُستدعى القائمة بـ
/rewindأو بـEsc Escعند خلو صندوق الإدخال؛ وتوفر القائمة خيارات استعادة متكاملة أو جزئية (للكود فقط أو للحوار فقط) وخيارات تلخيص ذكية لضغط الذاكرة.
04 الحدود الأمنية لنقاط الاستعادة ( ما يمكن استعادته وما لا يمكن )
ننتقل للحديث عن حدود عمل نقاط الاستعادة لضمان سلامة ملفاتك وتفادي المشاكل الأمنية.
القاعدة الصارمة للنظام: تنحصر صلاحية نقاط الاستعادة وتتبعها على الملفات التي يعدلها Claude باستخدام أدوات التحرير والكتابة الخاصة به حصرياً. ويُحظر عليها تتبع أو التراجع عن أي تغييرات أخرى.
تشبيه: تسجيل كاميرات المراقبة للغرفة. تسجل الكاميرات صورة الغرفة بدقة، وفي حال خروج شخص من الباب أو إرساله رسالة بريدية من حاسوبه داخل الغرفة - فإن إعادة تشغيل وتراجع شريط الفيديو للوراء لن يمنع وصول الرسالة للمستلم ولن يعيد الشخص للغرفة. فنقاط الاستعادة تسجل حالة نصوص الملفات فقط، ولا تملك صلاحية التراجع عن الأنشطة والعمليات التي تمت خارج حدود تلك الملفات.
يوضح الجدول التالي ما يندرج تحت صلاحية نقاط الاستعادة وما يخرج عنها بشكل كامل:
| العمليات والتعديلات | إمكانية التراجع والعودة | السبب العلمي للحدود |
|---|---|---|
تعديل محتوى الكود للملفات بواسطة أدوات Claude (Write/Edit) | ✅ نعم | يقع في صميم عمل وتتبع نقاط الاستعادة المدمجة. |
| استرجاع وتصفير تاريخ المحادثة وسياق الجلسة | ✅ نعم | يتم حفظ تاريخ الجلسة برمجياً ودعمه بالتراجع. |
حذف أو نقل الملفات بأوامر الطرفية (مثل rm file أو mv file) | ❌ لا | لا تتبع نقاط الاستعادة عمليات أوامر Bash نهائياً. |
| التعديلات التي يجريها المطور خارج بيئة Claude Code | ❌ لا | تنحصر صلاحية التتبع على عمليات الوكيل الداخلية فقط. |
| التعديلات الناتجة عن جلسات تشغيل أخرى متوازية للبرنامج | ❌ لا | لكل جلسة تاريخ ونقاط استعادة مستقلة ومعزولة. |
| العمليات الخارجية (تعديل قواعد البيانات، إرسال طلبات الـ API) | ❌ لا | عمليات تقع خارج حدود الملفات النصية للجهاز تماماً. |
ويشدد التوثيق على حظر تتبع أوامر الطرفية (bash):
لا تتبع نقاط الاستعادة التعديلات الناتجة عن تشغيل أوامر bash المباشرة. على سبيل المثال، إذا قام Claude Code بتشغيل أوامر مثل
rm file.txtأوmv old.txt new.txtأوcp file file2- فلن تتمكن من التراجع عن هذه العمليات وتظل الملفات محذوفة. وتقتصر الصلاحية على التعديلات المباشرة لأدوات تحرير الملفات الخاصة بالوكيل.
كيف تميز بين نوعي تعديل الملفات أثناء الجلسة؟ بمراقبة أدوات التشغيل الفعالة (التي تظهر في الطرفية):
- عند ظهور أسماء أدوات تحرير مثل
EditأوWriteأوMultiEdit← التعديل آمن ويخضع لتتبع نقاط الاستعادة ويمكنك كتابة/rewindللتراجع عنه. - عند ظهور أداة الطرفية
Bashوبدء تشغيل أوامر تعديل بنيوية مثلrmأوmvأوcpأو روابط تحويل المخرجات>← التعديل غير محمي ولا يمكن لنقاط الاستعادة التراجع عنه نهائياً.
القاعدة الأمنية الصارمة: عند تفويض Claude لتشغيل عمليات حذف أو نقل بنيوية للملفات أو تعديل قواعد البيانات أو إرسال طلبات API خارجية، لا تعتمد على نقاط الاستعادة نهائياً لحمايتك - وقم بإجراء commits لنظام git أو حفظ نسخ احتياطية للملفات أولاً قبل البدء.
تأمل المقارنة التالية لمستويات الأخطاء وآليات الإنقاذ المعتمدة:
| طبيعة المشكلة الحاصلة | هل تفيد /rewind للإنقاذ؟ | البديل الفعال للإنقاذ |
|---|---|---|
| تعديل كود برمجي بشكل خاطئ وتوقف البناء | ✅ نعم | كتابة أمر /rewind والعودة للقطة السابقة. |
حذف ملفات حيوية بأمر rm بالخطأ | ❌ لا | استعادة الملفات بـ git checkout للـ commits السابقة. |
| تعديل وتخريب بيانات حقيقية في قاعدة البيانات | ❌ لا | استعادة نسخة احتياطية لقاعدة البيانات أو تراجع المعاملات. |
| دفع تعديلات خاطئة للمستودع العام بـ git push | ❌ لا | استخدام أوامر git revert أو git reset للمستودع العام. |
| تعديل يدوي قمت به أنت في محرر الكود الخارجي | ❌ لا | التراجع اليدوي للمحرر (Ctrl+Z) أو مراجعة git. |
Tذكر دائماً: كل تغيير يقع خارج نطاق نصوص الملفات التي عدلها الوكيل بأدواته المباشرة يخرج عن سيطرة نقاط الاستعادة.
💡 خلاصة سريعة: تنحصر صلاحية نقاط الاستعادة في تعديلات ملفات الكود المنجزة بأدوات Claude وتحريرها؛ وتفقد الأداة صلاحية التراجع عن حذف الملفات بأوامر bash (
rm/mv) أو العمليات الخارجية وتعديل قواعد البيانات والتي تتطلب استخدام git والنسخ الاحتياطية.
05 تكامل العمل بين نقاط الاستعادة ونظام git
نخلص للنتيجة الهامة التي أشرنا إليها في البداية: لا تمثل نقاط الاستعادة بديلاً لنظام git بل تعمل كأداة مساعدة ومتكاملة معه.
يوضح التوثيق الرسمي توزيع المهام بين الأداتين بجملة بليغة:
تعامل مع نقاط الاستعادة (checkpoints) كخيار "تراجع محلي" (local undo)، وتعامل مع نظام Git كـ "تاريخ دائم للمشروع" (permanent history).
تشبيه: كراسة المسودات والمسودة المعتمدة. تمثل نقاط الاستعادة كراسة المسودات التي تكتب فيها الأفكار وتعدلها وتمسحها بسرعة وسهولة دون قيود - فهي عملية سريعة وتلقائية وتخصك أنت فقط وتُحذف بعد فترة؛ ويمثل نظام git المستندات الرسمية المعتمدة التي تقوم بتوثيقها وحفظها في الأرشيف - فهي عملية رسمية دائمة وموثقة ويمكن مشاركتها مع بقية أعضاء الفريق. وغياب كراسة المسودات يربك العمل، وغياب الأرشيف الرسمي يهدد المشروع بالضياع.
توزيع المهام كما يحدده التوثيق:
- استمر في الاعتماد على أنظمة التحكم في الإصدارات (مثل Git) لإجراء commits وبناء الفروع وحفظ التاريخ الطويل للمشروع.
- تدعم نقاط الاستعادة عمل أنظمة التحكم ولا تحل بديلة عنها نهائياً.
يوضح الجدول التالي الفروق الجوهرية وتكامل الأدوار بينهما:
| وجه المقارنة | نقاط الاستعادة (Checkpoints) | نظام التحكم في الإصدارات (Git) |
|---|---|---|
| آلية الحفظ والتشغيل | تلقائية بالكامل دون تدخل يدوي | يدوية صريحة بكتابة المطور لأوامر commit |
| دقة وتفصيل النقاط | دقيقة جداً (لقطة مع كل سؤال في الجلسة) | متوسطة (تُسجل عند إتمام مراحل عمل واضحة) |
| حماية أوامر bash و rm | ❌ لا تدعم حمايتها | ✅ تدعم استعادة الملفات الملتزم بها سابقاً |
| مدة حفظ البيانات | مؤقتة (تُحذف بعد 30 يوماً تلقائياً) | دائمة ومستمرة حتى تقوم بحذفها يدوياً |
| المشاركة والتعاون | محلية على جهازك وتخص الجلسة الحالية | عالمية تدعم الدفع والمشاركة مع كامل الفريق |
| أفضل سيناريو للاستخدام | التراجع السريع عند كتابة كود خاطئ لحظياً | توثيق المعالم والنسخ المستقرة للمشروع وحماية البنية |
مخطط الحركة المقترح للمطورين: استخدم نقاط الاستعادة للتنقل والتراجع اللحظي السريع أثناء كتابة وتجربة الكود مع Claude؛ وبمجرد وصولك لكود سليم وتجاوز الاختبارات بنجاح، قم فوراً بكتابة git commit لحفظ الميزة برمجياً بصفة دائمة. يضمن هذا التكامل سرعة التجربة وأمان المشروع.
ملاحظة متقدمة للاستكشاف المتوازي: إذا كنت تريد تجربة فكرة برمجية معقدة بالكامل مع الإبقاء على الجلسة الحالية مستقرة دون مساس، بدلاً من استخدام خيارات التلخيص، استعن بمعلمة fork لتوليد جلسة عمل متوازية مستقلة كالتالي:
claude --continue --fork-sessionحيث يقوم النظام بتوليد جلسة جديدة تماماً بمعرف مستقل تبدأ من نفس لحظة الجلسة الحالية، مما يتيح لك تجربة الأفكار بحرية في الجلسة الجديدة والعودة للجلسة الأصلية دون تأثر عند تعثر العمل (التفاصيل في المقال 34).
💡 خلاصة سريعة: نقاط الاستعادة تمثل تراجعاً محلياً ومؤقتاً لخطوات الحوار والتجربة، ونظام git يمثل تاريخاً دائماً وموثقاً للمشاريع؛ ويُنصح بالدمج بين التراجع اللحظي للأولى والالتزام الدائم بال commits للثانية.
06 تطبيق عملي: تجربة التراجع الفوري واستعادة الملفات
سنقوم الآن بتجربة عملية متكاملة لإنشاء مجلد تجريبي وتعديل محتويات ملف مع Claude ثم إحداث خطأ برمجى والتراجع الفوري لنقطة الاستعادة السليمة، وفحص سلوك أوامر الطرفية.
الخطوة الأولى: تهيئة مجلد العمل والملف التجريبي
اكتب في الطرفية لتهيئة مجلد اختبارات نظيف وربطه بنظام git:
mkdir ~/rewind-demo && cd ~/rewind-demo
git init
printf 'hello\n' > note.txt
git add note.txt && git commit -m "init: 初始 note"النتيجة المتوقعة: إنشاء ملف note.txt يحتوي على كلمة hello وتسجيل أول commit للمستودع بنجاح لتأمين البداية.
الخطوة الثانية: تشغيل Claude وتعديل الملف
شغل Claude Code:
claudeبمجرد الدخول، وجه الطلب التالي (الذي سينشئ تلقائياً نقطة استعادة أولى):
قم بتعديل ملف note.txt واكتب بداخله ثلاثة أسطر: apple و banana و cherry باستخدام أدوات تحرير الملفاتالنتيجة المتوقعة: يقوم Claude باستدعاء أدوات تحرير الملفات وتعديل محتوى note.txt وعرض التغييرات للموافقة والاعتماد (وافق عليها). نلاحظ استخدام أدوات التحرير المباشرة لضمان خضوعها لتتبع نقاط الاستعادة.
الخطوة الثالثة: إحداث التغيير الثاني غير المرغوب فيه
وجه الطلب التالي لتعديل محتوى الملف وتخريبه:
قم بمسح المحتويات السابقة واكتب جملة: هذا كود خاطئ لا أريده في مشروعيالنتيجة المتوقعة: يتم تعديل الملف note.txt ليحتوي على الجملة الخاطئة فقط. والآن نملك نقطتي استعادة مسجلتين في الجلسة.
الخطوة الرابعة: فتح قائمة التراجع والتراجع عن التغييرات
تأكد من مسح صندوق الإدخال تماماً، واضغط على زر Esc مرتين متتاليتين (أو اكتب أمر /rewind):
(صندوق الإدخال فارغ ونضغط Esc Esc)النتيجة المتوقعة: تظهر قائمة خيارات التراجع التفاعلية تعرض نصوص الأسئلة السابقة. اختر نقطة الاستعادة الأولى (السؤال الخاص بكتابة الفواكه الثلاث)، وحدد خيار "Restore code and conversation".
الخطوة الخامسة: فحص استعادة الملفات الحقيقية
بعد إتمام التراجع بنجاح، شغل استعلاماً سرياً لقراءة الملف:
! cat note.txtالنتيجة المتوقعة: ستشاهد طباعة كلمة hello الأصلية في الطرفية - حيث تراجع Claude عن التعديلين الأخيرين واستعاد الملف لحالته الأولى السليمة بكفاءة دون الحاجة لكتابة أوامر git يدوية. وهذا يثبت سلامة عمل الميزة للملفات المحمية.
الخطوة السادسة: فحص سلوك التراجع لأوامر bash وحذف الملفات
وجه الطلب التالي ليقوم بحذف الملف باستخدام أوامر bash:
استخدم أمر bash المباشر rm لحذف ملف note.txtبمجرد اكتمال الحذف، افتح قائمة التراجع بـ /rewind وحاول التراجع للنقطة السابقة. ثم تحقق من وجود الملف:
! lsالنتيجة المتوقعة: لن يظهر الملف note.txt في مجلد المشروع برغم تشغيل التراجع - وهذا يؤكد عملياً عجز نقاط الاستعادة عن حماية وتتبع أوامر الطرفية وحذف الملفات.
الخطوة السابعة: الاستعانة بنظام git للإنقاذ النهائي
لاستعادة ملفك المحذوف نهائياً، استدعِ أمر git للتكامل:
git checkout note.txtالنتيجة المتوقعة: يستعيد نظام git ملف note.txt من آخر commit سليم مع محتوياته بنجاح، مما يوضح تكامل العمل الفعلي بين نقاط الاستعادة ونظام git.
أغلق الجلسة بـ exit ونظف المجلد التجريبي.
بإتمام هذه الخطوات، تكون قد خضت التجربة العملية الكاملة لتسيير نقاط الاستعادة والتحقق من حدودها الأمنية وتكاملها مع git بنجاح.
💡 خلاصة سريعة: خطوات التطبيق - إنشاء ملف وتهيئته بـ git commit ← تعديله لأسطر محددة بأدوات Claude ← مسحه وتخريبه ← استخدام
/rewindوالتحقق من استعادة المحتوى الأول ← حذفه بـ rm والتحقق من عجز التراجع عن استعادته ← استدعاء git checkout لاسترجاع الملف بنجاح.
07 ملخص
شرحنا في هذا المقال آليات عمل نقاط الاستعادة (Checkpoints) وكيفية توظيفها كصمام أمان لتجربة وتعديل الكود بأمان.
لنراجع النقاط الأساسية معاً:
| المعلمة البرمجية | النتيجة والتعلم | ملاحظة هامة |
|---|---|---|
| مفهوم نقاط الاستعادة | لقطات حفظ تلقائية قبل كل تعديل للملفات | تعمل تلقائياً مع كل سؤال جديد ولا تتطلب تدخل يدوي. |
| تشغيل التراجع والعودة | كتابة /rewind أو الضغط المزدوج لـ Esc | يتطلب التراجع بـ Esc خلو صندوق الإدخال تماماً من النصوص. |
| خيارات التراجع التفاعلية | استعادة الكود، أو الحوار، أو ضغط السياق | يتيح التراجع الجزئي إمكانية معالجة الأخطاء وحفظ النقاشات بكفاءة. |
| الحدود الأمنية للميزة | تتبع أدوات Claude وتحريرها للملفات فقط | لا تشمل الصلاحية عمليات الحذف والنقل بأوامر bash (rm/mv) أو العمليات الخارجية. |
| التكامل مع نظام التحكم | نقاط الاستعادة كـ "تراجع محلي" و Git كـ "تاريخ دائم" | صمام أمان مزدوج يعتمد على سرعة التراجع للمؤقت وديمومة ال commits للمستقر. |
| الاستكشاف المتوازي للجلسات | تفرع الجلسات بـ --fork-session | تتيح تفرع مسارات التجربة البرمجية دون التأثير على الجلسة الرئيسية. |
يمكنك الآن: تسيير واستدعاء نقاط الاستعادة بثقة كاملة للتراجع عن التعديلات البرمجية الخاطئة، وتوظيف التراجع الجزئي (للكود فقط أو للحوار فقط) لتقليل وقت الجلسة، والتمييز بدقة بين التعديلات المحمية والعمليات الخارجية المحظورة لتفادي ضياع الملفات، وتنسيق وتوزيع المهام بكفاءة عالية بين نقاط الاستعادة المؤقتة وتاريخ commits الدائم لـ git. هذه المهارات تمنحك بيئة عمل برمجية آمنة وخالية من مخاطر ضياع الأكواد.
تذكر دائماً إجراء commit بانتظام في git عند إتمام المهام البرمجية المستقرة.
المقال القادم سنشرح 38 "دليل الملحقات (Plugins Reference)" - فبعد دراسة المهارات والخطافات وأوامر slash ونقاط الاستعادة، يطرح السؤال: كيف نجمع هذه الأدوات والخيارات في حزمة برمجية واحدة متكاملة قابلة للتثبيت والرفع والمشاركة مع المطورين الآخرين بسهولة؟ سنشرح في المقال القادم الهيكل التصميمي والمواصفات الكاملة لبناء ملحق (Plugin) مخصص لـ Claude Code وتوصيف حقوله ومكوناته بالتفصيل. سنشرح ذلك في المقال القادم.