تنظيف Git: إزالة الملفات غير المتعقبة والحفاظ على نظافة المستودعات

عند العمل على مستودع Git، من الشائع تراكم ملفات ودلائل غير متتبعة لا تشكل جزءًا من نظام التحكم في الإصدارات للمستودع. يمكن أن تشمل هذه الملفات ملفات مؤقتة، ومنتجات بناء، أو ملفات أخرى تم إنشاؤها محليًا ولم يتم تأكيدها. مع مرور الوقت، يمكن أن تراكم هذه الملفات الفوضى في دليل العمل، مما يجعل من الصعب الحفاظ على مساحة عمل نظيفة ومنظمة.

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

فهم أمر git clean

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

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

  • الملفات المؤقتة التي تم إنشاؤها بواسطة عمليات البناء

  • ملفات السجل أو البيانات المخزنة مؤقتًا

  • الملفات المدرجة في .gitignore (إذا تم تحديدها صراحة باستخدام -x)

أمر git clean مفيد للحفاظ على دليل عمل منظم، ويكمل أوامر Git الأخرى مثل git reset وgit checkout، التي تدير التغييرات في الملفات المتعقبة.

أجد ورقة الغش الكاملة لـ Git دليلاً مرجعياً مفيداً لأوامر Git الشائعة.

الاستخدامات الشائعة لأمر git clean

أمر git clean هو أداة مفيدة للحفاظ على دليل عمل نظيف. فيما يلي بعض حالات الاستخدام الشائعة حيث يمكن لـ git clean إزالة الملفات والمجلدات غير الضرورية بأمان.

إزالة الملفات غير المتعقبة

عند العمل في مستودع Git، يمكن أن تتراكم الملفات غير المتعقبة مع مرور الوقت. الخيارات التالية تساعد في إزالتها:

  • git clean -f: يجبر على إزالة الملفات غير المتعقبة.

  • git clean -fd: يزيل الملفات غير المتعقبة والمجلدات غير المتعقبة.

  • git clean -fx: يزيل الملفات غير المتعقبة والمُهملة مثل تلك المدرجة في .gitignore.

ومع ذلك، يجب أن تكون حذرًا عند استخدام خيار -fx لأنه يزيل أيضًا الملفات المتجاهلة. تحقق دائمًا باستخدام التشغيل الجاف (git clean -n) قبل تنفيذ الأمر.

وضع تفاعلي

يُمكن أمر git clean -i من تمكين وضع تفاعلي، مما يسمح للمستخدمين بإزالة الملفات غير المتتبعة انتقائيًا. يكون هذا الوضع مفيدًا عندما ترغب في الحصول على مزيد من التحكم في الملفات أو الدلائل التي سيتم حذفها.

لنفترض أنك تعمل على مشروع قمت بحفظ التغييرات في مجلد Olympics بالفعل. ومع ذلك، قمت بإضافة مصادر بيانات جديدة تحمل الأسماء 2024_Data و 2025_Data. إذا قمت بتشغيل أمر git clean -i، ستحصل على النافذة المنبثقة التي تسمح لك باختيار من بين الخيارات التالية لحذف التغييرات غير المتتبعة.

  • clean:  حذف الملفات المحددة

  • filter: تحديد نمط للملفات التي سيتم حذفها

  • select: اختيار الملفات الفردية برقم

  • إنهاء: الخروج دون حذف أي شيء

git clean -i وضع تفاعلي. الصورة من تأليف المؤلف.

تشغيل جاف للسلامة

استخدام الخيار git clean -n هو إجراء أمان مفيد حيث يقوم بـ “تشغيل جاف”، عرض قائمة بالملفات والمجلدات غير المتتبعة التي ستتم إزالتها دون حذفها فعليًا. يتيح لك ذلك مراجعة التغييرات قبل تنفيذها.

في المثال أدناه، تقوم الأمر git clean -n بعرض القائمة بالملفات التي يجب حذفها ولكن لا يحذفها.

