انتقل إلى محتوى الدرس
الدرس 05
دورة Version Control

إنشاء مستودع جديد عبر الأمر git initGit Init

أنشئ مستودع Git محلياً جديداً داخل مجلد مشروعك باستخدام الأمر git init، واستكشف تشريح مجلد .git المخفي، وتجنب أخطاء تداخل المستودعات.
أقسام الدرس
6
الأمثلة
4
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
0
محتوى الدرس
في هذا الدرس 6تصفّح المواضيع

للبدء في تتبع مشروع برمجي موجود على جهازك، انتقل إلى مجلد المشروع عبر الطرفية ثم نفّذ الأمر git init. يحوّل هذا الأمر المجلد العادي فوراً إلى مستودع Git محلي جاهز للعمل:

  • عملية آمنة على ملفاتك الحالية: لا يمس الأمر git init ملفات الكود الموجودة في المجلد ولا يغير محتواها إطلاقاً.
  • إنشاء المجلد المخفي .git: ينشئ النظام مجلداً فرعياً مخفياً باسم .git يضم الهيكل الأساسي لقاعدة بيانات المستودع.
إنشاء المستودع المحلي بالأمر git init وتشريح المجلد المخفي .git
Shell
mkdir my-website
cd my-website
git init
# Initialized empty Git repository in .../my-website/.git/

بدلاً من إنشاء المجلد أولاً بالأمر mkdir ثم الدخول إليه، يتيح لك الأمر git init <directory> إنشاء مجلد جديد وتهيئته كمستودع Git في خطوة واحدة مختصرة:

  • إنشاء وتهيئة فورية: تنفيذ git init closetag-ui ينشئ المجلد closetag-ui تلقائياً ويبني بداخله مجلد .git المخفي.
  • اختصار الخطوات: بعد انتهاء الأمر مباشرة، انتقل إلى داخل المجلد عبر cd closetag-ui لبدء كتابة ملفات مشروعك.
Shell
# Create folder "closetag-ui" and initialize .git in one step
git init closetag-ui
cd closetag-ui
ls -la

يتيح لك الأمر git init تحديد اسم الفرع الابتدائي صراحةً لحظة إنشاء المستودع عبر الخيار -b أو الصيغة المطولة --initial-branch:

  • الخيار المختصر (-b main): تنفيذ git init -b main يوجه مؤشر HEAD نحو الفرع main منذ اللحظة الأولى.
  • الخيار المطول (--initial-branch=main): صيغة واضحة شائعة الاستخدام في سكريبتات إعداد المشاريع الآلية.

يبدأ اسم المجلد .git بنقطة ليكون مخفياً بشكل افتراضي في أنظمة التشغيل حمايةً له من الحذف أو التعديل العشوائي. وعند استعراضه بالأمر ls -F .git تظهر أربعة مكونات رئيسية:

  • ملف HEAD: ملف نصي يحدد الفرع النشط حالياً مثل ref: refs/heads/main.
  • ملف config: يحفظ الإعدادات الخاصة بهذا المستودع المحلي فقط.
  • مجلد objects/: قاعدة بيانات الكائنات التي تُخزن فيها اللقطات والملفات المضغوطة.
  • مجلد refs/: يحفظ مؤشرات الفروع داخل refs/heads/ والإصدارات داخل refs/tags/.
Shell
git init -b main demo-repo
cd demo-repo
ls -F .git/
cat .git/HEAD

ماذا يحدث لو نفذت الأمر git init مرة ثانية داخل مستودع مهيأ مسبقاً؟ وما خطورة تنفيذه داخل مجلد فرعي لمستودع قائم؟

  • إعادة التنفيذ في نفس الجذر: عملية آمنة تماماً؛ إذ يطبع النظام رسالة Reinitialized existing Git repository دون أن يمسح أي لقطة أو فرع سابق.
  • تحذير تداخل المستودعات (Nested Repositories): تجنب تماماً تشغيل git init داخل مجلد فرعي (مثل src/) تابع لمشروع يحتوي أصلاً على مستودع في جذره، لأن ذلك يسبب تعارضاً في تتبع الملفات الفرعية.
Shell
# Safe reinitialization in the same root folder:
git init
# Quiet mode (-q) suppresses informational output:
git init -q clean-service

يقارن الجدول المرجعي التالي بين صيغ وخيارات الأمر git init قبل الانتقال إلى فحص حالة الملفات بالأمر git status في الدرس السادس:

العمليةمثال الصياغةالسلوك والنتيجة
تهيئة المجلد الحاليgit initإنشاء المجلد المخفي .git داخل المجلد المفتوح حالياً
إنشاء وتهيئة مجلد جديدgit init my-appإنشاء المجلد my-app وتهيئة المستودع بداخله مباشرة
تحديد اسم الفرع الابتدائيgit init -b mainضبط مؤشر الرأس HEAD ليشير إلى الفرع main
التهيئة الصامتةgit init -qتنفيذ التهيئة بدون طباعة رسائل إعلامية في الطرفية
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

