طريقة استخدام git diff: الإيداعات والفروع والملفات والعرض جنبًا إلى جنب
أمر واحد يقارن مجلد العمل ومنطقة التجهيز والإيداعات والفروع والوسوم. إليك الصيغة المناسبة لكل حالة، والفرق بين النقطتين والثلاث نقاط، وطريقة الحصول على عرض حقيقي جنبًا إلى جنب.
بقلم Kodmora
شركة البرمجيات المطوّرة لـGitTree
- سجل الإيداعات
- الفروع
- الإيداعات
في هذه الصفحة
يعرض `git diff` دون وسائط التغييرات غير المُجهَّزة، ويعرض `git diff --staged` ما سيحويه الإيداع التالي، ويقارن `git diff main feature` بين فرعين. أضف -- path/to/file إلى أي صيغة لقصرها على ملف واحد. لا يملك Git نفسه عرضًا جنبًا إلى جنب في الطرفية، فلهذا تحتاج إلى git difftool أو واجهة Git رسومية.
أي أمر git diff أحتاج؟
| تريد أن ترى | الأمر |
|---|---|
| التغييرات غير المُجهَّزة بعد | git diff |
| ما سيحويه الإيداع التالي | git diff --staged |
| كل شيء منذ آخر إيداع | git diff HEAD |
| إيداعين | git diff <a> <b> |
| فرعين، طرفًا بطرف | git diff main feature |
| ما أضافه الفرع منذ انفصاله | git diff main...feature |
| وسمين | git diff v1.0 v2.0 |
| ملفًا واحدًا | git diff -- src/search.ts |
كيف أقرأ مخرجات git diff؟
diff --git a/src/search.ts b/src/search.ts
index 4e1f2a0..9b3c7d1 100644
--- a/src/search.ts
+++ b/src/search.ts
@@ -12,7 +12,7 @@ export function search(query: string) {
const terms = tokenize(query);
- return index.find(terms, { limit: 20 });
+ return index.find(terms, { limit: 50 });
}- يسمي
---و+++النسختين القديمة والجديدة من الملف. @@ -12,7 +12,7 @@هو ترويسة الكتلة: 7 أسطر ابتداءً من السطر 12 في كل نسخة.- الأسطر التي تبدأ بعلامة
-حُذفت، والتي تبدأ بعلامة+أُضيفت، والباقي سياق.
يتدرب درس قراءة الفروق على هذا خطوة بخطوة.
كيف أقارن إيداعين؟
# any two commits, older first
git diff 3e52f10 7c1d9ab
# the last commit against the one before it
git diff HEAD~1 HEAD
# one commit against its parent, with the message
git show 7c1d9abكيف أقارن فرعين؟
# the tips of both branches
git diff main feature
# only what feature added since it left main
git diff main...feature
# a remote branch
git fetch origin
git diff main origin/mainكيف أقارن ملفًا واحدًا؟
# working copy against the last commit
git diff HEAD -- src/search.ts
# the same file on two branches
git diff main feature -- src/search.ts
# a file at two commits
git diff HEAD~3 HEAD -- src/search.ts
# two files outside any repository
git diff --no-index old.txt new.txtكيف أجعل git diff يتجاهل المسافات؟
| الخيار | ما يتجاهله |
|---|---|
-w أو --ignore-all-space | كل المسافات، بما فيها الأسطر المعاد إزاحتها |
-b أو --ignore-space-change | التغير في مقدار المسافات |
--ignore-space-at-eol | المسافات في نهايات الأسطر |
--ignore-blank-lines | الأسطر الفارغة المضافة أو المحذوفة |
تؤثر هذه الخيارات فيما يعرضه الفرق فقط، ولا تغيّر ما يُجهَّز أو يُودَع. و-w هو الخيار المناسب حين تجعل إعادة الإزاحة الملف كله يبدو متغيرًا.
كيف أعرض أسماء الملفات المتغيرة فقط؟
# names only
git diff --name-only main...feature
# names with A, M, D or R
git diff --name-status main...feature
# lines added and removed per file
git diff --stat main...featureكيف أرى الكلمات التي تغيرت؟
git diff --word-diff
git diff --color-wordsتفيد فروق الكلمات مع الأسطر الطويلة، مثل فقرات Markdown، حيث تجعل كلمة واحدة السطر كله متغيرًا.
كيف أحصل على فرق جنبًا إلى جنب؟
يطبع git diff العادي عمودًا واحدًا وليس فيه خيار جنبًا إلى جنب. ولديك ثلاث طرق للحصول على عمودين: توجيه git difftool إلى برنامج فروق، أو تثبيت أداة عرض طرفية مثل delta، أو استخدام واجهة Git رسومية.
# pick a tool once
git config --global diff.tool vimdiff
# open each changed file in it
git difftool main...feature
# skip the prompt for each file
git difftool -yطريقة قراءة الفرق جنبًا إلى جنب في GitTree
افتح فرقًا
حدد ملفًا متغيرًا في تغييرات العمل أو في أي إيداع.
اختر العرض
من عرض الفروق أعلى الفرق، اختر كتلة أو عمود واحد أو جنبًا إلى جنب. يعرض الأخير الملف قبل التغيير وبعده متجاورين.
اضبطه
من لوحة الأوامر، نفّذ تجاهُل المسافات البيضاء في الفروق أو تمييز الكلمات المتغيّرة أو التفاف أسطر الفروق.
قارن فرعين
نفّذ مقارنة مرجعين… لاختيار أي فرعين أو وسمين أو إيداعين، ورؤية التغييرات منذ أساس الدمج أو طرفًا بطرف.

راجع اختيار عرض الفروق واستخدامه ومقارنة المراجع لكل الخيارات.
الأسئلة الشائعة
لماذا لا يعرض git diff شيئًا؟
الأرجح أن تغييراتك مُجهَّزة. يقارن git diff مجلد العمل بمنطقة التجهيز، فنفّذ git diff --staged أو git diff HEAD. ولا تظهر الملفات الجديدة غير المتتبَّعة حتى تضيفها.
ما الفرق بين git diff وgit status؟
يسرد git status الملفات المتغيرة، ويعرض git diff الأسطر المتغيرة داخلها.
كيف أقارن فرعي بالفرع main؟
نفّذ git diff main...HEAD لترى عمل فرعك فقط. واجلب أولًا واستخدم origin/main للمقارنة بأحدث نسخة بعيدة.
هل git diff --cached هو نفسه --staged؟
نعم. هما اسمان للخيار نفسه.
كيف أحفظ الفرق في ملف؟
نفّذ git diff > changes.patch. ويمكنك تطبيق الملف لاحقًا كما يوضح مقال طريقة إنشاء رقعة وتطبيقها.
المصادر
تحققنا من المعلومات عن المنتجات الأخرى من صفحاتها الرسمية بتاريخ 7 نوفمبر 2026. الأسعار والميزات تتغير، وصفحات الشركات هي المرجع.
