كيف تستخدم Git Log لتنسيق سجل الالتزام؟



Git هي أداة تساعد في تنظيم وإدارة الكود المصدري لتطبيقاتك. تعرف على كل شيء عن الأمر git log format history وكيفية استخدامه.

في هذه المقالة ، سنناقش بعض الخيارات المتقدمة لتنسيق وطباعة سجلات التنفيذ لجلب المعلومات التي تحتاجها من سجل دفتر اليومية لمشروعك. بما أننا نعلم بالفعل ، تحتفظ بدفتر يومية للتغييرات التي تم الالتزام بها في سجل المشروع ، سنستكشف الآن المزيد من الطرق التي يساعد بها الأمر 'git log'.

أولاً ، أقوم بالتبديل إلى / التحقق من فرع 'feature1' للحصول على سجل مناسب وأقصر.
استخدم الأوامر -





$سي دي myProj- قم بالتبديل إلى مشروع git

$ميزة بوابة الخروج 1- انتقل إلى فرع 'feature1'



1. الالتزام بالتنسيق

1.1 طباعة جميلة لمحتويات الإخراج بتنسيق معين

بناء الجملة: سجل بوابة - جميل [=]

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

1.1.1 - جميل = متصل

سجل تنفيذ بريتي برينت في 'سطر واحد'
أمر: سجل بوابة - جميل = متصل
ينسق الإخراج بالتسلسل:




الالتزام - سجل تنسيق سجل Git - Edureka

1.1.2 –جميلة = قصير

تنسيق الالتزام الناتج 'قصير' بالتنسيق:
الالتزام (refname)
مؤلف:



1.1.3 –متوسط

أمر: سجل بوابة - جميل = متوسط
طباعة إخراج الالتزام بتنسيق 'متوسط':
ارتكب
مؤلف :
تاريخ:


1.1.4 - جميلة = ممتلئة

أمر: سجل بوابة - جميل = ممتلئ
الإخراج في شكل:
الالتزام (refname)
مؤلف:
ارتكب:


1.1.5 –جميلة = أكمل

أمر: سجل بوابة - جميل = أكمل
الالتزام (refname)
مؤلف:
تاريخ المؤلف :
ارتكب:
تاريخ ارتكاب:


1.1.6 –جميلة = بريد إلكتروني

أمر: سجل بوابة - جميلة = البريد الإلكتروني
إخراج سجل الطباعة بتنسيق نمط البريد الإلكتروني:
من عند
من عند:
تاريخ:
موضوع: [رقعة قماشية]


1.1.7 –جميلة = خام

أمر: سجل بوابة - جميل = خام
يُظهر تنسيق إخراج السجل الأولي الالتزام بالكامل كما تم تخزينه في كائن الالتزام.
ارتكب
شجرة
الأبوين
مؤلف
ارتكب

1.1.8 –التنسيق: تنسيق مخصص

يسمح لك التنسيق بتحديد أي معلومات من كائن الالتزام تريد طباعتها في سجل إخراج التنفيذ
دعونا نفكر في العنصر النائب المتنوع الذي يوفره هذا الخيار تمامًا مثل وظيفة 'C printf' بمساعدة مقتطفات التعليمات البرمجية:

أمر: سجل git - جميل = التنسيق: '٪ h٪ ad | ٪ s٪ d [٪ an] '- التاريخ = قصير
تنسيق الإخراج:
| [اسم المؤلف]

٪ ح = معرفات التجزئة المختصرة / معرفات sha1commit
٪ ح = هويات طويلة sha-1
٪إلى = تاريخ التأليف
٪س = الالتزام سطر عنوان الموضوع
٪د = مؤشر مرجعي (فرع ، علامة) أسماء
٪ أ = اسم المؤلف
-تاريخ = short: اطبع التاريخ فقط وليس الوقت بتنسيق يمكن قراءته

