MASTRILOالدورة/كيف يرى Git المستودع؟
MASTRILO

كيف يرى Git المستودع؟

عندما تفتح المشروع ترى ملفات و مجلدات. أما Git فيعتمد على مجموعة من المكونات الداخلية لإدارة البيانات و التغييرات.

لفهم ما يفعله Git داخل المستودع نحتاج إلى أربعة مكونات أساسية:

text
Working Directory
Index
Object Database
References

أين تعدل ملفاتك؟ (Working Directory)

الـ Working Directory هو مساحة العمل التي تضم الملفات و المجلدات التي تراها أثناء العمل على المشروع. على سبيل المثال:

text
project/
├── app.js
├── package.json
└── README.md

عندما تعدل ملفات المشروع أو تنشئ ملفات جديدة فأنت تعمل داخل الـ Working Directory. هناك تكتب الكود و تحرر الملفات. أما تاريخ المشروع فلا يخزنه Git في مساحة العمل هذه.

شخص يعمل على جهاز حاسوب و يفكر في الملفات الموجودة في المشروع
الـ Working Directory هو مساحة العمل التي ترى فيها ملفات المشروع و تحررها

ما الذي تجهزه للـ Commit القادم؟ (Index)

الـ Index أو Staging Area يحفظ الحالة التي تجهزها للـ Commit القادم.

text
Working Directory
        ↓
      Index

تعديل الملف وحده لا يغير الحالة المجهزة. عندما تختار إدخال نسخته الحالية في الـ Commit القادم تغير الحالة في الـ Index. و عند تجهيز الملف يخزن Git محتواه في الـ Object Database أيضا؛ لا ينتظر إنشاء الـ Commit ليخزن هذا المحتوى.

الملفات تتحرك من الـ Working Directory إلى Staging Area
الـ Index يحدد حالة الملفات التي ستدخل الـ Commit القادم

أين يخزن Git بياناته؟ (Object Database)

عندما يحفظ Git البيانات فإنه لا يخزنها داخل الملفات التي تعمل عليها يوميا. بل يحفظها في قاعدة بيانات خاصة داخل مجلد .git. هناك يحتفظ بالبيانات التي يحتاجها لإدارة المشروع و تتبع تغيراته.

يحول Git الملفات و المجلدات و تاريخ المشروع إلى Objects داخل هذه القاعدة. و سنرى في الدروس القادمة كيف يحدث ذلك.

البيانات تنتقل من الـ Working Directory إلى مجلد .git
يخزن Git بيانات المشروع في الـ Object Database داخل مجلد .git

كيف يتتبع Git بياناته؟ (References)

إذا كانت الـ Object Database تحتوي على البيانات نفسها فإن الـ References تساعد Git على الوصول إليها.

الـ References هي مؤشرات (Pointers) يستخدمها Git للوصول إلى البيانات المخزنة داخل المستودع من دون كتابة معرفاتها الطويلة في كل مرة.

و سنرى لاحقا كيف يستخدم Git هذه المؤشرات لتنظيم بياناته.

الـ References تشير إلى البيانات في الـ Object Database مثل HEAD و main
تشير الـ References إلى البيانات المخزنة حتى يتمكن Git من الوصول إليها

الصورة الكاملة

يمكن تلخيص طريقة عمل Git بالشكل التالي:

text
Working Directory ── stores content ──> Object Database
                                            ↑
Index ────────────── points to content ──────┤
References ───────── points to objects ──────┘

تعدل الملفات داخل الـ Working Directory و تجهز في الـ Index الحالة التي ستدخل الـ Commit القادم. يخزن Git المحتوى في الـ Object Database و تساعده الـ References على الوصول إلى الكائنات. ليس الـ Index ممرا إلزاميا لكل عملية تخزين؛ سنخزن محتوى ملف مباشرة في الدرس الرابع.

كلما تعمقنا في طريقة عمل Git سنرى هذه المكونات تعمل معا. و في الدرس التالي سنفتح مجلد .git و نرى ما الذي وضعه Git داخله.

مكونات المستودع و علاقتها بتخزين المحتوى و تجهيز الحالة القادمة
يحدد الـ Index الحالة المجهزة و يخزن Git المحتوى في الـ Object Database و يصل إلى الكائنات عبر الـ References
اللوحات
نوع الخط
حجم الخط
أكملت 0 من 41 درس

Foundations

2.كيف يرى Git المستودع؟

Git on Your Machine241 كيف يرى Git المستودع؟مكافأة إكمال الدرس إضافة إلى نقاط أنشطته. 10 XP. تُمنح المكافأة مرة واحدة فقط.