تعلمت في هذا الدرس إنشاء مستودع محلي جديد بالأمر git init في المجلد الحالي أو في مجلد جديد بخطوة واحدة، وتحديد الفرع -b main، وتشريح محتويات المجلد المخفي .git، وتجنب تداخل المستودعات. الخطوة التالية: انتقل الآن إلى الدرس رقم 6 «فحص حالة الملفات عبر الأمر git status» لقراءة تقارير حالة المستودع.

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 Repository Initialization تهيئة المستودع
تنفيذ الأمر git init لإنشاء مجلد .git المخفي وتحويل مجلد المشروع العادي إلى مستودع Git محلي.
للمراجعة
02 Hidden .git Directory المجلد المخفي .git
المجلد المخفي في جذر المشروع والذي يضم قاعدة بيانات الكائنات ومؤشرات الفروع وإعدادات المستودع.
للمراجعة
03 Initial Branch Flag خيار الفرع الابتدائي
الخيار -b الممرر مع git init لتحديد اسم الفرع الأول للمستودع مثل main.
للمراجعة
04 Nested Repository Trap خطأ تداخل المستودعات
الخطأ الناتج عن تشغيل git init داخل مجلد فرعي يقع ضمن مشروع يحتوي أصلاً على مستودع في جذره.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 HEAD HEAD
Active Branch Reference File
الملف النصي .git/HEAD الذي يحفظ الإشارة المرجعية للفرع المفتوح حالياً.
للمراجعة
02 REFS REFS
Git References Directory
مجلد المراجع داخل .git الذي يخزن مؤشرات الفروع والوسوم.
للمراجعة
03 INIT INIT
Initialize Repository Subcommand
الأمر الفرعي في Git المخصص لإنشاء مستودع جديد أو إعادة تهيئته.
للمراجعة
04 ROOT ROOT
Top-Level Project Directory
المجلد الأعلى للمشروع البرمجي الذي ينبغي أن يستقر فيه مجلد .git الوحيد.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/2مهام منجزة
  1. استخدم تبويبات المختبر التفاعلي لمقارنة تهيئة مجلد حالي وإنشاء مجلد جديد وفحص مكونات .git.

  2. أنشئ مجلداً تجريبياً ونفّذ git init -b main ثم اعرض محتوى ملف .git/HEAD.

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

8أسئلة 2أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

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

لمحة عن التحدي8 أسئلة تنتظرك
01

ماذا يفعل تنفيذ الأمر git init داخل مجلد مشروع قائم؟

ينشئ مجلداً فرعياً مخفياً باسم .git يضم بنية المستودع دون المساس بملفات المشروع الموجودة.

02

ما الأمر الذي ينشئ مجلداً جديداً باسم store-app ويهيئ بداخله مستودع Git في خطوة واحدة؟

تمرير اسم المجلد بعد الأمر git init ينشئ المجلد ويهيئ بداخله مستودع Git مباشرة.

03

ما الخيار الذي يحدد اسم الفرع الابتدائي ليكون main صراحةً عند تشغيل الأمر git init؟

يُستخدم الخيار -b main لتحديد اسم الفرع الابتدائي عند إنشاء المستودع.

04

يقوم تنفيذ الأمر git init بتجهيز وحفظ جميع الملفات الموجودة في المجلد تلقائياً في لقطة أولى.

خطأ؛ فالأمر git init ينشئ هيكل المستودع الفارغ فقط وتظل الملفات غير متتبعة حتى يتم تجهيزها وحفظها.

05

داخل المجلد المخفي .git، أي ملف يحفظ الإشارة المرجعية للفرع النشط حالياً مثل ref: refs/heads/main؟

يحفظ الملف .git/HEAD المرجع الرمزي الذي يشير إلى الفرع النشط حالياً.

06

إعادة تنفيذ الأمر git init داخل جذر مستودع مهيأ مسبقاً عملية آمنة ولا تمسح سجل الالتزامات.

صواب؛ إذ يعيد النظام تهيئة القوالب بأمان دون المساس بالكائنات أو السجل المحفوظ.

07

لماذا يجب تجنب تشغيل الأمر git init داخل مجلد فرعي (مثل src/) تابع لمشروع يحتوي أصلاً على مستودع Git؟

لأنه ينشئ مستودعاً فرعياً متداخلاً يمنع المستودع الرئيسي في جذر المشروع من تتبع ملفات ذلك المجلد بشكل طبيعي.

08

أي خيار يجعل الأمر git init يعمل بالوضع الصامت دون طباعة رسائل إعلامية إلا عند حدوث خطأ؟

يكتم الخيار -q (أو --quiet) الرسائل الإعلامية العادية أثناء التهيئة.