ما هو الفرق بين git stash و git clean؟

يعد نظام التحكم في الإصدار Git أحد الأدوات الأساسية للمطورين لإدارة المشاريع البرمجية. يوفر Git مجموعة واسعة من الأوامر التي تسهل عمليات إدارة التعليمات البرمجية، بما في ذلك أوامر مثل git stash و git clean. في هذا المقال، سنتناول الفرق بين هذين الأمرين، متى نستخدم كل منهما، وكيفية استخدامهما بفعالية.

ما هو git stash؟

git stash هو أمر يستخدم لحفظ التعديلات غير الملتزمة (unstaged or staged) مؤقتًا في مكان يسمى “stash”، مما يتيح لك التبديل إلى فرع آخر أو تنفيذ أوامر أخرى دون فقدان العمل الذي قمت به. هذا الأمر مفيد للغاية عندما تكون بحاجة إلى تغيير سياق العمل مؤقتًا ولكن لا تريد الالتزام بالتعديلات بعد.

كيف يعمل git stash؟

عند تنفيذ git stash، يقوم Git بما يلي:

  • حفظ التعديلات غير الملتزمة في stash.
  • إعادة الشجرة الحالية (working directory) إلى حالة نظيفة كما لو لم تقم بأي تعديل.

لاستخدام الأمر، يمكنك كتابة:

git stash

يمكنك لاحقًا استعادة التعديلات باستخدام:

git stash apply

الأمثلة العملية

لنفترض أنك تعمل على ملف وأدخلت بعض التعديلات ولكنك تحتاج إلى الانتقال إلى فرع آخر لحل مشكلة طارئة. باستخدام git stash، يمكنك تخزين تعديلاتك مؤقتًا والتبديل إلى الفرع الآخر.

ما هو git clean؟

git clean هو أمر يستخدم لإزالة الملفات غير المتعقبة (untracked files) والأدلة من شجرة العمل. يعمل هذا الأمر على تنظيف الشجرة من الملفات التي لم تضف إلى Git، سواء أكانت ملفات مؤقتة، أو ملفات تم إنشاؤها تلقائيًا أثناء البناء (build)، أو أي ملفات أخرى غير مرغوب فيها.

كيف يعمل git clean؟

عند تنفيذ git clean، يقوم Git بما يلي:

  • حذف جميع الملفات غير المتعقبة من الشجرة.
  • حذف الأدلة غير المتعقبة إذا تم استخدام الخيار -d.

لاستخدام الأمر، يمكنك كتابة:

git clean -f

إذا كنت ترغب في حذف الأدلة غير المتعقبة أيضًا، فاستخدم:

git clean -fd

الأمثلة العملية

لنفترض أنك تعمل على مشروع وأنشأت بعض الملفات المؤقتة أثناء عملية التجربة أو الاختبار. باستخدام git clean، يمكنك تنظيف الشجرة بسهولة.

الفرق الرئيسي بين git stash و git clean

على الرغم من أن كلا الأمرين يمكن أن يساعداك في التعامل مع الشجرة، إلا أنهما يخدمان غايات مختلفة تمامًا. إليك مقارنة توضح الفرق:

العامل git stash git clean
الوظيفة الرئيسية حفظ التعديلات غير الملتزمة مؤقتًا. إزالة الملفات غير المتعقبة.
التعامل مع الملفات غير المتعقبة لا يؤثر على الملفات غير المتعقبة. يحذف الملفات غير المتعقبة بشكل دائم.
إمكانية الاسترجاع يمكن استعادة التعديلات المخزنة باستخدام git stash apply. لا يمكن استعادة الملفات المحذوفة إلا إذا كان لديك نسخة احتياطية.

متى تستخدم git stash؟

استخدم git stash عندما تحتاج إلى:

  • حفظ تقدمك مؤقتًا دون الالتزام.
  • التبديل بين الفروع دون فقدان التعديلات الحالية.
  • التعامل مع تعارضات تحتاج إلى معالجتها في فرع آخر.

متى تستخدم git clean؟

استخدم git clean عندما تحتاج إلى:

  • إزالة الملفات غير المتعقبة التي لم تعد بحاجة إليها.
  • تنظيف المشروع من الملفات المؤقتة أو الناتجة عن عمليات البناء.

تحذيرات ونصائح

قبل استخدام أي من الأمرين، تأكد من التالي:

  • عند استخدام git stash، لاحظ أنه لا يحفظ الملفات غير المتعقبة افتراضيًا. استخدم الخيار --include-untracked إذا كنت بحاجة إلى حفظها أيضًا.
  • عند استخدام git clean، استخدم الخيار -n لاختبار العملية ومعرفة الملفات التي سيتم حذفها قبل التنفيذ الفعلي.

الخلاصة

في الختام، يعد كل من git stash و git clean أدوات قوية يمكن أن تساعدك في إدارة شجرة العمل الخاصة بك بفعالية. اختيار الأداة المناسبة يعتمد على حالتك:

  • إذا كنت ترغب في حفظ العمل غير المكتمل للعودة إليه لاحقًا، فاستخدم git stash.
  • إذا كنت بحاجة إلى تنظيف الشجرة من الملفات غير المرغوب فيها، فاستخدم git clean.

استخدام الأوامر بشكل صحيح يمكن أن يساعدك على تحسين سير العمل وزيادة الإنتاجية في مشاريعك البرمجية.