تخطَّ إلى المحتوى
GitTree

الدرس 5 · الأساسيات

جهّز النسخة المقصودة وأنشئ أول إيداع

أنشئ README وصفحة الواجهة داخل GitTree، وحدد ما يدخل الإيداع الأول، ثم اترك تحريرًا لاحقًا خارجه عمدًا. أثبت محتوى الإيداع بدل الاكتفاء بإشعار نجاح.

حُفظ التقدّم في هذا المتصفح.

يحمّل التشغيل الفيديو من YouTube (وضع الخصوصية المحسّنة).

تعليق صوتي بالإنجليزية · ترجمة إنجليزية وعربية

افتح صفحة الفيديوشاهد على YouTube

ما الذي ستتعلمه

  • إنشاء أول ملفين وحفظهما داخل GitTree.
  • تجهيز ملف وإلغاء تجهيزه دون خلط ذلك بحذف ملف العمل.
  • مقارنة الفهرس ومجلد العمل قبل الإيداع.
  • كتابة ملخّص مفيد وإيداع النسخة المُجهَّزة وحدها.
  • التحقّق من الملفات والهوية والتحرير المتبقي بعد الإيداع.

قبل البدء

ابدأ من حيث انتهى الدرس الرابع. مستودع الأصل gittree-features عادي، وmain دون إيداع بعد. لا ملفات مشروع ولا بعيد، والهوية المحلية GitTree Demo / demo@example.com. لا تتابع في gittree-features-copy الإضافي من الدرس الرابع.

الحد الأدنى المقروء لـ GitTree هو Git 2.39.0. سُجّل الفيديو باستخدام Git 2.52.0 وGitTree 2.0 على Ubuntu 24.04: أُنشئ الملفان وجُهّزا وأُودع الإيداع الأول في التطبيق نفسه، وجرت فحوص الطرفية على ما أنشأه التطبيق أو على نسخ منفصلة من المشروع في الحالات A وB وC فلم يُعَد تشغيل الأصل. لم يُنفَّذ شيء على macOS أو Windows، وUbuntu هو نظام Linux الوحيد المسجَّل؛ واختصارات Command وWindows مأخوذة من مصدر الاختصارات.

لا يتطلب الإيداع المحلي بـGit الأصلي حسابًا. في GitTree سجّل الدخول، فتشمل الخطة المجانية هذا الدرس. لا نحتاج مزوّدًا أو Pro أو تجربة أو صياغة بالذكاء الاصطناعي أو مفتاح API أو مشغّل CI. لا تضف بعيدًا لإنشاء إيداع محلي.

الفكرة: اختر المحتوى ثم سجّله

الإيداع لا يعني حفظ كل ما تراه. يسجّل الإيداع العادي هنا الفهرس، أي النسخة المختارة كاملة، وينشئ إيداعًا جذريًا يشير إليه main. لا يحدث دفع إلى أي مكان.

الحفظ في المحرّر يغيّر مجلد العمل. التجهيز يحدّث الفهرس من الملف المختار، وإلغاء التجهيز يغيّر الاختيار في الفهرس. لا يعني ذلك التخلّص من التغييرات، ولا يحذف ملف العمل في تدريبنا. قبل أول إيداع لا توجد نسخة مُودَعة سابقة لاستعادتها، فيعود الملف الجديد غير المُجهَّز إلى حالة غير مُتتبَّع.

يمكن تشبيه الأمر بنسخة جاهزة للتسجيل ومسودة تستمر في تحريرها: قد تسجّل النسخة الجاهزة دون إدخال أحدث تحرير في المسودة. التجهيز لا يتابع التعديلات اللاحقة تلقائيًا. راجع سلوك التجهيز وأنماط الإيداع.

لا نستخدم -a أو مسارات صريحة مع أمر الإيداع، ولا تعديل الإيداع السابق أو الإيداع الفارغ أو التجهيز التلقائي لكل شيء. يصف الفهرس شجرة النسخة المقبلة، لا مجرد قائمة أسماء متغيرة.

