المقدمة
في Git، لا تقتصر إدارة الملفات على تتبع التغييرات فحسب، فقد تحتاج إلى إزالة أو نقل الملفات مع تطور مشروعك. إن فهم كيفية تعامل Git مع حذف الملفات وإعادة تسميتها أمر بالغ الأهمية للحفاظ على مستودع نظيف وفعال. يغطي هذا الدليل مختلف السيناريوهات لإزالة ونقل الملفات في Git، بما في ذلك تأثير استخدام rm
مقابل git rm
، وكيفية استخدام git mv
بفعالية.
إزالة الملفات في Git
السيناريو 1: إزالة ملف من دليل العمل فقط
إذا قمت بحذف ملف يدويًا باستخدام الأمر rm
:
rm file.txt
سيتعرف Git على أن الملف قد تم حذفه، لكنه لن يُضيف هذا التغيير تلقائيًا إلى منطقة التهيئة. عند تشغيل الأمر git status
، سترى:
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
deleted: file.txt
لإضافة هذا الحذف إلى التهيئة، تحتاج إلى إبلاغ Git صراحةً بذلك:
git add file.txt
بدلاً من ذلك، يمكنك استخدام git rm
، الذي يحذف الملف ويضيف التغيير إلى التهيئة في خطوة واحدة.
السيناريو 2: إزالة ملف من دليل العمل ومنطقة التهيئة
يضمن استخدام git rm
حذف الملف من كلا الموقعين:
git rm file.txt
عند تشغيل git status
سترى:
Changes to be committed:
deleted: file.txt
ثم يمكنك تنفيذ التغيير:
git commit -m "Remove file.txt"
السيناريو 3: إزالة ملف من منطقة التهيئة فقط (مع الاحتفاظ به محليًا)
إذا كنت قد أضفت ملفًا إلى التهيئة ولكنك تريد إزالته منها دون حذفه محليًا، استخدم:
git reset HEAD file.txt
سيؤدي هذا إلى إلغاء تتبع الملف من منطقة التهيئة مع الاحتفاظ به في دليل العمل.
السيناريو 4: إزالة جميع الملفات غير المتعقبة
لإزالة الملفات غير المتعقبة (التي لم تتم إضافتها إلى Git)، استخدم:
git clean -f
لإزالة الدلائل أيضًا، أضف الخيار -d
:
git clean -fd
استخدم git clean -n
لمعاينة الملفات التي سيتم حذفها دون تنفيذ الحذف فعليًا.
نقل وإعادة تسمية الملفات في Git
السيناريو 1: إعادة تسمية ملف باستخدام mv
إذا قمت بإعادة تسمية ملف باستخدام الأمر التقليدي:
mv old_name.txt new_name.txt
سيتعرف Git على هذا التغيير على أنه حذف للملف القديم وإضافة للملف الجديد. عند تشغيل git status
سترى:
Changes not staged for commit:
deleted: old_name.txt
new file: new_name.txt
لإضافة إعادة التسمية يدويًا إلى التهيئة:
git add old_name.txt new_name.txt
السيناريو 2: إعادة تسمية ملف باستخدام git mv
يؤدي استخدام git mv
إلى إعادة تسمية الملف وإضافة التغيير إلى التهيئة تلقائيًا:
git mv old_name.txt new_name.txt
عند تشغيل git status
سترى:
Changes to be committed:
renamed: old_name.txt -> new_name.txt
ثم يمكنك تنفيذ الالتزام:
git commit -m "Rename old_name.txt to new_name.txt"
السيناريو 3: نقل الملفات بين المجلدات
إذا قمت بنقل ملف يدويًا:
mv file.txt new_directory/
سيتعرف Git على ذلك على أنه حذف وإضافة. لإضافة التغيير يدويًا:
git add file.txt new_directory/file.txt
أو استخدم git mv
لنقل الملف وتتبعه تلقائيًا:
git mv file.txt new_directory/
ثم نفّذ الالتزام:
git commit -m "Move file.txt to new_directory/"
عرض الملفات المتعقبة باستخدام git ls-files
يُستخدم الأمر git ls-files
لسرد جميع الملفات التي يتتبعها Git داخل المستودع. وهو مفيد لأغراض التصحيح، والأتمتة، وإدارة المشاريع الكبيرة.
الاستخدام الأساسي
git ls-files
يعرض جميع الملفات التي يتتبعها Git.
عرض الملفات المعدلة فقط
git ls-files -m
يُظهر الملفات التي تم تعديلها فقط.
عرض الملفات غير المتعقبة
git ls-files --others --exclude-standard
يُظهر الملفات غير المتعقبة مع احترام إعدادات .gitignore
.
الخاتمة
يعد فهم كيفية إزالة الملفات ونقلها في Git أمرًا ضروريًا للحفاظ على مستودع منظم ونظيف. يضمن استخدام git rm
و git mv
أن Git يتتبع هذه التغييرات بشكل صحيح. بالإضافة إلى ذلك، يوفر git ls-files
رؤية واضحة للملفات التي يتتبعها Git حاليًا.
🚀 برمجة سعيدة!