git clean -n للتشغيل الجاف. الصورة من تأليف المؤلف.

الجمع بين git reset

لإعادة تعيين دليل العمل في Git بشكل كامل، يمكنك الجمع بين إعادة تعيين git و git clean حيث:

  • git reset --hard: يعيد الملفات المتتبعة إلى الحالة التي تم التأكيد عليها آخر مرة، متجاهلاً أي تغييرات محلية.

  • git clean -fd: يزيل الملفات والمجلدات غير المتتبعة، تاركًا فقط الملفات المؤكدة.

تضمن هذه الجمعية تنظيف الدليل العام تمامًا، مما يجعله مفيدًا عند التبديل بين الفروع، أو التراجع عن التغييرات التجريبية، أو التحضير لبدء جديد.

تحقق من أو اطلع على دليل Git Pull Force: كيفية الكتابة فوق فرع محلي بواسطة البعيد لتعلم أفضل الممارسات لكتابة تغييرات محلية بقوة.

دليل خطوة بخطوة لاستخدام git clean

اتبع هذه الخطوات لتنظيف مستودع Git الخاص بك بأمان وإزالة الملفات والمجلدات غير المرغوب فيها.

الخطوة 1: تحقق من الحالة الحالية

قبل التنظيف، قم بتشغيل git status للتحقق من الحالة الحالية لمستودعك لمعرفة الملفات التي لم تُتبع.

git status

git status للتحقق من الحالة الحالية للمستودع. الصورة من قبل المؤلف.

الخطوة 2: معاينة ما سيتم إزالته

قبل تنفيذ أي أمر إزالة، استخدم git clean -n لمعاينة ما سيتم إزالته.

git clean -n

git clean -n لمعاينة ما يجب حذفه. الصورة من قبل المؤلف.

الخطوة 3: إزالة الملفات غير المتتبعة

قم بتشغيل git clean -f لإزالة الملفات غير المتتبعة إذا بدت المعاينة صحيحة.

git clean -f

إزالة التغييرات غير المتتبعة باستخدام git clean -f. الصورة من قبل المؤلف.

الخطوة 4: إزالة المجلدات غير المتتبعة

استخدم git clean -fd لإزالة المجلدات غير المتتبعة.

git clean -fd

احذف الدلائل غير المتتبعة باستخدام git clean -fd. الصورة من قبل الكاتب.

الخطوة 5: احذف الملفات المتجاهلة

لحذف كلاً من الملفات غير المتتبعة والمتجاهلة، استخدم الأمر git clean -fx.

git clean -fx

الخطوة 6: استخدم الوضع التفاعلي للتنظيف الانتقائي

للحصول على مزيد من التحكم، اعتبر استخدام git clean -i للحذف التفاعلي. يتيح لك هذا الوضع اختيار الملفات التي ترغب في حذفها بشكل فردي.

Git clean -i

git clean -i الوضع التفاعلي للتنظيف الانتقائي. الصورة من قبل الكاتب.

git clean مقابل الأوامر Git الأخرى

يتم مقارنة أمر git clean غالبًا مع الأوامر الأخرى في Git التي تعدل أو تعيد تعيين الملفات. يسلط الجدول أدناه الضوء على الاختلافات الرئيسية:

Command Function
git clean يزيل الملفات والدلائل غير المتتبعة بشكل دائم.
git reset يعيد تعيين الملفات المتتبعة إلى حالة سابقة، مما يؤثر على التغييرات المرحلة والمؤكدة.
git checkout (أو git restore) يتجاهل التغييرات في الملفات المتتبعة ولكن لا يقوم بإزالتها.
git stash يحفظ التغييرات المتتبعة وغير المتتبعة مؤقتًا للاستخدام لاحقًا.

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