الحالةindex.html في العملindex.html في الفهرسHEAD وmainالبعيد
A: حفظ الملفين الأولينHTML-01لا مدخلدون إيداعلا يوجد
B: تجهيز الملفينHTML-01HTML-01دون إيداعلا يوجد
C: تحرير السطر الداعم بعد التجهيزHTML-01-WORKINGHTML-01دون إيداعلا يوجد
D: نجاح الإيداع العاديHTML-01-WORKINGHTML-01أول إيداع يحمل HTML-01لا يوجد

يُجهَّز README-01 ويُودَع أيضًا. بعد D يكون README دون تغييرات، ويظل index.html معدّلًا في مجلد العمل وحده. يمكن أن يظهر إيداع جديد في الرسم بينما لا تكون الحالة خالية.

ملفات المشروع كاملة

استخدم UTF-8 ونهايات LF وسطرًا نهائيًا واحدًا. لا تلصق أسوار Markdown داخل الملفات. لا يوجد بعد package.json أو CSS أو JS أو حزمة فحوص Node؛ نضيفها في الدرس السادس.

README.md — README-01

مقتطف من ملف · markdown
# GitTree Features

A fictional landing page used to learn Git and GitTree.

All people and addresses in this repository are fictional.
No form submits information to a server.

index.html — HTML-01 قبل التجهيز

مقتطف من ملف · html
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>GitTree Features — course demo</title>
</head>
<body>
  <header class="site-header">
    <a href="#main">GitTree Features</a>
  </header>
  <main id="main">
    <section class="hero" aria-labelledby="hero-title">
      <p class="eyebrow">GitTree Learn demo project</p>
      <h1 id="hero-title">Understand every change.</h1>
      <p id="hero-copy">A clear view of Git history.</p>
    </section>
  </main>
  <footer><p>Built by a fictional team for GitTree Learn.</p></footer>
</body>
</html>

index.html — HTML-01-WORKING بعد التجهيز فقط

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

مقتطف من ملف · html
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>GitTree Features — course demo</title>
</head>
<body>
  <header class="site-header">
    <a href="#main">GitTree Features</a>
  </header>
  <main id="main">
    <section class="hero" aria-labelledby="hero-title">
      <p class="eyebrow">GitTree Learn demo project</p>
      <h1 id="hero-title">Understand every change.</h1>
      <p id="hero-copy">Choose one change, then check what Git saved.</p>
    </section>
  </main>
  <footer><p>Built by a fictional team for GitTree Learn.</p></footer>
</body>
</html>

التغيير المقصود الوحيد هو السطر الداعم hero-copy. لا تغيّر العنوان الرئيسي أو بقية المحتوى.

في GitTree

1. أنشئ الملفين واحفظهما

  1. تأكد من الأصل وسياق main. افتح لوحة الأوامر… (Command Palette…) بـ Command+Shift+P أو Ctrl+Shift+P، ثم اختر ملف جديد… (New File…، files.newFile). يبدأ الأمر من جذر المشروع عند عدم تمرير مجلد.
  2. في ملف جديد (New File) أدخل README.md في المسار من مجلد المشروع (Path from the project folder)، ثم اختر إنشاء. يُفتح الملف الجديد في مساحة الملف. يرفض الإنشاء مسارًا موجودًا بدل الكتابة فوقه.
  3. ركّز منطقة النص القابلة للتحرير، والصق README-01 كاملًا، ثم حفظ (Save). البديل Command+S أو Ctrl+S داخل محرّر ملف العمل. انتظر زوال تغييرات غير محفوظة (Unsaved changes) بعد نجاح الحفظ.
  4. كرّر ملف جديد… للمسار index.html، ثم إنشاء. الصق HTML-01 لا النسخة اللاحقة، واحفظ وانتظر.
  5. اختر العودة إلى الرسم البياني (Back to Graph، view.returnToGraph) من شريط الملف أو لوحة الأوامر. ثم اختر عرض تغييرات مجلد العمل (Show Working Changes، wip.show). يظهر الملفان تحت الملفات غير المُجهَّزة (Unstaged Files) ولا شيء تحت الملفات المُجهَّزة (Staged Files).
  6. قد يكون الزر الأساسي جهِّز التغييرات لإيداعها (Stage Changes to Commit) عند خلو الفهرس. يجهّز هذا الزر كل التغييرات ولا يثبت إنشاء إيداع. سنختار الملفات عمدًا بدل استخدامه هنا.