الآن ، ماذا عن جعل هذا الإخراج أكثر ملاءمة للإنسان ، باستخدام الألوان.
أمر:
سجل git - جميل = التنسيق: '٪ C (أصفر)٪ h٪ Creset٪ ad | ٪ Cgreen٪ s٪ Creset٪ Cred٪ d٪ Creset٪ Cblue [٪ an] '- التاريخ = قصير


بعض العناصر النائبة الأخرى المستخدمة في مقتطف الشفرة أعلاه هي:
٪ C (أصفر) : لف الخيط التالي إلى اللون الأصفر
٪ كريسيت : أعد تعيين السلسلة التالية إلى اللون الافتراضي (الأبيض)
٪ Cgreen : قم بتغيير السلسلة التالية إلى اللون الأخضر
٪أعتقد: قم بتغيير السلسلة التالية إلى اللون الأحمر
٪ كبلو: اجعل اسم المؤلف أزرق اللون

لا يتعين عليك تذكر وكتابة الأمر بأكمله في كل مرة ، فقط استخدم اسمًا قصيرًا مثل الاسم المستعار git كما هو مبين أدناه:
أمر:
git config - global alias.c-hist 'السجل - جميل = التنسيق:'٪ C (أصفر)٪ h٪ Creset٪ ad | ٪ Cgreen٪ s٪ Creset٪ Cred٪ d٪ Creset٪ Cblue [٪ an] '--date = short'

'ج-اصمت' يمثل ج مخصص- اصمت أوري
لذا ، كما لاحظت ، أنا أضع عالميًا تكوين بوابة ملف مع القيم.

لوحة مزج البيانات لا يعمل

الآن ، للتحقق من تاريخ الفرع الحالي ، كل ما عليك فعله هو تشغيل الأمر ، مثل:
أمر: اذهب ج اصمت

1.2 –abbrev-الالتزام: تقصير git الالتزام بمعرف التجزئة

أمر: سجل بوابة - abbrev-الالتزام
يتم اختصار اسم كائن الالتزام السداسي عشري الكامل المكون من 40 بايت إلى 7 بايت الافتراضي.


دعونا نجمعها مع--خط واحد'خيار للحصول على عرض مناسب ، مثل:
أمر: سجل بوابة - abbrev-الالتزام - على الإنترنت

الأمر الأكثر إثارة هو أنه يمكنك أيضًا تحديد طول بايت لمعرفات sha-1 باستخدام الخيار '–abbrev =' ، كما هو موضح أدناه:
أمر: سجل بوابة --abbrev-الالتزام - abbrev = 5 - على الإنترنت



بوضوح ، يتم تقليل معرفات sha-1 المميزة إلى حجم 5 بايت.

1.3 –لا اختصار- الالتزام

إظهار اسم كائن الالتزام السداسي عشري الكامل 40 بايت.
هذا ينفي –abbrev-الالتزام وتلك الخيارات التي تعني
مثل '–oneline'.
أمر: سجل بوابة - جميل = متصل - لا يوجد اختصار - الالتزام



1.4 - نسبي التاريخ

أمر: سجل بوابة - نسبي التاريخ

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

1.5 –تاريخ =

يمكنك أيضًا تنسيق تاريخ سجلات التنفيذ بأي من خيارات التنسيق التالية:

1.5.1 –تاريخ = نسبي

أمر :سجل بوابة - تاريخ = نسبي
هذا مرادف للأمر أعلاه 'سجل بوابة - نسبي التاريخ'ويطبع نفس الالتزامات.

1.5.2 –date = محلي

أمر : سجل بوابة - تاريخ = محلي

1.5.3 –date = iso

أمر: سجل بوابة - تاريخ = iso

1.5.4 –date = iso-strict

أمر: سجل بوابة - تاريخ = iso-صارمة

1.5.5 –date = rfc

أمر: سجل بوابة - تاريخ = rfc

1.5.6 –تاريخ = قصير

أمر: سجل بوابة - تاريخ = قصير

1.5.7 –date = خام (يظهر التاريخ بالثواني)

أمر: سجل بوابة - تاريخ = خام
اطبع الوقت بالثواني منذ ملف يونيكس إبوك الوقت (يناير 01 1970) متبوعًا بالمنطقة الزمنية.