لاستخدام git clean بأمان وبكفاءة، اتبع هذه الممارسات الجيدة:

  • استخدم التجارب الجافة (-n) قبل الحذف: استخدم دائمًا الخيار git clean -n لإجراء تجربة جافة قبل تنفيذ git clean. يتيح لك ذلك معاينة الملفات التي سيتم حذفها دون حذفها فعليًا.

  • كن حذرًا من الملفات المهملة: عند استخدام git clean، كن حذرًا عند استخدام الخيار -x، الذي يزيل الملفات المهملة. هذا يمكن أن يحذف ملفات التكوين المهمة المدرجة في .gitignore. إذا كنت بحاجة إلى إزالة الملفات المهملة، استخدم الأمر git clean -fx.

  • الجمع مع إعادة تعيين Git للتنظيف الكامل: لإعادة ضبط مستودعك بالكامل، قم بجمع git reset مع git clean، حيث يقوم git reset --hard بإعادة الملفات المتتبعة إلى حالتها المحفوظة الأخيرة وgit clean -fd بإزالة الملفات والمجلدات غير المتتبعة.

  • استخدم وضع التفاعلي (-i) للحذف الآمن: بدلاً من إزالة الملفات بشكل عشوائي، استخدم الوضع التفاعلي (git clean -i) لمراجعة وتحديد الملفات التي تريد حذفها.

المخاطر المحتملة والاحتياطات

يمكن أن يكون استخدام git clean محفوفًا بالمخاطر إذا لم يتم بعناية، حيث يحذف الملفات بشكل دائم دون تخزينها في أي مكان. فيما يلي بعض المخاطر والاحتياطات الرئيسية التي يجب مراعاتها:

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

  • كن حذرًا مع الخيار -x: باستخدام git clean -fx يتم حذف الملفات المتجاهلة، والتي قد تشمل ملفات تكوين مهمة مدرجة في .gitignore أو ذاكرة التخزين المؤقتة مثل node_modules/ و venv/. حذف هذه الملفات عن طريق الخطأ يمكن أن يتسبب في تعطيل عمليات البناء أو بيئات التطوير، لذا استخدم هذا الخيار فقط عند الضرورة.

  • قم بتشغيل الاختبار الجاف أولاً: قم دائمًا بتنفيذ اختبار جاف باستخدام git clean -n قبل تنفيذ git clean -f. تسمح هذه الخطوة لك بمعاينة الملفات التي ستتم حذفها، مما يساعدك على تجنب حذف الملفات المهمة بطريق الخطأ

  • النهج البديل: في بعض السيناريوهات، قد يكون استخدام git stash خيارًا أفضل من git clean. يقوم أمر git stash -u بتخزين الملفات غير المتتبعة، باستثناء الملفات المتجاهلة للاسترداد لاحقًا، ويقوم git stash pop بإعادة التغييرات المخزنة إذا لزم الأمر. يعد هذا الأسلوب مفيدًا عندما تحتاج إلى التبديل بين الفروع أو تنظيف مساحة العمل الخاصة بك دون فقدان التغييرات بشكل دائم.

الاستنتاج

يظهر قاعدة الكود المحافظ عليها اهتمامًا بالتفاصيل والكفاءة والقدرة على إدارة الأصول الرقمية بمسؤولية. يبحث أصحاب العمل عن المطورين الذين يفهمون الممارسات الجيدة مثل استخدام git clean -n قبل حذف الملفات، ويحذرون في التعامل مع الملفات المتجاهلة باستخدام -x، واستخدام البدائل الآمنة مثل git stash.

خوض دورات DataCamp ليست فقط وسيلة رائعة للتعلم ولكنها أيضًا وسيلة رائعة للإشارة إلى أصحاب العمل أنك تأخذ تطوير البرمجيات على محمل الجد. ومن ذلك، أوصي بدراسة مقالنا أفضل 20 سؤال وجواب في مقابلات Git لجميع المستويات وخوض مسارنا الجديد أساسيات Git لتصبح خبيرًا في كل ما يتعلق بـ Git.

Source:
https://www.datacamp.com/tutorial/git-clean