حفظ النص ليس تجهيزًا، وفتح تبويب ملف لا يثبت وصول آخر نص فيه إلى القرص.

2. جهّز ملفًا وألغِ تجهيزه ثم جهّز الملفين

  1. عند README.md في غير المُجهَّزة اختر إجراء الصف تجهيز الملف (Stage File). البديل تحديد هذا الصف وحده مع بقاء التركيز في القائمة ثم S، أو أمر اللوحة تجهيز (Stage، wip.stageSelected). ينتقل إلى المُجهَّزة.
  2. عند صفه المُجهَّز اختر إلغاء تجهيز الملف (Unstage File). البديل تحديده وحده داخل القائمة ثم U، أو أمر إلغاء التجهيز (Unstage، wip.unstageSelected). يعود إلى غير المُجهَّزة وتبقى محتوياته على القرص.
  3. جهّز README.md مجددًا ثم index.html بإجراء صفه. يجب أن توجد مساران مُجهَّزان فقط.
  4. انقر كل صف مُجهَّز وراجع إضافته كاملة. يجب أن يحمل index.html السطر A clear view of Git history. لا يكفي عدد الملفات لإثبات المحتوى.

الاختصاران S وU مقيّدان بقائمتيهما؛ لا تكتبهما داخل محرّر أو ملخّص. لا نفترض دعم إسقاط الملفات للتجهيز.

3. احفظ تحريرًا لاحقًا دون تجهيزه

  1. افتح عرض الملفات (Show Files، files.focus) بـ Command+Shift+E أو Ctrl+Shift+E. ركّز index.html في شجرة الملفات واضغط Enter لفتح نسخة العمل. البديل نقر تبويبه المحفوظ المفتوح. استخدم عرض الملف القابل للتحرير، لا ملفًا تاريخيًا أو فرقًا مُجهَّزًا.
  2. استبدل محتواه بـ HTML-01-WORKING كاملة، ثم احفظ. انتظر نجاح الكتابة على القرص.
  3. عد إلى الرسم ثم عرض تغييرات العمل. يظهر index.html في القائمتين. انقر صف غير المُجهَّزة لترى استبدال السطر الداعم.
  4. انقر صف المُجهَّزة: ما زالت الإضافة الأولى تحمل السطر الأقدم. لا تعِد تجهيز التحرير الأحدث، ولا تستخدم تجهيز كل التغييرات (Stage All Changes)؛ سيتغير محتوى الإيداع المقبل.

4. اكتب الرسالة وأودِع الفهرس

  1. في حقل الملخّص (Summary)، ذي العنصر النائب ملخّص الإيداع (Commit summary)، اكتب feat: add the GitTree Features hero كما هو. اترك الوصف (Description) فارغًا. يصف الملخّص التغيير دون ادعاء اكتمال الموقع أو نجاح فحوص لم نضفها بعد.
  2. أبقِ تعديل الإيداع الأخير (Amend Previous Commit) معطلًا. افتح خيارات الإيداع (Commit Options) وافحص تعطيل تخطّي الخطّافات (--no-verify) وإضافة Signed-off-by (Add Signed-off-by) ومؤلف مختلف (Different Author) والدفع بعد الإيداع (Push After Commit) والسماح بإيداع فارغ (Allow Empty Commit). لا تضف مؤلفين مشاركين ولا تستدعِ الصياغة الآلية.
  3. راجع المسارين المُجهَّزين والسطر الأقدم، ثم اختر إيداع تغييرات ملفين (Commit Changes to 2 Files). البديل Command+Enter أو Ctrl+Enter عبر أمر إيداع (commit.submit) بعد التحقق من المستودع النشط وحالة الانتظار.
  4. انتظر نتيجة Git الفعلية. تعرض نتيجة النجاح SHA مقاسًا؛ لا تنسخ معرّفًا رمزيًا من رسم. يظهر أول إيداع على main. في حالة عدم تغيير مسودة الرسالة أثناء الإرسال تُمسح بعد نجاحه.
  5. افحص القوائم: لا شيء مُجهَّز، ويبقى index.html في غير المُجهَّزة بالسطر اللاحق. لا تضغط زر تجهيز التغييرات لإخفاء هذه النتيجة المقصودة.

