مرجع

Git المصطلحات

دليل مصطلحات Git من الألف إلى الياء. 60 مصطلحات أساسية مشروحة بلغة بسيطة.

A

السلف

commit يسبق commit آخر في التاريخ. الـ commits الآباء وآباؤها كلها أسلاف.

وسم موصوف (Annotated Tag)

وسم يحفظ بيانات إضافية مثل اسم واضع الوسم وبريده والتاريخ ورسالة. موصى به للإصدارات.

B

مستودع مجرّد (Bare)

مستودع بلا مجلد عمل، يحتوي فقط على محتويات مجلد ‎.git. يُستخدم كمستودع مركزي للمشاركة.

Blob

كائن Git يحفظ محتوى ملف. اختصار لـ «binary large object».

تفرّع

مؤشر متحرك إلى commit. يمثّل خط تطوير مستقلًا في المستودع.

C

Cherry-pick

نسخ تغييرات commit موجود إلى فرعك الحالي كـ commit جديد (بـ hash جديد).

النسخة (Clone)

نسخة كاملة من مستودع بعيد — كل commit، إضافةً إلى فروع التتبّع البعيدة مثل origin/main — تُنشأ بـ git clone.

Commit

لقطة لمستودعك في لحظة معيّنة. تحتوي على شجرة، والـ commit الأب أو الآباء، والمؤلف، والرسالة.

Hash الـ commit

مجموع تحقق SHA-1 من 40 حرفًا يميّز الـ commit بشكل فريد. يمكن غالبًا اختصاره إلى 7 أحرف.

التعارض

يحدث عندما لا يستطيع Git دمج التغييرات تلقائيًا لأن الأسطر نفسها عُدّلت بشكل مختلف في الفرعين.

D

HEAD منفصل (Detached)

حالة يشير فيها HEAD مباشرة إلى commit بدل فرع. التغييرات التي تُجرى هنا قد تضيع إن لم تُحفظ في فرع.

Diff

الفرق بين نسختين من ملف أو مجموعة ملفات. يعرض الإضافات والحذف والتعديلات.

E

مستودع مضمَّن

مجلد له ‎.git خاص به داخل مستودع آخر. لا يسجّله Git إلا كمؤشر إلى commit واحد (gitlink)؛ استخدم الوحدات الفرعية بدلًا منه.

F

Fast-forward

دمج يتقدّم فيه مؤشر الفرع ببساطة لعدم وجود commits متباعدة. لا يُنشأ commit دمج.

Fetch

تنزيل commits ومراجع جديدة من مستودع بعيد دون المساس بفروعك أو بشجرة العمل.

Fixup

إجراء في الـ rebase التفاعلي يذيب commit في الذي قبله ويتخلّص من رسالته.

Force with Lease

git push --force-with-lease: الكتابة فوق الفرع البعيد فقط إن كان ما زال يشير إلى حيث رأيته آخر مرة، فلا يضيع عمل زميل أبدًا.

Fork

نسخة شخصية من مستودع آخر على خدمة استضافة. شائعة في المصادر المفتوحة لاقتراح التغييرات عبر pull requests.

G

commit مُطعَّم (Grafted)

في النسخة السطحية، هو أقدم commit تم تنزيله: آباؤه موجودون على الخادم لكنهم لم يُنزَّلوا قط.

H

HEAD

مؤشر إلى مرجع الفرع الحالي أو الـ commit الحالي. يمثّل موقعك الحالي في تاريخ المستودع.

Hook

سكربت يعمل تلقائيًا عند وقوع أحداث معيّنة في Git، مثل pre-commit أو post-commit أو pre-push.

Hotfix

إصلاح عاجل لكود منشور، يُجرى عادةً على فرع الإصدار، ويوضع له وسم، ثم يُنقل إلى main.

Hunk

كتلة واحدة من الأسطر المعدّلة في diff، مع بضعة أسطر سياق غير معدّلة حولها. يجهّز git add -p جزءًا بعد جزء.

I

الفهرس (Index)

يُسمّى أيضًا منطقة التجهيز. منطقة وسيطة تُجهَّز فيها التغييرات قبل تسجيلها في المستودع.

Rebase تفاعلي

git rebase -i: إعادة كتابة سلسلة من الـ commits بتعديل قائمة مهام (pick، reword، squash، fixup، drop).

L

وسم خفيف (Lightweight Tag)

مؤشر بسيط إلى commit دون أي بيانات إضافية. مجرد اسم لـ commit معيّن.

M

Main/Master

الفرع الرئيسي الافتراضي في المستودع. «main» هو العرف الحديث، و«master» هو الاسم القديم.

commit الدمج

commit له أبوان أو أكثر، يجمع تغييرات فروع مختلفة في واحد.

تعارض الدمج

عندما لا يستطيع Git حل الفروقات بين فرعين تلقائيًا، ويتطلب ذلك حلًا يدويًا من المطوّر.

