كيفية الحصول على قائمة بالالتزامات لمستخدم معين في أي فرع للعديد من المشاريع في git؟

أعمل في فروع متعددة من عدة مشاريع git. أرغب في الحصول على قائمة بالالتزامات الخاصة بي لتاريخ محدد ، في جميع هذه المشاريع والفروع (لأغراض الجداول الزمنية).

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

0

2 إجابة

للحصول على repo واحد:

git log --all --after=" 00:00" --before=" 23:59" --author=""

can be in any common format. is case sensitive, and also checks the email address.

ملحوظة:

هذا ينظر إلى تاريخ المقاول (عندما تم تطبيق هذا الالتزام على هذا المستودع/الفرع) ، وليس تاريخ المؤلف (متى تم الالتزام بهذا المحتوى لأول مرة). هذا أمر مهم إذا كان لديك rebased و/أو اختيار الكرز. لا يبدو أن هناك وظيفة مكافئة لتاريخ المؤلف.

تصحيح:

للحصول على هذا السجل لمجموعة من المستودعات ، يمكنك تشغيل:

for dir in repo1 repo2 ... repo_n; do
    git --no-pager --git-dir="$dir/.git" log --all \
        --after=" 00:00" \
        --before=" 23:59" \
        --author=""
      && echo  # to add a blank line between logs
done
6
وأضاف
للحصول على نص برمجي للحصول على ملفات حسب تاريخ المؤلف ، انظر الإجابة المقبولة هنا: stackoverflow.com/q/37325709/281545
وأضاف المؤلف Mr_and_Mrs_D, مصدر

للعمل مع مستودعات متعددة ، يمكنك استخدام mr .

حدد إجراءً مخصصًا في .mrconfig ، على سبيل المثال.

[DEFAULT]
git_daylog = git log --branches --after="$* 00:00" --before="$* 24:00" --author="$(git config user.email)"

[gitrepos/my_blog_app]

[path_to_another_project_from_home]

...

وستتمكن من قول mr daylog 26 يونيو والحصول على السجلات الخاصة بك لجميع المستودعات المسجلة مع السيد تحت الدليل الحالي الخاص بك.

1
وأضاف
هذا بالضبط ما كنت أبحث عنه ، شكرا! PS: أخذت الحرية لتعزيز المثال الخاص بك من. mrconfig
وأضاف المؤلف Lukas Stejskal, مصدر