عدد الملفات هو مساران مُجهَّزان لا ثلاثة صفوف في القائمتين. الدفع بعد الإيداع خيار متابعة منفصل، وهو معطل ولا يوجد بعيد.

في الطرفية

اعمل داخل <course-parent>/gittree-features بعد استبدال العنصر النائب بأبك المخصص. إذا نفّذت عملية داخل التطبيق فـ افحص نتيجتها بدل إعادة العملية الأصلية والتقدم خارج نقطة الدرس.

بعد حفظ الملفين وقبل التجهيز

الأمر · bash
git status --short

الناتج المرصود:

الناتج
?? README.md
?? index.html

محاولة مقصودة للإيداع قبل وجود محتوى مُجهَّز:

الأمر · bash
git commit --quiet -m "feat: add the GitTree Features hero"

الناتج على stdout مع الحالة 1، دون stderr:

الناتج
On branch main

Initial commit

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	README.md
	index.html

nothing added to commit but untracked files present (use "git add" to track)

لم يُنشأ إيداع. يفسر ذلك أهمية اختيار المحتوى؛ لا تستخدم إيداعًا فارغًا لتجاوز السبب.

المقابل الأصلي للتجهيز وإلغائه

في إعادة منفصلة لحالة الملفين المحفوظين:

الأمر · bash
git add -- README.md
git rm --cached --quiet -- README.md

نجح الأمران دون ناتج. الخيار --cached أساسي: يزيل المدخل الجديد من الفهرس ولا يحذف ملف العمل. بقي README مطابقًا للنسخة الكاملة، وعادت حالة الملفين غير مُتتبَّعة. لا تعمم هذا المثال على حذف ملفات مُتتبَّعة في مشروع قائم.

جهّز الملفين:

الأمر · bash
git add -- README.md index.html
git status --short
git diff --cached --stat

الحالة:

الناتج
A  README.md
A  index.html

الملخص:

الناتج
 README.md  |  6 ++++++
 index.html | 21 +++++++++++++++++++++
 2 files changed, 27 insertions(+)

يعد الملخص الأسطر ولا يثبت صحة المحتوى؛ راجع النسخة المُجهَّزة نفسها.

بعد حفظ التحرير اللاحق

الأمر · bash
git status --short
git diff -- index.html

الحالة:

الناتج
A  README.md
AM index.html

فرق العمل:

الناتج
diff --git a/index.html b/index.html
index 5470374..27f8718 100644
--- a/index.html
+++ b/index.html
@@ -13,7 +13,7 @@
     <section class="hero" aria-labelledby="hero-title">
       <p class="eyebrow">GitTree Learn demo project</p>
       <h1 id="hero-title">Understand every change.</h1>
-      <p id="hero-copy">A clear view of Git history.</p>
+      <p id="hero-copy">Choose one change, then check what Git saved.</p>
     </section>
   </main>
   <footer><p>Built by a fictional team for GitTree Learn.</p></footer>

اختصارات الكائنات مقاسة من محتوى الملفات الفعلي بنهايات LF، وليست SHAs لإيداعات مختلقة. قد يختلف طول العرض وفق الإعدادات، لكن تظل المقارنتان منفصلتين.

اقرأ الملف المُجهَّز نفسه:

الأمر · bash
git show :index.html

الناتج الكامل:

الناتج
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>GitTree Features — course demo</title>
</head>
<body>
  <header class="site-header">
    <a href="#main">GitTree Features</a>
  </header>
  <main id="main">
    <section class="hero" aria-labelledby="hero-title">
      <p class="eyebrow">GitTree Learn demo project</p>
      <h1 id="hero-title">Understand every change.</h1>
      <p id="hero-copy">A clear view of Git history.</p>
    </section>
  </main>
  <footer><p>Built by a fictional team for GitTree Learn.</p></footer>
