MASTRILOالدورة/استكشاف مجلد .git
MASTRILO

استكشاف مجلد .git

رأينا في الدرس السابق أن Git يعتمد على مكونات داخلية مثل الـ Index و الـ Object Database و الـ References. لكن أين يحتفظ بهذه المكونات؟

لنبدأ بإنشاء مستودع جديد:

bash
git init

نفذ git init ثم اقرأ ملف HEAD بالأمر cat .git/HEAD. ابحث في شجرة الملفات عن المجلدين objects و refs. هل ظهر ملف index أيضا؟

بعد تنفيذ الأمر ستبدو بنية المشروع هكذا:

text
project/
├── .git/
├── app.js
└── README.md

بعد إنشاء مجلد .git يتعامل Git مع المشروع على أنه مستودع (Repository).

ماذا يوجد داخل .git؟

إذا استعرضنا المجلد فسنجد فيه عناصر عديدة. هذه أهم العناصر التي نحتاج إليها الآن:

text
.git/
├── HEAD
├── objects/
└── refs/

قد تبدو هذه العناصر غامضة الآن لكنها ستتكرر معنا في بقية الدورة. لا نحتاج في هذا الدرس إلى تفاصيل كل عنصر. يكفي أن نعرف مكانه داخل المستودع و دوره العام.

ملف HEAD

ابدأ بملف .git/HEAD. يستخدم مختبرنا main اسما للفرع الافتراضي. على جهازك قد يختلف الاسم بحسب إصدار Git و إعداداته. في المختبر ستجد هذا السطر بعد git init:

text
ref: refs/heads/main

لا يوجد أي Commit بعد لكن HEAD يحمل مسار الفرع الذي سيستقبل أول Commit. سنعود إلى هذا الملف لاحقا عندما ندرس الفروع و التنقل داخل تاريخ المستودع.

مجلد objects

بجوار HEAD ستجد مجلد .git/objects. هذا هو الـ Object Database التي رأيناها في الدرس السابق. يخزن Git هنا البيانات التي يعتمد عليها لإدارة المستودع و تتبع تغيراته.

مجلد refs

أما مجلد .git/refs فيستخدمه Git لتنظيم المراجع (References) التي تساعده على الوصول إلى بيانات المستودع. سنعود إليه لاحقا عندما نرى كيف تعمل الفروع و المراجع.

لماذا يهمنا مجلد .git؟

عندما ننفذ أوامر مثل:

bash
git add
git commit
git branch

تتعامل بعض أوامر Git مع ملفات المشروع و بيانات .git معا. يقرأ git add مثلا ملفات من الـ Working Directory ثم يكتب بيانات جديدة داخل .git. أما مجلد .git نفسه فيحتوي على بيانات المستودع الداخلية. و من بينها الـ Object Database و المراجع و الإعدادات.

في الدرس التالي سندخل إلى مجلد objects و نرى كيف يحفظ Git محتوى ملف واحد.

اختبر معلوماتك

سجّل دخولك للإجابة على الأسئلة وحفظ تقدّمك.

سجّل الدخول
اللوحات
نوع الخط
حجم الخط
أكملت 0 من 41 درس

Foundations

3.استكشاف مجلد .git

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