1.5.8 - التاريخ = الإنسان

أمر: سجل بوابة - التاريخ = الإنسان

1.5.9 –date = unix

يظهر التاريخ بصيغة يونيكس إبوك (UTC) الوقت.
أمر: سجل بوابة - تاريخ = يونكس

1.6 الآباء

اطبع أيضًا والدي كل التزام بالتنسيق:
أمر: سجل بوابة - الآباء
أمر الإخراج Oneliner: سجل بوابة - الآباء - على الإنترنت

النقاط التي يجب ملاحظتها:
C366419 هو التزام دمج ، وبالتالي يكون له والدين على التوالي: feeb30c و 4920adc
بطريقة مماثلة

1d67b50 هو التزام دمج ، نتج عن الدمج f2ff2e4 و abb694b
078f9f5 هو التزام دمج تم إنشاؤه عن طريق الدمج 9a2412e و ab3a5e5
بينما، 86792c6 هو الالتزام الأولي ، وبالتالي لا أحد الوالدين.

1.7 - الأطفال

طباعة أيضا الأطفال في النموذج
أمر: سجل بوابة - الأطفال - على الإنترنت

ملحوظة :
006b9ce هو أحدث التزام ، وبالتالي لا يوجد أطفال يرتكبون كائنًا بعد. سيكون التغيير التالي الذي تقوم به وتلتزم به في هذا الفرع هو كائن الالتزام الفرعي بمعرف sha-1 الأخير.

1.8 الرسم البياني

ارسم تمثيلًا رسوميًا نصيًا لتاريخ الالتزام قبل معرفات sha-1.
أمر: سجل بوابة - رسم
إخراج محسّن: سجل بوابة - رسم - أونلاين


يتيح لك ذلك فهم متى وكيف ولماذا تم دمج الفروع الأخرى في الفرع المعار حاليًا.

1.9 - عرض خطي فاصل

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


قارن الناتج أعلاه بإخراج الأمر 'git log –graph' الذي يوضح بوضوح كيف تم دمج أوامر 'الفاصل الخطي'.

المكافأة: تلخيص إخراج سجل git: 'git shortlog'

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

أمر : بوابة مختصرة سجل -s
-s تعني - الملخص ، قم بإلغاء وصف الالتزام وقم فقط بطباعة عدد الالتزامات التي قام بها كل مؤلف ، مثل:

علاوة على ذلك ، يمكنك أيضًا تنسيق الإخراج باستخدام نفس العناصر النائبة كما تمت مناقشته ضمن '- جميلة = تنسيق' اختيار
جرب الأمر: git shortlog --format = '٪ h | ٪س'

ومن ثم ، يجب أن توافق على أن هذا الإخراج يكون أكثر منطقية لأنه يعرض المعرف وكل مؤلف مع إجمالي عدد عمليات الإيداع.

ملحوظة : من المثير للاهتمام ملاحظة أنه يمكنك بسهولة العثور على الفرع الذي قام بعمل التزام معين. يجدر تناول هذه المناقشة في المقالات القادمة بعمق.

وبذلك نصل إلى نهاية هذاسجل تنسيق سجل Gitبلوق ، أتمنى أن تكون قد وجدت أنها مفيدة.

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

إذا كنت مهتمًا بمعرفة المزيد ، يمكنك التحقق من ذلك من Edureka ، شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250.000 متعلم راضٍ منتشرين في جميع أنحاء العالم تساعد الدورة التدريبية لشهادة Edureka DevOps المتعلمين على فهم ما هو DevOps واكتساب الخبرة في عمليات وأدوات DevOps المختلفة مثل Puppet و Jenkins و Nagios و Ansible و Chef و Saltstack و GIT لأتمتة خطوات متعددة في SDLC.

لديك سؤال لنا؟ يرجى ذكرها في قسم التعليقات في هذه المقالة حول 'سجل تنسيق Git log' وسنقوم بالرد عليك.