</body>
</html>

أودِع وتحقّق

في الإعادة الأصلية المنفصلة فقط، دون تجهيز التحرير اللاحق:

الأمر · bash
git commit --quiet -m "feat: add the GitTree Features hero"

الناتج: لا شيء، والحالة 0. لم تضم نسخة الفحص خطّافات نشطة أو توقيعًا مطلوبًا، وكانت الهوية محلية خيالية. لا تعطل فحوص مشروع فعلي أو توقيعه لإجبار المثال على النجاح.

افحص نتيجة التطبيق أو النسخة الأصلية:

الأمر · bash
git log -1 --format="%s%n%an <%ae>%n%cn <%ce>"
git rev-list --count HEAD
git ls-tree --name-only HEAD
git status --short
git diff --cached
git remote

نتائج الأوامر الأربعة الأولى بالترتيب:

الناتج
feat: add the GitTree Features hero
GitTree Demo <demo@example.com>
GitTree Demo <demo@example.com>
1
README.md
index.html
 M index.html

الأمران الأخيران نجحا بالحالة 0 دون ناتج. بقي تحرير العمل ولا يوجد بعيد؛ الإيداع محلي وليس رفعًا.

أعاد git show HEAD:index.html كامل HTML-01 المعروض أعلاه كناتج للنسخة المُجهَّزة، وبقي git diff -- index.html يحمل فرق السطر الداعم نفسه. تطابق الفهرس وHEAD للملفين؛ لم تُفقد النسخة الأحدث.

النتيجة

في نهاية هذا الدرس يشير main إلى إيداع واحد فقط بالملخّص والهوية الخياليين. يحمل HEAD والفهرس README-01 وHTML-01، ويحمل ملف العمل HTML-01-WORKING. تظهر مسافة ثم M لـ index.html، ولا يوجد بعيد.

لا تنظّف التحرير المقصود أو تنشئ إيداعًا ثانيًا أو تعدّل الإيداع الجذري أو تضف دفتر التدريب الاختياري قبل الدرس السادس. مكان دفتر الاستمرار الخالي في نسخة محفوظة منفصلة، لا في هذا الإيداع الأول ذي الملفين.

أخطاء شائعة

  • الحفظ دون تجهيز: تختلف بايتات القرص عن بايتات الإيداع المختارة.
  • إعادة التجهيز بعد التحرير المقصود: إجراء صحيح، لكنه يُدخل السطر الأحدث ويغيّر النتيجة المحددة.
  • عد الصفوف كلها ملفات مُجهَّزة: قد يكون للمسار نفسه صفان لمقارنتين.
  • استخدام تجهيز الكل للتنظيف النهائي: يختار التحرير الذي تركناه خارج الإيداع عمدًا.
  • تفعيل التعديل أو الدفع: لكل منهما أثر مختلف لا نحتاج إليه.
  • مساواة إلغاء التجهيز بالتخلّص: الأول يغير الفهرس، والثاني قد يزيل محتوى العمل.

عند حدوث مشكلة

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

إذا مُنع الإيداع لخلو الفهرس فاختر الملفات المقصودة وراجعها. وإذا غابت الهوية فافحص إعدادات الدرس الرابع المحلية. قد تعرض محاولة فاشلة نافذة إعداد هوية Git ذات هدف حفظ للمستودع؛ لا يبرر ذلك كتابة عامة، ولا يعني حفظ الهوية نجاح الإيداع تلقائيًا.

عند رفض Git أو فشل خطّاف اقرأ مخرجات الخطّاف إن توفرت. رسالة المصدر: لم يُنشأ الإيداع. رسالتك وتغييراتك المُجهَّزة كما هي. أصلح السبب المعلن ثم أعد فحص الفهرس قبل المحاولة. لا تتخطَّ الخطّافات للحصول على لقطة خضراء. وإذا كانت النتيجة غير مؤكدة فافحص HEAD قبل إعادة الإرسال.

