إزالة الملفات غير المتتبَّعة
تجمع شجرة العمل ملفات لم يأخذ git نسخة منها قط: مذكرة عابرة، أو
debug-output.txt، أو dist/ من بناء فشل، أو node_modules من فرع تركته الشهر
الماضي. ولدى git أمر واحد لهذا — git clean — وهو عملية git الوحيدة التي لا
شيء وراءها. فالمحتوى لم يكن قط في التزام، فلا مدخل في سجل المراجع، ولا مخبأ،
ولا تراجع، ولا تعويذة git تعيده.
ولهذا هي العملية التي يشغّلها الناس في الطرفية ثم يندمون. أما نسخة Gitcito فتعرض القائمة كاملةً قبل أن يحدث أي شيء.
⌘K ← إزالة الملفات غير المتتبَّعة.

ماذا تعني القائمة
كل مدخل هو مسار يستطيع git clean بلوغه، بحجمه على القرص، في مجموعتين:
| المجموعة | ما هي | محددة افتراضيًا |
|---|---|---|
| غير متتبَّع | لم يُلتزَم به قط، ولا يطابقه .gitignore |
نعم |
| متجاهَل | يطابقه .gitignore — ناتج بناء، ذاكرات مؤقتة، .env |
لا |
والفصل هو بيت القصيد. المسارات المتجاهَلة عديمة القيمة عادةً، وهي أحيانًا النسخة
الوحيدة من شيء مهم: ملف .env محلي، أو تفريغ قاعدة بيانات، أو تجهيزة اختبار
نزّلتها. فلا شيء يطابق .gitignore يُحدَّد لك أبدًا.
والمجلد غير المتتبَّع بكامله صف واحد، لا صف لكل ملف — tmp/, dist/,
node_modules/ — لأن تلك هي الحبيبات التي يزيلها git بها، ولأن قائمة من 40,000
ملف قائمة لا يقرأها أحد. وحجمه هو مجموع ما يحويه.
والمجلد الموسوم بأنه مستودع خاص به له .git خاص به: نسخة أسقطتها داخل هذه،
أو تجربة سريعة لم تربطها قط. وgit يرفض إزالة هذه (فهو يريد -ff، وهي راية لا
يعرضها Gitcito) — لكن سلة المهملات تأخذها.
سلة المهملات أم الحذف
النقل إلى سلة المهملات مفعَّل افتراضيًا، ولا يمرّ عبر git إطلاقًا: تذهب المسارات إلى سلة مهملات نظامك، حيث يمكنك إعادتها. وهذا هو الطريق الوحيد الذي يزيل مستودعًا متداخلًا، والوحيد الذي تنجو منه من مربع اختيار خاطئ.
وتعطيله يعني git clean -f -d -x حقيقيًا على المسارات المحددة بالضبط، ويطلب
منك التأكيد والعدد والحجم الإجمالي أمامك. ولا شيء يتعافى من ذلك.
حدود تستحق أن تعرفها
- الملفات غير المتتبَّعة فقط. الملف المتتبَّع المعدَّل ليس هنا — ذاك هو التجاهل، الذي يستعيده من الفهرس أو من HEAD.
- القائمة محدودة بأول 400 مسار. فإن كان لدى مستودع أكثر من ذلك، أزل ما هو مسرود واضغط إعادة الفحص للبقية.
- أحجام المجلدات تقريبية في الأشجار الضخمة جدًا: يتوقف الفحص بعد 20,000 ملف،
فقد يبدو
node_modulesعملاق أصغر مما هو عليه. لكنه لا يبدو أكبر أبدًا. - الفحص لقطة. فإن كتب بناءٌ ملفاتٍ والحوار مفتوح، اضغط إعادة الفحص قبل إزالة أي شيء.
- وتُطابَق المسارات مع قائمة git نفسها للملفات القابلة للإزالة قبل أن يُمسّ أي شيء، فلا يمكن إزالة شيء متتبَّع عبر هذا الحوار ولو بالاسم.
انظر أيضًا: التحضير والتجاهل · تجاهل الملفات · إزالة ملف من السجل