X
    Categories: دروس

دليل Git: ٠٥. إدارة الملفات (حذف ونقل الملفات)

المقدمة

في 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 حاليًا.

🚀 برمجة سعيدة!

DeaDSouL: هاوٍ للـ يونكس والـ لينكس... وعاشق للبرمجه.
Related Post