كيف يفكر Git: لقطات، لا تغييرات
في الدرس السابق فهمنا لماذا نحتاج إلى التحكم في الإصدارات. الآن، وما زلنا دون أوامر، نبني أهم صورة ذهنية في Git على الإطلاق: في كل مرة تحفظ فيها عملك (commit)، يلتقط Git صورة كاملة لمجلد المشروع بأكمله — لا قائمة بالتعديلات أو التغييرات. يتخيل معظم المبتدئين أن Git يخزّن 'ما الذي تغيّر' منذ المرة ال
فكّر في Git كألبوم صور لمشروعك: عند كل commit يلتقط صورة للمجلد بأكمله في حالته الكاملة. لا توجد هنا 'قائمة تغييرات' — بل سلسلة من الصور الكاملة يمكنك الرجوع إلى أي منها.
- Commit (حفظ)
- عملية الحفظ في Git. ينشئ كل commit لقطة كاملة لجميع ملفات المشروع في تلك اللحظة.
- Snapshot (لقطة)
- صورة كاملة لمجلد المشروع بأكمله في لحظة ما — كل الملفات، لا فقط ما تغيّر. هذا ما يخزّنه Git في كل commit.
- Diff (الفرق)
- عرض ما تغيّر بين إصدارين. يستطيع Git أن يعرض لك diff عند الطلب، لكنه يحسبه من صورتين — ولا يخزّنه.
- مجلد العمل (working directory)
- المجلد الذي توجد فيه ملفاتك فعليًا وتحرّرها أنت. عندما يجري Git عملية commit، يلتقط صورة لحالة هذا المجلد.