إذا أُنشئ إيداع بمحتوى غير مقصود فتوقف وسجّل SHA الحقيقي وحالة الفهرس والعمل والرسالة. لا تبدأ فورًا بالتعديل أو إعادة الضبط أو التخلّص. تغيير الإعداد الآن لا يغيّر هوية مخزنة في إيداع سابق.

اختبر فهمك

أجب عن كل سؤال ثم اقرأ السبب. الأسئلة المعلَّمة «مطلوب» تُحتسب لإكمال الدرس.

  1. السؤال 1 من 6

    أنشأت index.html وأتممت Save في المحرّر. لم تجهّزه. ماذا يثبت الحفظ؟

    اختر إجابة واحدة.

  2. السؤال 2 من 6

    جهّزت README الجديد ثم ألغيت تجهيزه قبل أول إيداع. ما الصحيح؟

    اختر كل إجابة صحيحة.

  3. السؤال 3 من 6
    مطلوب

    جُهّز الملفان، ثم حُفظ HTML-01-WORKING دون تجهيز جديد. نفّذت الإيداع العادي. أي نتيجة صحيحة؟

    اختر إجابة واحدة.

  4. السؤال 4 من 6
    مطلوب

    في إعادة منفصلة، بعد حفظ النسخة الأحدث جهّزت index.html مرة أخرى ثم أودعت الملفين. ماذا تتوقع؟

    اختر إجابة واحدة.

  5. السؤال 5 من 6

    يوجد ملفان غير مُجهَّزين ولا شيء مُجهَّز. يعرض الزر Stage Changes to Commit. ماذا يفعل؟

    اختر إجابة واحدة.

  6. السؤال 6 من 6
    مطلوب

    افحص الأصل بالأوامر المحددة، أو اقرأ سجلها الحقيقي الكامل. ما الأدلة المطلوبة معًا؟

    اختر كل إجابة صحيحة.

0 من 6 صحيحة

أجب عن الأسئلة المطلوبة إجابة صحيحة لتكمل الدرس.

جرى التحقق في هذا المتصفح.

تدريب

نفّذ استعلامات الحالة والمحتوى على الأصل المكتمل، واشرح لماذا يكون وجود إيداع واحد وتعديل عمل متبقٍ صحيحًا معًا. سجّل توقعك قبل قراءة الملف المُجهَّز.

في إعادة مؤقتة منفصلة فقط، جهّز index.html المعدّل قبل الإيداع. توقّع دخول السطر الأحدث وخلو الحالة. ولا تغيّر الأصل لأجل البديل. إن لم يُبنَ تمرين المتصفح بعد، قارن السجلين واشرح سبب اختلافهما.

تأكيد منك أنت: لا يستطيع الموقع رؤية جهازك.

لإكمال الدرس، أجب عن الأسئلة المطلوبة إجابة صحيحة وأكّد تنفيذ التمرين العملي.

خلاصة

  • يغيّر الحفظ ملف العمل، ويختار التجهيز محتوى الإيداع العادي المقبل.
  • يسجّل الإيداع الأول الفهرس ويحدّث main محليًا دون دفع.
  • افحص المحتوى والهوية والعمل المتبقي على حدة؛ قد تكون الحالة غير الخالية مقصودة.

المصطلحات الجديدة

Stage — تجهيز؛ unstage — إلغاء التجهيز؛ commit — إيداع؛ index — الفهرس؛ working tree — مجلد العمل؛ untracked — غير مُتتبَّع؛ author — المؤلف؛ committer — المُودِع. Discard هو التخلّص من التغييرات، وليس إلغاء التجهيز.

نص الفيديو

ترجمة التعليق الصوتي الإنجليزي للفيديو، مقطعًا بعد مقطع.