O

الكائن (Object)

وحدة التخزين الأساسية في Git. هناك أربعة أنواع: blob (ملف)، وtree (مجلد)، وcommit، وtag.

ORIG_HEAD

مرجع يضبطه Git قبل العمليات الخطرة (reset وmerge وrebase) على المكان الذي كان فيه HEAD — والأمر git reset --hard ORIG_HEAD يتراجع عنها.

Origin

الاسم الافتراضي للمستودع البعيد الذي نسخت منه. يشير إلى المصدر الأصلي.

P

الـ commit الأب

الـ commit الذي يسبق commit آخر مباشرة. لـ commits الدمج أكثر من أب.

Pathspec

نمط يُستخدم لتحديد المسارات في أوامر Git. يمكن أن يتضمن أحرف بدل ومسارات مجلدات.

Prune

إزالة فروع التتبّع البعيدة التي لم يعد فرعها موجودًا في المستودع البعيد (git fetch --prune).

Pull

git fetch يليه دمج الـ upstream المجلوب (أو إعادة التأسيس عليه) في فرعك الحالي.

Pull Request

طلب على منصة استضافة (GitHub، GitLab…) لمراجعة فرع ودمجه في آخر. ليس أمرًا من أوامر Git.

Push

رفع الـ commits الخاصة بك إلى مستودع بعيد وتحريك فرعه ليطابق فرعك.

R

Rebase

إعادة تطبيق commits فوق commit أساس آخر، ما ينتج commits جديدة وتاريخًا خطيًا.

مرجع (ref)

اختصار لـ reference (مرجع). مؤشر إلى commit، مثل اسم فرع أو وسم أو HEAD.

Reflog

سجل لكل تحديثات المراجع في مستودعك المحلي. يسجّل متى تتغيّر رؤوس الفروع وHEAD.

فرع الإصدار (Release)

فرع يحمل إصدارًا منشورًا بحيث يمكن إصلاحه بينما يستمر main في التقدّم.

البعيد

نسخة من مستودعك مستضافة في مكان آخر (مثل GitHub أو GitLab). تُستخدم للتعاون والنسخ الاحتياطي.

فرع التتبّع البعيد

إشارة محلية للقراءة فقط إلى فرع بعيد، مثل origin/main، تحدّثها أوامر fetch وpull وpush.

المستودع

مجلد يحتوي على ملفات مشروعك وكامل تاريخ Git المحفوظ في مجلد ‎.git.

Revert

commit جديد يتراجع عن تغييرات commit سابق دون إعادة كتابة التاريخ — آمن على الفروع المشتركة.

S

SHA-1

دالة التجزئة المشفّرة التي يستخدمها Git لتوليد معرّفات فريدة للـ commits والكائنات.

نسخة سطحية (Shallow Clone)

نسخة تحتوي فقط على أحدث الـ commits (git clone --depth N)، شائعة في CI؛ ويمكن تعميقها بـ fetch --depth أو --unshallow.

commit موقَّع

commit يحمل توقيع GPG (أو SSH) يمكن لمنصات الاستضافة عرضه كـ «Verified». يُنشأ بـ git commit -S.

Squash

ضمّ عدة commits في commit واحد، مثلًا بالـ rebase التفاعلي أو git merge --squash.

منطقة التجهيز

المنطقة الوسيطة بين مجلد العمل والمستودع، حيث تجهّز الـ commits. تُسمّى أيضًا الفهرس.

Stash

رفّ مؤقت للتغييرات غير المسجّلة (git stash)، لتنتقل إلى مهمة أخرى بشجرة عمل نظيفة.

وحدة فرعية (Submodule)

مستودع مضمَّن داخل مستودع آخر. مفيد لتضمين اعتماديات خارجية بإصدار محدد.

T

الوسم

مرجع باسم يشير إلى commit محدد. يُستخدم عادةً لتعليم الإصدارات مثل v1.0.0.

فرع متتبِّع

فرع محلي له علاقة مباشرة بفرع بعيد. يتيح push/pull دون تحديد المستودع البعيد.

Tree (الشجرة)

كائن Git يمثّل مجلدًا. يحتوي على مراجع إلى blobs (ملفات) وأشجار أخرى (مجلدات فرعية).

U

ملف غير متتبَّع

ملف في مجلد العمل لا يراقبه Git. لا يدخل في الـ commits حتى تضيفه صراحةً.

Upstream

الفرع البعيد الذي يتتبّعه فرع محلي. المصدر الذي تُسحب منه التغييرات.

W

مجلد العمل

المجلد في نظام ملفاتك حيث تعدّل الملفات. يحتوي على النسخة الحالية من مشروعك.

شجرة العمل

اسم آخر لمجلد العمل. الملفات التي تراها وتعدّلها في مجلد المشروع.