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

الدرس 17 · العمل اليومي

تتبّع سجل الملف ونسب الأسطر

انسب سطر مراجعة README إلى Maya وتذكير التذييل إلى Leo عبر السجل ونسب الأسطر دون اعتبار الهوية موافقة على الكود.

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

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

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

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

ما ستتعلمه

  • افصل سجل الملف عن نسب سطره الحالي.
  • اقرأ المؤلف والمُودِع مستقلين.
  • افحص النسب السابق دون تبديل.
  • افصل الهوية عن الثقة الأمنية.

قبل البدء

تبدأ من حيث انتهى الدرس الخامس عشر: main بإيداع التجاهل، خالٍ؛ ما زال README.md الأصلي، ويحوي index.html تذييل Leo من الدرس الحادي عشر. الميزة المنشورة والوسم v0.1.0 دون تغيير.

سُجّل الفيديو باستخدام Git 2.52.0 وGitTree 2.0 على Ubuntu 24.04: حُفظ README.md في التطبيق، وأُودع عمل Maya أصليًا بوصفه تهيئة زميل، وفُتحت عروض السجل والمساءلة (blame) في التطبيق؛ أما حالة ما قبل وقراءات blame ففي الطرفية. لم يُشغَّل شيء على macOS أو Windows، وUbuntu هو نظام Linux الوحيد المسجَّل. الحد الأدنى المقروء لـ GitTree هو Git 2.39.0.

يطلب GitTree تسجيل الدخول، ثم تشمل الخطة المجانية كل خطوات الدرس. لا مزوّد أو Pro أو اعتماد API أو خدمة إنترنت مطلوبة. الوجهة المحلية المجردة ليست GitLab أو CI. الهويات خيالية example.com؛ لا تنفذ الدرس في مستودع مصدر.

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

الفكرة وأثر الأفعال

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

قد يختلف المؤلف والمُودِع. تتطابق هويتا Maya في إيداعها وLeo في إيداعه عمدًا. الاسم والبريد بيانات لا إثبات ملكية أو أمان.

قد تغير خيارات تجاهل المسافات أو تتبُّع الأسطر المنقولة الإجابة دون تغيير الملفات أو التاريخ. افحص السابق للإيداع المحدد؛ التحديد ليس تبديلًا.

يقدم إيداع README وحده main؛ يغير فحص السجل والنسب والخيارات العرض فقط دون ملفات أو مراجع.

إعداد حالة المشروع المحددة

احفظ README_MAYA على main. تضبط التهيئة هوية الإيداع الواحد عبر -c دون إعداد عام أو تغيير المؤلف وحده. افحص البيانات الفعلية.

مدخلات الملفات كاملة

احفظ في المرحلة المحددة فقط بصيغة UTF-8 وLF وسطر نهائي. لا تلصق أسوار Markdown. ترث الملفات الثابتة نقطة البداية؛ لا تستبدل الأصل بنسخة إعادة منفصلة.

README.md — README_MAYA

الناتج
# 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.

Review changes deliberately and preserve useful work.

في GitTree

لوحة الأوامر: Command+Shift+P (وCtrl+Shift+P على Ubuntu)، ثم الأمر المحدد حرفيًا. أفعال المرجع المسمّى في قائمة صفه، لا اختصار لوحة بلا وسيط.

  1. عرض الملفات (Show Files) ← README.md؛ احفظ README_MAYA كاملًا وراجع السطر المضاف.
  2. أودِع السطر بالطرفية بهوية Maya المحددة، كتجهيز زميل لا إعادة كتابة للهويات في التطبيق.
  3. مع فتح README.md عبر عرض الملفات (Show Files) ثم README.md يحمل عرض الملف أربع تبويبات: الملف (File) والتغييرات (Changes) ونسب الأسطر (Blame) والسجل (History). اختر السجل (History): يسرد إيداعات هذا الملف وحدها، وإيداع Maya في الأعلى. اختر إيداع Maya.
  4. افحص الفروق والهوية وتنقل بأسهم قائمة السجل دون تبديل.
  5. اختر نسب الأسطر (Blame) على README.md. يقرأ الرأس «نسب الأسطر (Blame) @» ومعرّف إيداع مختصرًا، وتُجمَّع الأسطر بحسب الإيداع؛ انقر السطر المضاف لتظهر هوية Maya وملخّصها الحقيقيان.
  6. افتح index.html واختر نسب الأسطر وافحص نسب تذييله إلى Leo.
  7. تجاهُل تغييرات المسافات البيضاء (Ignore whitespace changes) وتتبُّع الأسطر المنقولة (Follow moved lines) خياران لعرض blame. انقر مجموعة إيداع واختر نسب الأسطر قبل هذا الإيداع (Blame before this commit) لرؤية blame كما كان، ثم العودة إلى نسب الأسطر الأحدث (Back to the later blame).
  8. العودة إلى الرسم البياني (Back to Graph) ثم الانتقال إلى HEAD (Jump to HEAD؛ وCtrl+Shift+H على Ubuntu)؛ أثبت خلو main وثبات طرفه بعد الفحص.

