أساسيات Git
شرح Git بالعربي للمبتدئين: تعلّم الأساسيات بواجهة رسومية خطوة بخطوة
جديد على Git؟ تعلّم الأفكار الخمس التي تهمّ فعلًا (المستودع والـ commit والفرع والدمج والمستودع البعيد)، ثم ابنِ أول مشروع لك في واجهة Git رسومية مجانية: استنساخ مستودع أو إنشاؤه، ثم التجهيز والإيداع وإنشاء فرع والدفع.

شرح Git بالعربي للمبتدئين يبدأ بخمس أفكار فقط. المستودع (repository) يحفظ مشروعك وتاريخه، والإيداع (commit) لقطة محفوظة لملفاتك، والفرع (branch) خط عمل مستقل، والدمج (merge) يجمع فرعين معًا، والمستودع البعيد (remote) نسخة من المستودع على خادم مثل GitHub. افهم هذه الخمس وسيصبح أي درس لتعلّم Git مفهومًا. وتساعدك الواجهة الرسومية لأنها ترسم هذه الأفكار أمامك: كل commit نقطة على مخطط، وكل فرع خط ملوّن، فترى ما يحدث بدل أن تتخيّله.
يشرح هذا الدرس كل فكرة بكلمات بسيطة، ثم يرافقك في أول مشروع داخل واجهة رسومية. البرنامج الظاهر في الصور هو GitTree، عميل Git مجاني لأنظمة macOS وWindows وLinux (لينكس)، وللإفصاح: كتب هذا الدليلَ صانعُ GitTree. ومع كل خطوة نذكر الأمر المقابل لها، فما تتعلّمه هنا يعمل في الطرفية وفي أي أداة Git أخرى.
ما هو Git؟ نظام التحكم في الإصدارات بكلمات بسيطة
Git نظام للتحكم في الإصدارات (version control): برنامج يسجّل كل تغيير تحفظه في مجموعة من الملفات، فتعرف من غيّر ماذا ومتى، وتقارن بين أي نسختين، وتعود إلى نسخة سابقة متى شئت. تخيّل سجل تراجع غير محدود لمجلد كامل، لكل نقطة حفظ فيه اسم وملاحظة تشرح سببها.
أنشأ مطوّرو نواة Linux، وفي مقدّمتهم لينوس تورفالدس (Linus Torvalds)، نظام Git عام 2005، وهو يصلح لمواقع الويب والتوثيق وحتى رسالة جامعية بقدر ما يصلح للبرمجة. وGit موزَّع: كل نسخة من المستودع تحمل التاريخ كاملًا، فتستطيع إنشاء commit وتصفّح التاريخ وإنشاء الفروع دون اتصال بالإنترنت، ولا تحتاج إلى الشبكة إلا لمشاركة عملك.
خلط شائع: Git هو الأداة التي تعمل على حاسوبك، أما GitHub وGitLab وBitbucket فمواقع تستضيف مستودعات Git لتتشاركها الفرق. ويشرح دليلنا عن الفرق بين Git وGitHub ذلك بالتفصيل.
أساسيات Git للمبتدئين: خمس أفكار تتعلّمها أولًا
1. المستودع (repository): مشروعك مع تاريخه
المستودع (ويُختصر repo) مجلد مشروع عادي يتتبّعه Git، ويحفظ تاريخه في مجلد مخفي اسمه .git بداخله. تبقى ملفاتك ملفات عادية تعدّلها بأي محرر، ولا يتدخّل Git إلا حين تطلب منه أن يسجّل شيئًا أو يشاركه.
2. الإيداع (commit): لقطة محفوظة مع رسالة
يسجّل الـ commit حالة ملفاتك في لحظة معيّنة، ومعها اسمك والتاريخ ورسالة قصيرة مثل “Add contact form”. ولكل commit معرّف فريد يسمّى hash (مثل a1b2c3d)، ويشير إلى الـ commit الذي قبله، وبهذا يبني Git تاريخًا تقرؤه وتقارن بين نقاطه وتعود إلى أيّ منها.
قبل الإيداع تجهّز (stage) التغييرات التي تريد إدخالها. منطقة التجهيز تتيح لك تقسيم العمل إلى إيداعات مرتّبة: تصلح خطأً وتغيّر اسم متغيّر، ثم تودِع كل تغيير وحده، حتى لو كان الاثنان في الملف نفسه.
3. الفرع (branch): خط عمل مستقل
الفرع اسم يشير إلى commit ويتقدّم تلقائيًا مع كل commit جديد عليه. في معظم المستودعات فرع رئيسي اسمه عادةً main (والمستودعات الأقدم تستخدم غالبًا master). حين تبدأ شيئًا جديدًا تنشئ فرعًا مثل feature/contact-page وتودِع عليه، ويبقى main كما هو حتى يكتمل العمل. والفروع في Git خفيفة لا تكلّف شيئًا: إنشاء فرع يستغرق لحظة، فاستخدمها دون تردّد.
4. الدمج (merge): جمع العمل من جديد
الدمج يضيف إيداعات فرع إلى فرع آخر، كأن تدمج فرع الميزة في main. إن لم يتحرّك main منذ أنشأت فرعك، يكتفي Git بتقديمه إلى الأمام (fast-forward)، وإلا أنشأ commit دمج له أصلان. وإن غيّر الطرفان الأسطر نفسها، يطلب منك Git أن تختار: هذا هو تعارض الدمج (merge conflict). وهو أمر معتاد، ويشرح دليلنا عن حل تعارضات الدمج في Git كيف تتعامل معه بهدوء.
5. المستودع البعيد (remote): نسخة على خادم
المستودع البعيد نسخة أخرى من المستودع، غالبًا على خدمة استضافة. والمستودع الذي استنسخت منه يحمل الاسم origin افتراضيًا. تستخدم الدفع (push) لإرسال إيداعاتك الجديدة إليه، والجلب (fetch) لتنزيل ما دفعه الآخرون، والسحب (pull) للجلب ثم إدخال تلك الإيداعات في فرعك الحالي. أما الاستنساخ (clone) فينسخ مستودعًا بعيدًا بتاريخه كله إلى حاسوبك.
قبل أن تبدأ: تثبيت Git وضبط اسمك
يعمل GitTree فوق نسخة Git المثبّتة على حاسوبك ولا يضمّ نسخة خاصة به، لذا ثبّت Git أولًا (الإصدار 2.39 أو أحدث). ولهذا السبب أيضًا يفعل كل زر في GitTree ما يفعله الأمر المقابل له. على macOS نفّذ xcode-select --install أو brew install git. وعلى Windows ثبّت Git for Windows من موقع git-scm.com. وعلى Linux نفّذ sudo apt install git في Ubuntu 24.04 أو Debian 12، أما Ubuntu 22.04 وLinux Mint 21 فيأتيان بالإصدار Git 2.34 وهو أقدم من المطلوب، فابدأ بـترقية Git على Ubuntu. ثم تحقّق من الإصدار في الطرفية:
git --versionيكتب Git اسمًا وبريدًا إلكترونيًا في كل commit، فاضبطهما مرة واحدة. واستخدم بريد حسابك على GitHub أو GitLab أو Bitbucket إن أردت أن ترتبط إيداعاتك بملفك الشخصي هناك:
git config --global user.name "Your Name"
git config --global user.email "you@example.com"ويمكنك ضبطهما دون الطرفية: في تفضيلات GitTree يحمل ملف التعريف (profile) اسمًا وبريدًا للإيداعات، وهو مفيد للفصل بين هوية العمل والهوية الشخصية، ويمكنك أيضًا تحديد اسم وبريد خاصّين بكل مستودع عبر الإعدادين Name for commits (الاسم في الإيداعات) وEmail for commits (البريد الإلكتروني في الإيداعات).
الخطوة 1: استنسخ مستودعك الأول أو أنشئه
ابدأ بـتحميل GitTree وتثبيته، ثم سجّل الدخول مرة واحدة بحساب GitTree مجاني تنشئه على gittree.app عبر GitHub أو GitLab أو Bitbucket أو Azure DevOps. يحتاج التشغيل الأول إلى الإنترنت، وبعده يعمل البرنامج دون اتصال حتى 7 أيام بين كل تحقّق والذي يليه. واجهة GitTree متاحة بالعربية كاملة من اليمين إلى اليسار، لكننا نذكر أسماء الأزرار بالإنجليزية كما تظهر في الصور. وكل تبويب جديد يفتح على صفحة البداية بثلاثة مداخل: Open (فتح) وClone (استنساخ) وInit (تهيئة).

