أمر diff
في Git لا يقدر بثمن لفهم التغييرات في مشروعك. فهو يسمح لك بمقارنة إصدارات مختلفة من ملفاتك، وتحديد التعديلات، ومراجعة التغييرات قبل الالتزام بها. سيشمل هذا البرنامج التعليمي الاستخدامات الأساسية لأمر git diff
، مع التركيز على الوضوح والتطبيق العملي.
جدول المحتويات
- مقارنة نسخة العمل الخاصة بك بالمستودع
- مقارنة منطقة التجميع بالمستودع
- استخدام أدوات
diff
الخارجية - خيارات
git diff
المتقدمة
مقارنة نسخة العمل الخاصة بك بالمستودع
تمثل نسخة العمل الخاصة بك ملفات المشروع الموجودة على جهازك المحلي. يخزن المستودع سجل الإصدارات الذي يديره Git. يعرض git diff
(بدون وسيطات) التغييرات غير المُرحّلة في نسخة العمل الخاصة بك:
git diff
يعرض الإخراج الإضافات (+
)، والحذف (-
)، والتعديلات. على سبيل المثال:
--- a/my_file.txt
+++ b/my_file.txt
@@ -1,3 +1,4 @@
This is line 1
This is line 2
+This is a new line
This is line 3
يشير هذا إلى إضافة سطر جديد إلى my_file.txt
. يمثل --- a/
و +++ b/
إصداري الملف القديم والجديد. لمقارنة ملف محدد:
git diff my_file.txt
مقارنة منطقة التجميع بالمستودع
تحتوي منطقة التجميع على التغييرات التي أعددتها للإلتزام التالي. يكشف git diff --staged
(أو git diff --cached
) عن الفرق بين التغييرات المُرحّلة والالتزام الأخير:
git diff --staged
هذا أمر بالغ الأهمية لمراجعة التغييرات قبل الالتزام. يمكنك تحديد أسماء الملفات لتحديد المقارنة.
استخدام أدوات diff
الخارجية
قد يكون استخدام أمر diff
النصي الافتراضي لـ Git أمرًا صعبًا في حالة التغييرات المعقدة. توفر أدوات diff
الخارجية مقارنات بصرية، وتمييز بناء الجملة، وميزات مفيدة أخرى. قم بتكوين أداة خارجية (مثل Meld، أو KDiff3، أو Beyond Compare) باستخدام git config
:
git config --global diff.external meld
استبدل meld
بأمر أداة الخاص بك. راجع وثائق أداة الخاص بك للحصول على الأمر الصحيح وأي تعديلات ضرورية خاصة بالنظام.
خيارات git diff
المتقدمة
يقدم git diff
العديد من الخيارات الأخرى. على سبيل المثال:
git diff --check
: يكتشف أخطاء المسافات البيضاء.git diff --summary
: يوفر ملخصًا موجزًا للتغييرات.git diff ..
: يقارن بين التزامين.git diff --word-diff
: يبرز التغييرات كلمة بكلمة.
جرب هذه الخيارات لتخصيص git diff
لعملك. إن إتقان git diff
أمر ضروري لاستخدام Git بكفاءة.