اعرض النص
  1. أنشئ الواجهة وجهّز نسخة واحدة، ثم أثبت ما حفظه أول إيداع.
  2. ابدأ في الأصل من L004، لا النسخة الإضافية.
  3. يغيّر الحفظ والتجهيز والإيداع نسخًا مختلفة.
  4. أنشئ أول ملف عبر أمر ملف جديد في GitTree.
  5. سمّه README.md في جذر المشروع.
  6. احفظ README الكامل للمشروع الخيالي دون أسوار Markdown.
  7. أنشئ index.html في المستودع نفسه.
  8. احفظ الواجهة الأصلية بهذا السطر الداعم.
  9. افتح تغييرات مجلد العمل لترى الملفين الجديدين غير المُتتبَّعين.
  10. عندما لا شيء مُجهَّز، يجهّز هذا الزر كل التغييرات أولًا.
  11. تؤكد الطرفية وجود ملفين غير مُتتبَّعين، لا إيداعين.
  12. لا يسجّل الإيداع العادي هذين الملفين قبل اختيار محتواهما.
  13. جهّز README وحده أولًا.
  14. ألغِ تجهيزه مجددًا؛ يبقى نص العمل المحفوظ كما هو.
  15. يغيّر إلغاء التجهيز الاختيار؛ وقد يزيل التخلّص محتوى العمل.
  16. جهّز الآن الملفين المقصودين، واحدًا بعد الآخر.
  17. يعمل S وU في القائمتين المركّزتين، لا داخل حقول النص.
  18. راجع المحتوى المُجهَّز، لا عدد الملفات وحده.
  19. يعد الملخص الأسطر، ولا يثبت أن محتواها صحيح.
  20. لا تزال النسخة المُجهَّزة هي الواجهة الأصلية.
  21. أعد فتح ملف العمل، لا المقارنة المُجهَّزة.
  22. احفظ السطر الداعم اللاحق دون تجهيزه.
  23. يظهر المسار نفسه الآن في المقارنتين.
  24. تعرض المقارنة غير المُجهَّزة التحرير اللاحق مقابل الفهرس.
  25. ما زالت الإضافة المُجهَّزة تحتوي السطر الأقدم.
  26. اقرأ الفهرس مباشرةً لإثبات النسخة المُجهَّزة.
  27. دون تجهيز جديد، أي سطر سيحمله الإيداع الأول؟
  28. اكتب ملخّصًا يصف الواجهة التي أضفتها فعلًا.
  29. أبقِ التعديل وكل السلوكيات الاختيارية معطلة لهذا الإيداع المحلي.
  30. أودِع المسارين المُجهَّزين، لا كل صف ظاهر.
  31. انتظر تأكيد Git إنشاء الإيداع قبل اعتبار العملية مكتملة.
  32. يشير main الآن إلى أول إيداع محلي له.
  33. يبقى تحرير العمل اللاحق خارج الإيداع عمدًا.
  34. تحقّق من الملخّص والمؤلف والمُودِع كلٍّ على حدة.
  35. يوجد إيداع واحد يضم هذين المسارين فقط.
  36. قد يغيب الفرق المُجهَّز مع بقاء تعديل في مجلد العمل.
  37. الملف المسجّل أقدم، وما زال ملف العمل يحمل السطر الأحدث.
  38. لم يُرفع شيء؛ ما زال المستودع دون بعيد.
  39. إذا جهّزت التحرير اللاحق أولًا، تتغير النسخة المُجهَّزة.
  40. يسجّل الإيداع البديل السطر الأحدث ويترك حالة خالية.
  41. اختصار الإيداع وسيلة إرسال بديلة، لا خطوة إتمام ثانية.
  42. إذا رفض Git فافحص مخرجاته والمحتوى المُجهَّز قبل المحاولة.
  43. لا تتخلّص من التحرير المتبقي ولا تفترض أن التراجع يغطي كل نص.
  44. نقطة النهاية إيداع محدد واحد وتحرير عمل مقصود واحد.
  45. افحص المحتوى المسجّل والهوية والعمل المتبقي كلًا على حدة.
  46. يكتب الحفظ ملف العمل، ويختار التجهيز، ويسجّل الإيداع.
  47. احتفظ بالتحرير اللاحق؛ نفحص الفروق ونضيف أدوات المشروع لاحقًا.
  48. تابع من هذه الحالة المفحوصة، لا من مجلد نظيف بالتخمين.