استنسخ مستودعًا موجودًا (git clone)
اختر Clone، والصق عنوان المستودع (HTTPS أو SSH)، واختر المجلد الأصل، وتأكّد من المسار في خانة Clones into. اترك خيار Open after cloning مفعّلًا ثم اختر Clone. وإن ربطت حسابًا على GitHub أو Bitbucket، فإن زر Clone from GitHub / Bitbucket… يتيح لك اختيار المستودع من قائمة بدل نسخ عنوانه. والأمر المقابل:
git clone https://github.com/your-name/your-project.git
أو أنشئ مستودعًا جديدًا (git init)
لتضع مجلدًا موجودًا تحت التحكم في الإصدارات، أو لتبدأ من الصفر، اختر Init. حدّد المكان، واجعل main هو Initial branch (الفرع الأولي)، وأضف إن شئت قالب .gitignore (لتبقى ملفات البناء والاعتماديات خارج Git) وترخيصًا. لا يُكتب شيء حتى تختار Initialize. والأمر المقابل:
git init -b mainالخطوة 2: جهّز أول تغيير وأودِعه (stage وcommit)
افتح المشروع في محرّرك وغيّر شيئًا صغيرًا، كأن تضيف سطرًا إلى README.md. وحين تعود إلى GitTree يظهر صف // WIP فوق أحدث commit على المخطط، ويظهر الملف تحت Unstaged Files (الملفات غير المجهّزة) في اللوحة الجانبية، على اليمين في الصور.
- جهّز التغيير. اختر Stage All Changes (تجهيز كل التغييرات)، أو حدّد ملفًا واحدًا وجهّزه وحده. ولتجهيز جزء من ملف افتحه واستخدم Stage Hunk، أو حدّد أسطرًا بعينها ثم اختر Stage Lines. تنتقل الملفات المجهّزة إلى Staged Files.
- اكتب الرسالة. اكتب في خانة Summary ملخّصًا قصيرًا لما يفعله الـ commit، مثل “Add project description to README”. يعرض عدّاد مدى اقترابك من 72 حرفًا، فالملخّصات الأطول كثيرًا ما تُقتطع في الأدوات الأخرى. وأضف Description إن لم يكن السبب واضحًا.
- أودِع. اختر Commit Changes to 1 File (ويتغيّر العدد بحسب ما جهّزته). يظهر الـ commit الجديد في أعلى المخطط.