لكل إيداع عادي: الملخّص (Summary) بالملخّص المحدد والوصف (Description) خالٍ؛ خيارات تعديل الإيداع الأخير (Amend Previous Commit) وتخطّي الخطّافات (Skip Hooks) وإضافة Signed-off-by (Add Signed-off-by) ومؤلف مختلف (Different Author) والدفع بعد الإيداع (Push After Commit) والسماح بإيداع فارغ (Allow Empty Commit) معطلة ودون مؤلفين مشاركين. جهّز الملفات المحددة ثم زر الإيداع ذي العدد الصحيح مرة واحدة، أو Command+Enter كبديل. درس التعديل الأخير وحده يغير خياره الصريح.

في الطرفية

بعد حفظ README_MAYA:

الأمر · bash
git add -- README.md
git -c user.name="Maya Chen" -c user.email=maya@example.com commit --quiet -m "docs: explain deliberate review"
git log -1 --format='%an <%ae>%n%cn <%ce>' -- README.md
git blame --line-porcelain -- README.md
git blame --line-porcelain -- index.html
git status --short

ينجح الإيداع. يشمل خرج الهوية الحقيقي:

الناتج
Maya Chen <maya@example.com>
Maya Chen <maya@example.com>

يحتوي خرج النسب الكامل SHAs وأوقاتًا فعلية متغيرة وسجلات لكل سطر. سجل السطر الجديد يحمل author Maya Chen وauthor-mail <maya@example.com> وملخّص المراجعة ثم نص السطر بعد Tab. يشير سجل التذييل إلى Leo وإيداع تذكيره؛ لا تنسب كل أسطر HTML لهوية واحدة. الحالة خالية.

بدائل قراءة فقط:

الأمر · bash
git log --follow --format='%s' -- README.md
git blame -w -- README.md
git blame -M -- README.md

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

النتيجة

حيث تنتهي: أودِع سطر Maya في README على main بملخّصه؛ ينسب السطر إليها والتذييل إلى Leo، ويترك الفحص HEAD والعمل دون تعديل.

أخطاء شائعة

  • اعتبار نسب الأسطر تقييمًا للوم.
  • افتراض تطابق المؤلف والمُودِع دائمًا.
  • التبديل إلى الإيداع لمجرد فحص السطر.

إن حدث خطأ

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

اختبر فهمك

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

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

    ما سؤال نسب الأسطر؟

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

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

    أي الفروق مهمة؟

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

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

    حدد نسخة ملف قديمة: HEAD؟

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

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

    غيّر الاستعلام لتجاهل المسافات: البايتات؟

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

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

    نتيجة نسب مختلفة: ماذا تفحص؟

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

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

    ما دليل النتيجة؟

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

0 من 6 صحيحة

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

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

تدريب

أثبت نسب السطر إلى Maya والتذييل إلى Leo. افحص -w للقراءة واشرح أن تطابق النتيجة هنا لا يلغي فائدة الخيار.

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

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

خلاصة

  • يجيب السجل والنسب عن سؤالين مختلفين.
  • الهوية ليست ثقة.
  • الفحص لا يحرك HEAD.

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

نسب الأسطر (Blame) — نسب الأسطر; file history — سجل الملف; author — المؤلف; committer — المُودِع.

نص الفيديو

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

اعرض النص
  1. ابدأ من نقطة الحالة المحددة.
  2. سمِّ الفرع ونسخة الفهرس ونسخة العمل.
  3. أعدّ نسخة الدورة المعزولة وحدها.
  4. احفظ وثيقة المراجعة كاملة.
  5. سجّل هوية الزميل الخيالية صراحةً.
  6. يتبع سجل الملف المسار المختار.
  7. افحص الهوية دون تبديل إلى الإيداع.
  8. اقرأ النسب الفعلي للسطر المضاف.
  9. افحص تذييل Leo مستقلًا.
  10. قد تغيّر خيارات العرض سؤال النسب.
  11. عد دون تغيير الفرع.
  12. ما سؤال نسب الأسطر؟
  13. النسب استعلام تاريخ لا حكم اجتماعي.
  14. أي الفروق مهمة؟
  15. تحدد البيانات والنسخة المستعلَم عنها الدليل.
  16. حدد نسخة ملف قديمة: HEAD؟
  17. يحدد الفحص عرضًا لا تبديلًا.
  18. غيّر الاستعلام لتجاهل المسافات: البايتات؟
  19. يغير الخيار حساب النسب لا المحتوى.
  20. نتيجة نسب مختلفة: ماذا تفحص؟
  21. قد تعطي مدخلات الاستعلام المختلفة نسبًا مختلفًا.
  22. ما دليل النتيجة؟
  23. افحص السطر وحالة المستودع مستقلين.
  24. تحقّق من النتيجة الفعلية، لا رسالة وحدها.
  25. توقّع نتيجة المُدخل المختلف قبل الفعل.
  26. احتفظ بالعمل المفيد قبل الاستعادة.
  27. أثبت نقطة الحالة قبل المتابعة.
  28. احتفظ بالنتيجة المتحققة للخطوة التالية.