كيفية فحص تاريخ المشروع باستخدام Git Log

كيفية فحص تاريخ المشروع باستخدام Git Log

يعد تاريخ المشروع أحد أهم الخدمات الأساسية التي تقدمها Git. نظرًا لأن Git يتتبع جميع التغييرات التي تم إجراؤها على الملفات داخل المستودع ، فيمكنه تقديم ميزات تسجيل قوية للغاية. يمكنك الاستعلام عن محفوظات المشروع بعدة طرق مختلفة ويمكنك استخراج البيانات المتنوعة وعرضها باستخدام أمر واحد مرن.





ال سجل بوابة الأمر ضخم ، وهو الأكبر في أي أمر Git عادي. يبلغ طول دليله أكثر من 2500 سطر. لحسن الحظ، سجل بوابة يوفر الكثير من أكثر سلوكياته فائدة من خلال عدد قليل من الخيارات الرئيسية.





التسجيل الأساسي مع السلوك الافتراضي

بشكل افتراضي، سجل بوابة يعرض قائمة ارتباطات ذات ترتيب زمني عكسي. يشتمل كل التزام على رسالة التجزئة والمؤلف والتاريخ والالتزام:





يستخدم الأمر جهاز استدعاء (على سبيل المثال ، أقل ، أكثر) لإظهار الإخراج الكامل حتى تتمكن من التنقل بسهولة في النتائج. يمكنك تكوين Git لاستخدام برنامج من اختيارك ، مثل معظم أجهزة النداء.

إليك بعض مخرجات سجل git من مستودع كود المصدر git بحد ذاتها:



commit 670b81a890388c60b7032a4f5b879f2ece8c4558 (HEAD -> master, origin/next,
origin/master, origin/HEAD)
Author: Junio C Hamano
Date: Mon Jun 14 13:23:28 2021 +0900
The second batch
Signed-off-by: Junio C Hamano

تبدأ النتيجة بتجزئة الالتزام ( 670 ...) متبوعة بقائمة الفروع التي تشير حاليًا إلى هذا الالتزام ( رأس -> سيد ، إلخ.)

كيفية تنزيل مقاطع فيديو youtube مجانًا

يصف السطر التالي مؤلف هذا الالتزام ، مع ذكر اسمه وعنوان بريده الإلكتروني.





يتبع التاريخ والوقت الكامل للالتزام في السطر التالي.

أخيرًا ، تظهر المحتويات الكاملة لرسالة الالتزام. يمكنك التحكم في معظم الأشياء الأخرى التي يقدمها سجل git من خلال خيارات سطر الأوامر. هناك نوعان رئيسيان من الخيارات:





  • التنسيق ، الذي يحدد كيفية عرض Git لكل التزام.
  • التصفية ، والتي تحدد ما يرتكب سجل بوابة يشمل.

بالإضافة إلى خيارات سطر الأوامر ، يقبل git log الوسائط التي تحدد الملفات أو الالتزامات أو الفروع أو أنواع المراجع الأخرى. هذه تطبق مزيد من التصفية.

تنسيق إخراج سجل بوابة

واحدة من أبسط التعديلات هي --خط واحد الخيار الذي ينتج مخرجات موجزة للغاية:

git log --oneline

يحتوي كل سطر في السجل الآن فقط على تجزئة التزام مختصرة وموضوع رسالة الالتزام. هذه طريقة ممتازة للحصول على لمحة عامة عن الالتزامات الأخيرة بالمشروع:

لسوء الحظ ، مع عدم وجود سياق آخر ، فإن هذه المعلومات ليست مفيدة دائمًا. قد يمنحك إحساسًا غامضًا بالمشروع ، لكنه يفتقر إلى التواريخ والمعلومات المفيدة الأخرى حول المؤلفين والملفات.

عرض الرسم البياني للفرع

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

git log --oneline --graph

متعلق ب: كيفية إنشاء فرع جديد في Git

إخراج جميل مخصص

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

كيفية تغيير رمز ملف windows 10
git log --pretty=short

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

git log --pretty=oneline

يعادل سجل بوابة الإنترنت .

git log --pretty=fuller

يتضمن الكثير من التفاصيل. حتى أنه يفصل بين المؤلف والمتعهد اللذين قد يكونان ، من الناحية النظرية ، أشخاصًا مختلفين:

مع ال صيغة: متغير ، يمكنك توفير سلسلة تحتوي على أي محتوى تريده ، بما في ذلك العناصر النائبة التي يتم استبدالها ببيانات مختلفة. فيما يلي بعض الأمثلة على العناصر النائبة:

  • ٪ ح ارتكاب التجزئة
  • ٪ ح التزام التجزئة المختصرة
  • ٪إلى تاريخ المؤلف
  • ٪مع تاريخ المؤلف ، نسبي
  • ٪س ارتكاب موضوع الرسالة
  • ٪ ب ارتكاب نص الرسالة
  • ٪ ص تجزئات أصل مختصرة

يمكنك إضافة أحرف ثابتة إلى الإخراج وتلوينها. يوضح هذا المثال أيضًا تباينًا في تنسيق التاريخ:

git log --pretty=format:'%C(auto) %h [%ad] %s' --date=short

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

عرض الاختلافات في السجل

من التفاصيل المهمة عند النظر إلى تاريخ المستودع الاختلافات نفسها. إنها تمثل ما تم تغييره بالفعل في الشفرة ، بعد كل شيء! بالنسبة للمبتدئين ، يمكنك الحصول على ملخص بالتغييرات جنبًا إلى جنب مع كل استخدام - shortstat :

git log --shortstat

هذا يضيف سطرًا مثل:

1 file changed, 48 insertions(+), 2 deletions(-)

إلى أسفل كل التزام. سترى غالبًا هذا النوع من الملخص - عبر الصفحات على GitHub ، على سبيل المثال - وهي طريقة مفيدة للحكم بسرعة على نطاق التزام معين. لمزيد من المعلومات التفصيلية ، يمكنك تضمين إخراج التصحيح الكامل (فرق) باستخدام امتداد -p علم:

git log -p

تصفية مخرجات سجل بوابة

مهما كان التنسيق الذي تقوم بتطبيقه ، ستظل ترى السجل الكامل لجميع عمليات التنفيذ في الفرع الحالي. على الرغم من أن Git يقسمها إلى صفحات ، إلا أنه لا يزال من الممكن أن يكون هناك الكثير من المخرجات. تسمح لك الخيارات التالية بتخصيص الالتزامات التي يتضمنها السجل.

التقييد بالمبلغ

إذا كنت تريد فقط قص النتائج لإظهار الالتزامات القليلة الأخيرة ، فاستخدم -[عدد] بناء الجملة:

git log -2

التقييد حسب التاريخ

لتقييد مجموعة الالتزامات بنطاق زمني معين ، استخدم --حيث ( --بعد، بعدما ) و --حتى ( --قبل ) والخيارات. يأخذ كل منها تاريخًا بتنسيق ISO 8601. يمكنك استخدام أي منهما --حيث أو --حتى من تلقاء نفسها ، أو كليهما معًا لتحديد نطاق. الخيارات --بعد، بعدما و --قبل هي مرادفات.

git log --since='2021-01-01' --until='2021-05-01'

التقييد بالملف

يمكن أن يركز سجل Git على ملف معين بدلاً من كل ملف في المستودع الخاص بك. يعد هذا أمرًا رائعًا لمساعدتك في معرفة كيفية تغير ملف معين بمرور الوقت. ما عليك سوى إلحاق اسم الملف بنهاية أمر git:

git log filename

سترى فقط تلك الالتزامات التي تأثرت اسم الملف .

الاختلافات بين الفروع

قد يكون لديك بعض المتطلبات الفريدة عند عرض سجل الفرع. على سبيل المثال ، بدلاً من مشاهدة السجل بالكامل ، قد ترغب فقط في معرفة ما تم تغييره في هذا الفرع المحدد. يمكن أن يساعد سجل Git عبر ملف المرجع 1..ref2 بناء الجملة. هناك ثلاث طرق مختلفة قليلاً يمكنك استخدامها:

  1. عرض الالتزامات الرئيسية ، ولكن ليس الفرع: git log --oneline origin/branch..origin/main
  2. عرض الالتزامات الموجودة في الفرع ، ولكن ليس الرئيسي: git log --oneline origin/ main ..origin/ branch
  3. عرض الالتزامات الموجودة فقط في الفرع أو الرئيسي: git log --oneline origin/branch ... origin/main

الاختلافات بين علامتين

تمامًا كما يمكنك عرض المحفوظات بين الفروع باستخدام ملف المرجع 1..ref2 بناء الجملة ، يمكنك أيضًا عرض المحفوظات بين العلامات بنفس الطريقة. بعد كل شيء ، كل من العلامات والفروع هي أنواع مرجعية.

git log --abbrev-commit --pretty=format:'%h %ar %s' v2.32.0-rc3..v2.32.0

إذا كنت تقوم بإعداد ملاحظات الإصدار لمشروع أكبر ، بوابة الاختصار يجب أن يكون أول منفذ للاتصال. ينتج قائمة المؤلفين مع مواضيع الالتزام بجانبهم. يمكنك تمرير نطاق مرجعي له لتقييد السجل بطريقة مشابهة لـ git log:

git shortlog v2.32.0-rc3..v2.32.0

ال أمر git show هو أكثر تنوعًا من سجل بوابة . يمكن أن يعمل مع العلامات وأنواع أخرى من كائنات git خارج سجل الالتزام. تشترك في العديد من الخيارات مع سجل بوابة ، ولكنك ستحتاج إليها حقًا فقط إذا كنت بحاجة إلى البحث في التفاصيل ذات المستوى الأدنى.

مراجعة الماضي باستخدام Git Log

يعد Git log أمرًا معقدًا ، ولكن يمكنك الاستفادة كثيرًا من خياراته الأساسية. يعد تصفح سجل المستودع طريقة ممتازة لفهم عدد المرات التي تحدث فيها التغييرات وعدد الأشخاص الذين يقومون بها. بمجرد أن يكون لديك فهم جيد لتاريخ المشروع ، ستكون في وضع رائع للمساهمة فيه بنفسك.

الفرق بين شاشة التلفزيون والكمبيوتر
يشارك يشارك سقسقة بريد الالكتروني انضم إلى اتجاه الترميز الاجتماعي وساهم في مستودعات GitHub

هل تريد تمرين عضلات الترميز الخاصة بك والمساعدة في مشاريع مفتوحة المصدر؟ إليك كيفية المساهمة في GitHub.

اقرأ التالي
مواضيع ذات صلة
  • برمجة
  • جيثب
  • نصائح الترميز
نبذة عن الكاتب بوبي جاك(تم نشر 58 مقالة)

بوبي متحمس للتكنولوجيا وعمل كمطور برمجيات لأكثر من عقدين من الزمن. إنه شغوف بالألعاب ، ويعمل كمحرر المراجعات في مجلة Switch Player ، ومنغمس في جميع جوانب النشر عبر الإنترنت وتطوير الويب.

المزيد من Bobby Jack

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

انقر هنا للاشتراك