ميزة نظام التحكم في الإصدار هو أنه يسجل التغييرات. تسمح لنا هذه السجلات باسترداد البيانات مثل الالتزامات واكتشاف الأخطاء والتحديثات. لكن كل هذا التاريخ سيكون عديم الفائدة إذا لم نتمكن من الإبحار فيه. في هذه المرحلة، نحتاج إلى أمر git log.
يعد Git log أداة مساعدة لمراجعة وقراءة سجل كل ما يحدث للمستودع. يمكن استخدام خيارات متعددة مع سجل git لجعل السجل أكثر تحديدًا.
بشكل عام، سجل git هو سجل الالتزامات. يحتوي سجل git على البيانات التالية:
كيفية الخروج من أمر سجل git؟
قد يحدث موقف ما، حيث تقوم بتشغيل أمر git log، وتظل عالقًا هناك. تريد الكتابة أو العودة إلى bash، لكن لا يمكنك ذلك. عند النقر فوق يدخل سينقلك إلى الأمر الأقدم حتى علامة النهاية.
الحل لهذه المشكلة هو يضعط ال ف (س للإقلاع عن التدخين) . سوف يخرجك من الموقف ويعيدك إلى سطر الأوامر. الآن يمكنك تنفيذ أي من الأوامر.
سجل جيت الأساسي
يعد أمر Git log أحد أكثر أوامر git شيوعًا. إنه الأمر الأكثر فائدة لـ Git. في كل مرة تحتاج فيها إلى التحقق من السجل، عليك استخدام أمر git log. سيعرض أمر git log الأساسي أحدث الالتزامات وحالة الرأس. سيتم استخدامه كـ:
$ git log
سيعرض الأمر أعلاه الالتزامات الأخيرة. النظر في الإخراج أدناه:
يسرد الأمر أعلاه كافة الالتزامات الأخيرة. يحتوي كل التزام على معرف sha-id الفريد الذي يتم إنشاؤه بواسطة خوارزمية SHA. ويتضمن أيضًا التاريخ والوقت والمؤلف وبعض التفاصيل الإضافية.
يمكننا تنفيذ بعض الإجراءات مثل التمرير والقفز والتحرك والإنهاء في سطر الأوامر. للتمرير في سطر الأوامر، اضغط على k للانتقال لأعلى، وj للانتقال لأسفل، ومفتاح المسافة للتمرير لأسفل بمقدار صفحة كاملة للتمرير لأعلى بمقدار صفحة، وq للخروج من سطر الأوامر.
<جيت سجل على الانترنت
يتم استخدام خيار الخط المباشر لعرض الإخراج كالتزام واحد لكل سطر. كما يعرض أيضًا الإخراج باختصار مثل الأحرف السبعة الأولى من التزام SHA ورسالة الالتزام.
سيتم استخدامه على النحو التالي:
$ git log --oneline
لذلك، عادةً يمكننا القول أن علامة --oneline تؤدي إلى عرض سجل git:
- التزام واحد في كل سطر
- الأحرف السبعة الأولى من SHA
- رسالة الالتزام
النظر في الإخراج أدناه:
كما يمكننا أن نرى بشكل أكثر دقة من الناتج أعلاه، يتم تقديم كل التزام في سطر واحد فقط مع رقم شا مكون من سبعة أرقام ورسالة التزام.
إحصائيات سجل جيت
يعرض أمر السجل الملفات التي تم تعديلها. ويعرض أيضًا عدد الأسطر وسطر ملخص لإجمالي السجلات التي تم تحديثها.
بشكل عام، يمكننا القول أنه يتم استخدام خيار stat للعرض
هندسة جافا
- الملفات المعدلة،
- عدد الأسطر التي تمت إضافتها أو إزالتها
- تم تغيير سطر ملخص لإجمالي عدد السجلات
- الأسطر التي تمت إضافتها أو إزالتها.
سيتم استخدامه على النحو التالي:
$ git log --stat
سيعرض الأمر أعلاه الملفات التي تم تعديلها. النظر في الإخراج أدناه:
من الناتج أعلاه، يمكننا أن نرى أن جميع الالتزامات المدرجة هي تعديلات في المستودع.
جيت سجل P أو التصحيح
يعرض أمر git log patch الملفات التي تم تعديلها. كما يعرض أيضًا موقع الخطوط المضافة والمحذوفة والمحدثة.
سيتم استخدامه على النحو التالي:
$ git log --patch
أو
$ git log -p
بشكل عام، يمكننا القول أن علامة --patch تُستخدم لعرض:
- الملفات المعدلة
- موقع الخطوط التي قمت بإضافتها أو إزالتها
- التغييرات المحددة التي تم إجراؤها.
النظر في الإخراج أدناه:
يعرض الإخراج أعلاه الملفات المعدلة مع موقع الأسطر التي تمت إضافتها أو إزالتها.
الرسم البياني لسجل جيت
يسمح أمر Git log بعرض سجل git الخاص بك كرسم بياني. لسرد الالتزامات في شكل رسم بياني، قم بتشغيل أمر git log باستخدام خيار --graph. سيتم تشغيله على النحو التالي:
$ git log --graph
لجعل الإخراج أكثر تحديدًا، يمكنك دمج هذا الأمر مع خيار --oneline. وسوف تعمل على النحو التالي:
$ git log --graph --oneline
تصفية سجل الالتزام
يمكننا تصفية الإخراج وفقًا لاحتياجاتنا. إنها ميزة فريدة لـ Git. يمكننا تطبيق العديد من المرشحات مثل المبلغ والتاريخ والمؤلف والمزيد على الإخراج. كل مرشح له مواصفاته. ويمكن استخدامها لتنفيذ بعض عمليات التنقل على الإخراج.
دعونا نفهم كل من هذه المرشحات بالتفصيل.
حسب المبلغ:
يمكننا تحديد عدد التزامات الإخراج باستخدام أمر git log. هذا هو الأمر الأكثر تحديدا. سيزيل هذا الأمر التعقيد إذا كنت مهتمًا بعدد أقل من الالتزامات.
للحد من مخرجات سجل git، بما في ذلك الخيار -. إذا أردنا الالتزام الثلاثة الأخيرة فقط، فيمكننا تمرير الوسيطة -3 في أمر git log. النظر في الإخراج أدناه:
كما نرى من الناتج أعلاه، يمكننا الحد من إخراج سجل git.
جافا سكريبت الأقرب
حسب التاريخ والوقت:
يمكننا تصفية الإخراج حسب التاريخ والوقت. علينا أن نمر --بعد أو -قبل وسيطة لتحديد التاريخ. تقبل هاتان الوسيطتان مجموعة متنوعة من تنسيقات التاريخ. سيتم تشغيله على النحو التالي:
$ git log --after='yy-mm-dd'
سيعرض الأمر أعلاه جميع الالتزامات التي تم إجراؤها بعد التاريخ المحدد. النظر في الإخراج أدناه:
يسرد الأمر أعلاه جميع الالتزامات بعد '2019-11-01'.
يمكننا أيضًا تمرير البيان المرجعي القابل للتطبيق مثل 'أمس' و'منذ أسبوع واحد' و'منذ 21 يومًا' والمزيد. سيتم تشغيله على النحو التالي:
git log --after='21 days ago'
سيعرض الأمر أعلاه الالتزامات التي تم إجراؤها قبل 21 يومًا. النظر في الإخراج أدناه:
يمكننا أيضًا تتبع الالتزامات بين تاريخين. لتتبع الالتزامات التي تم إنشاؤها بين تاريخين، قم بتمرير مرجع البيان --قبل و --بعد التاريخ. لنفترض أننا نريد تتبع الالتزامات بين '2019-11-01' و'2019-11-08'. سنقوم بتشغيل الأمر على النحو التالي:
$ git log --after='2019-11-01' --before='2019-11-08 '
سيعرض الأمر أعلاه الالتزامات التي تم إجراؤها بين التواريخ. النظر في الإخراج أدناه:
يعرض الإخراج أعلاه الالتزامات بين الفترة المحددة. يمكننا استخدام --since و --until بدلاً من --after و --before. لأنهما مترادفان على التوالي.
بواسطة المؤلف:
يمكننا تصفية الالتزامات من قبل مستخدم معين. لنفترض أننا نريد إدراج الالتزامات التي قام بها عضو معين في الفريق فقط. يمكننا استخدام علامة -author لتصفية الالتزامات حسب اسم المؤلف. يأخذ هذا الأمر تعبيرًا عاديًا ويعيد قائمة الالتزامات التي أجراها المؤلفون والتي تطابق هذا النمط. يمكنك استخدام الاسم الدقيق بدلاً من النمط. سيتم تشغيل هذا الأمر على النحو التالي:
$ git log --author='Author name'
سيعرض الأمر أعلاه جميع الالتزامات التي قام بها المؤلف المحدد. النظر في الإخراج أدناه:
من الناتج أعلاه، يمكننا أن نرى أن جميع الالتزامات من قبل المؤلف ايم دويفيدي1 مدرجة.
إدخال سلسلة في جافا
يمكننا استخدام سلسلة بدلاً من التعبير العادي أو الاسم الدقيق. النظر في البيان أدناه:
$ git log --author='Stephen'
سيعرض البيان أعلاه جميع الالتزامات التي يتضمن مؤلفها اسم ستيفن. لا يلزم أن يكون اسم المؤلف مطابقًا تمامًا؛ تحتوي فقط على العبارة المحددة.
كما نعلم، فإن البريد الإلكتروني للمؤلف مرتبط أيضًا باسم المؤلف، حتى نتمكن من استخدام البريد الإلكتروني للمؤلف كنموذج أو بحث دقيق. لنفترض أننا نريد تتبع التزامات المؤلفين الذين تكون خدمة البريد الإلكتروني الخاصة بهم هي google. للقيام بذلك، يمكننا استخدام أحرف البدل كـ '@gmail.com'. خذ بعين الاعتبار البيان أدناه:
$ git log -author='@gmail.com'
سيعرض الأمر أعلاه التزامات المؤلفين كما هو موضح في النمط. النظر في الإخراج أدناه:
عن طريق رسالة الالتزام:
لتصفية الالتزامات حسب رسالة الالتزام. يمكننا استخدام خيار grep، وسيعمل كخيار المؤلف.
سيتم تشغيله على النحو التالي:
$ git log --grep=' Commit message.'
يمكننا استخدام النموذج القصير لرسالة الالتزام بدلاً من الرسالة الكاملة. النظر في الإخراج أدناه.
يعرض الإخراج أعلاه كافة الالتزامات التي تحتوي على كلمة الالتزام في رسالة الالتزام الخاصة بها.
هناك العديد من خيارات التصفية الأخرى المتاحة مثل أنه يمكننا التصفية حسب اسم الملف والمحتوى والمزيد.