والخطوات الثلاث نفسها في سطر الأوامر:
git status
git add README.md
git commit -m "Add project description to README"عادات جيدة من اليوم الأول: تغيير منطقي واحد في كل commit، وملخّص يقول ما يفعله الـ commit (“Fix login redirect” لا “تعديلات”)، وإيداعات متكرّرة. الإيداعات الصغيرة أسهل في المراجعة والشرح والتراجع عنها.
الخطوة 3: أنشئ فرعًا (branch) ثم ادمجه (merge)
اختر Branch في شريط الأدوات، واكتب اسمًا مثل feature/contact-page، وتأكّد من تفعيل Check out the new branch (التبديل إلى الفرع الجديد)، ثم اختر Create Branch. أنشئ commit أو اثنين بالطريقة السابقة نفسها. سترى على المخطط تسمية فرعك تتقدّم على main، وحين يحمل الفرعان إيداعات جديدة يحصل كل منهما على مسار ملوّن خاص به.
git switch -c feature/contact-pageحين يكتمل العمل أعِده إلى main. انقر نقرًا مزدوجًا على main في الشريط الجانبي للتبديل إليه، ثم انقر بالزر الأيمن على فرع الميزة واختر Merge feature/contact-page into main. ويمكنك أيضًا سحب تسمية الفرع وإفلاتها على main واختيار الدمج من القائمة. والأوامر المقابلة:
git switch main
git merge feature/contact-page
الخطوة 4: ادفع عملك (push) إلى GitHub أو أي مستودع بعيد
إن كنت استنسخت المستودع فلديه مستودع بعيد اسمه origin، فاختر Push في شريط الأدوات. أول دفع لفرع جديد يضبط له أيضًا الفرع المتتبَّع (upstream)، فتعرف عمليات الدفع والسحب اللاحقة وجهتها. ولتدفع تلقائيًا بعد كل commit افتح Commit Options وفعّل Push After Commit.
أما المستودع الذي أنشأته بـ Init فليس له مستودع بعيد بعد. افتح لوحة الأوامر بالاختصار ⌘+Shift+P على ماك (Mac)، أو Ctrl+Shift+P على ويندوز (Windows) ولينكس (Linux)، ثم نفّذ Publish Repository… (نشر المستودع): ينشئ المستودع في حسابك المربوط على GitHub أو GitLab أو Bitbucket أو Azure DevOps، ويضيفه مستودعًا بعيدًا، ويدفع الفرع. وتجد الخطوات كاملة في دليل رفع مشروع على GitHub بدون أوامر. وفي سطر الأوامر، بعد إنشاء مستودع فارغ على الموقع:
git remote add origin https://github.com/your-name/your-project.git
git push -u origin mainولتحصل على إيداعات دفعها زملاؤك اختر Pull، علمًا بأن GitTree يجلب التحديثات في الخلفية فتظهر الإيداعات البعيدة الجديدة على المخطط أولًا. وإن طلب المستودع البعيد التحقّق من هويتك، فاربط حساب الاستضافة في GitTree، أو أنشئ مفتاح SSH من داخل البرنامج وارفعه إلى GitHub أو GitLab أو Bitbucket.
أول مشروع Git في GitTree: الخطوات باختصار
ثبّت Git وGitTree
ثبّت Git بالإصدار 2.39 أو أحدث، واضبط اسمك وبريدك، ثم احصل على GitTree من صفحة تحميل GitTree وسجّل الدخول مرة واحدة.
استنسخ مستودعًا أو أنشئه
في صفحة البداية اختر Clone والصق عنوان المستودع، أو اختر Init لإنشاء مستودع جديد في مجلد.
جهّز تغييرًا
عدّل ملفًا، ثم اختر Stage All Changes، أو جهّز ملفات أو كتلًا أو أسطرًا بعينها.
أودِعه
اكتب ملخّصًا قصيرًا لما تغيّر، ثم اختر زر الإيداع.
اعمل على فرع ثم ادمجه
اختر Branch لإنشاء فرع والإيداع عليه، ثم بدّل إلى
main، وانقر بالزر الأيمن على الفرع واختر الدمج (Merge).ادفع إلى المستودع البعيد
اختر Push. وإن أنشأت المستودع بـ Init، فنفّذ أولًا Publish Repository… من لوحة الأوامر.
قاموس مصطلحات Git للمبتدئين
أبقِ هذا الجدول قريبًا وأنت تتعلّم Git: في كل صف مصطلح ومعناه ومكانه في GitTree.
| المصطلح | معناه | في GitTree |
|---|---|---|
| المستودع (repository) | مجلد مشروع يتتبّع Git تاريخه في مجلد مخفي اسمه .git. | تبويب؛ وOpen أو Clone أو Init في صفحة البداية. |
| مجلد العمل (working folder) | الملفات التي تراها وتعدّلها على القرص. | صف // WIP وقائمة Unstaged Files. |
| منطقة التجهيز (staging area / index) | التغييرات التي اخترتها للـ commit التالي. | قائمة Staged Files. |
| الإيداع (commit) | لقطة محفوظة للتغييرات المجهّزة، مع رسالة ومؤلف وتاريخ. | نقطة على مخطط الإيداعات. |
| المعرّف (hash / SHA) | المعرّف الفريد للـ commit، مثل a1b2c3d. | الأمر Copy Commit SHA. |
| الفرع (branch) | اسم يشير إلى commit ويتقدّم مع كل إيداع جديد. | تسميات على المخطط وفي الشريط الجانبي. |
| HEAD | ما بدّلت إليه الآن، وهو فرع في الغالب. | منتقي الفروع في شريط الأدوات. |
| التبديل (checkout / switch) | نقل مجلد العمل إلى فرع أو commit آخر. | نقر مزدوج على تسمية الفرع. |
| الدمج (merge) | إضافة إيداعات فرع آخر إلى الفرع الحالي. | الزر الأيمن على الفرع، أو سحبه إلى فرع آخر. |
| تعارض الدمج (merge conflict) | غيّر الفرعان الأسطر نفسها، فيطلب منك Git أن تختار. | محرّر تعارضات ثلاثي. |
المستودع البعيد (remote / origin) | نسخة من المستودع على خادم، وorigin هو الذي استنسخت منه. | قسم Remote في الشريط الجانبي. |
| الاستنساخ (clone) | نسخ مستودع بعيد بتاريخه إلى حاسوبك. | زر Clone في صفحة البداية. |
| الدفع (push) | إرسال إيداعاتك الجديدة إلى المستودع البعيد. | زر Push. |
| الجلب والسحب (fetch / pull) | الجلب ينزّل الإيداعات الجديدة، والسحب يُدخلها أيضًا في فرعك. | زر Pull. |
ملف .gitignore | ملف يسرد المسارات التي لا يتتبّعها Git، مثل ملفات البناء. | الأمر Ignore This File على ملف متغيّر. |
| التخبئة (stash) | تغييرات تضعها جانبًا دون إيداعها لتعيدها لاحقًا. | زرّا Stash وPop. |
كيف تواصل تعلّم Git بعد مشروعك الأول
الحلقة التي تدرّبت عليها للتو (تعديل ثم تجهيز ثم commit ثم push، وفرع لكل ما هو أكبر من إصلاح سريع) تغطي معظم أيامك مع Git. وحين تكون مستعدًا للمزيد، تعلّم فكرة واحدة في كل مرة:
- اقرأ التاريخ. تعلّم تتبّع المسارات والتفرّعات وعمليات الدمج مع عرض شجرة Git.
- تراجع بأمان. معظم الأخطاء قابلة للاسترجاع؛ اقرأ كيف تتراجع عن reset أو rebase أو commit.
- رتّب إيداعاتك قبل مشاركتها. تتيح لك إعادة الأساس التفاعلية (interactive rebase) بواجهة رسومية ضمّ الإيداعات (squash) وإعادة صياغة رسائلها وإعادة ترتيبها بالسحب.
- تعلّم الأوامر أيضًا. في GitTree طرفية مدمجة أسفل المخطط، فتكتب الأمر وترى المخطط يتغيّر. وتشرح مقارنتنا بين واجهة Git الرسومية وسطر الأوامر متى يتفوّق كل منهما.
GitTree مجاني اليوم، والمستودعات الخاصة مشمولة. اطّلع على كل ما يستطيع فعله، أو اقرأ ملاحظات التثبيت لأنظمة ماك (Mac) وويندوز (Windows) ولينكس (Linux).
الأسئلة الشائعة
ما هو Git بكلمات بسيطة؟
Git نظام للتحكم في الإصدارات: برنامج يسجّل كل تغيير محفوظ في ملفات مجلد المشروع. تستطيع به معرفة من غيّر ماذا ومتى، والمقارنة بين النسخ، والعودة إلى حالة سابقة، والعمل على أكثر من فكرة في وقت واحد عبر الفروع. يعمل على حاسوبك ودون اتصال، ولا تحتاج إلى الشبكة إلا لمشاركة إيداعاتك.
هل تعلّم Git صعب على المبتدئين؟
الجزء اليومي من Git صغير: التجهيز (stage) والإيداع (commit) والفروع والدمج والدفع (push) والسحب (pull)، ويعتاده كثير من المبتدئين بعد بضع ساعات من التدريب. ما يبدو صعبًا في البداية هو تخيّل الفروع والتاريخ، وهنا تفيد الواجهة الرسومية لأنها ترسم كل commit وكل فرع على مخطط. أما الأوامر المتقدّمة مثل rebase فيمكن تأجيلها حتى تحتاج إليها.
هل أتعلّم Git بواجهة رسومية أم بسطر الأوامر أولًا؟
كلا الطريقين يصلح، وأفضل مسار لكثير من المبتدئين يجمع بينهما. الواجهة الرسومية تُريك أثر كل إجراء على مخطط الإيداعات، فترسخ الأفكار أسرع. وسطر الأوامر يعلّمك المصطلحات الدقيقة المستخدمة في التوثيق وعلى الخوادم. استخدام واجهة تنفّذ أوامر Git الحقيقية، مع تجربة الأوامر المقابلة في الطرفية، يبني المهارتين معًا.
ما الفرق بين Git وGitHub؟
Git أداة التحكم في الإصدارات التي تعمل على حاسوبك وتحفظ تاريخ مشروعك. أما GitHub فموقع يستضيف مستودعات Git على الإنترنت ليتشارك الناس الأكواد ويراجعوا التغييرات ويتعاونوا. وGitLab وBitbucket خدمتان مشابهتان. يمكنك استخدام Git دون أي منها، ولا ترفع عملك إليها (push) إلا حين تريد نسخة منه على الإنترنت.
ما الفرق بين التجهيز (stage) والإيداع (commit) في Git؟
التجهيز يحدّد التغييرات التي ستدخل في الـ commit التالي، والإيداع يحفظ هذه التغييرات المجهّزة نهائيًا في التاريخ مع رسالة. التغييرات التي لا تجهّزها تبقى في مجلد العمل كما هي. وهذا الفصل يتيح لك تحويل ساعات من التعديلات المتفرّقة إلى عدة إيداعات نظيفة، لكل منها غرض واحد واضح، حتى لو كانت في الملف نفسه.
هل أحتاج إلى حساب GitHub لاستخدام Git؟
لا. يعمل Git بالكامل على حاسوبك: تنشئ مستودعًا وتودِع وتنشئ الفروع وتدمجها دون أي حساب. ولا تحتاج إلى حساب على GitHub أو GitLab أو Bitbucket أو خدمة مشابهة إلا حين تريد نسخة احتياطية على الإنترنت أو التعاون مع غيرك. أما GitTree نفسه فيحتاج إلى حساب GitTree مجاني تنشئه بحسابك على GitHub أو GitLab أو Bitbucket أو Azure DevOps.
هل GitTree مجاني للمبتدئين، وماذا أحتاج لتشغيله؟
GitTree مجاني اليوم للأفراد والمؤسسات، والمستودعات الخاصة مشمولة، ولا توجد خطة مدفوعة. يعمل على macOS 13 أو أحدث، وWindows 10 و11 بنظام 64 بت، وLinux بنظام 64 بت (Ubuntu وDebian). تحتاج إلى Git بالإصدار 2.39 أو أحدث وحساب GitTree مجاني، ويتطلّب التشغيل الأول اتصالًا بالإنترنت، ثم يعمل دون اتصال حتى 7 أيام.
المصادر
تحققنا من المعلومات عن المنتجات الأخرى من صفحاتها الرسمية بتاريخ 6 أكتوبر 2026. الأسعار والميزات تتغير، وصفحات الشركات هي المرجع.
- كتاب Pro Git: ما هو Git؟
- كتاب Pro Git: تاريخ مختصر لـ Git
- كتاب Pro Git: إعداد Git لأول مرة
- كتاب Pro Git: الحصول على مستودع Git
- كتاب Pro Git: تسجيل التغييرات في المستودع
- كتاب Pro Git: الفروع باختصار
- كتاب Pro Git: أساسيات التفريع والدمج
- كتاب Pro Git: العمل مع المستودعات البعيدة
- توثيق Git: الأمر git-init (اسم الفرع الأولي)
- توثيق Git: الأمر git-switch
- توثيق Git: مسرد المصطلحات gitglossary
- صفحة تحميل Git