5
جولای

نحوه بررسی تاریخچه پروژه با Git Log

یکی از اساسی ترین خدمات ارائه شده توسط Git ، تاریخچه پروژه است. از آنجا که Git کلیه تغییرات پرونده های ایجاد شده در مخزن را ردیابی می کند ، می تواند ویژگی های ثبت بسیار قدرتمندی را ارائه دهد. شما می توانید تاریخچه پروژه را به طرق مختلف جستجو کنید و می توانید داده های مختلف را با یک دستور انعطاف پذیر بازیابی و نمایش دهید.

git دفتر خاطرات دستور بسیار بزرگ است ، بزرگترین از همه دستورات معمولی Git است. طول کتابچه راهنمای آن بیش از 2500 خط است. خوشبختانه ، git دفتر خاطرات تنها با چند گزینه کلیدی بسیاری از کاربردهای مفید خود را فراهم می کند.

ثبت نام اولیه با رفتار پیش فرض

پیش فرض ، git دفتر خاطرات لیست زمانی معکوس تعهدات را نشان می دهد. هر تعامل شامل هش ، نویسنده ، تاریخ و پیام متعهد خود است:

تصویر صفحه ای از ترمینال که خروجی استاندارد git log را نشان می دهد

این دستور برای نمایش خروجی کامل از پیجر (به عنوان مثال کمتر ، بیشتر) استفاده می کند ، بنابراین می توانید به راحتی در نتایج پیمایش کنید. می توانید Git را پیکربندی کنید تا از برنامه ای به دلخواه شما مانند پیجر استفاده کند.

در اینجا چند خروجی git log از خود منبع مخزن کد git آورده شده است:

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

نتیجه با هش مرتکب شروع می شود (670…) ، و به دنبال آن لیستی از شعب موجود در حال اشاره به این تعهدفصل -> استادو غیره.)

سطر بعدی نویسنده این قرارداد را توصیف می کند ، نام و آدرس ایمیل او را نشان می دهد.

تاریخ و زمان کامل اصلاح را در خط بعدی دنبال کنید.

سرانجام ، محتوای کامل پیام متعهد ظاهر می شود. با گزینه های خط فرمان می توانید بیشتر موارد دیگری را که git log ارائه می دهد کنترل کنید. دو نوع گزینه اصلی وجود دارد:

  • قالب بندی ، که نحوه نمایش هر تعهد توسط Git را تعیین می کند.

  • فیلتر کردن تعیین کننده تعهدات git دفتر خاطرات شامل می شود.

علاوه بر گزینه های خط فرمان ، git log آرگومان هایی را که پرونده ها ، اصلاحات ، شاخه ها یا انواع دیگر منابع را مشخص می کند ، می پذیرد. آنها فیلتر اضافی را اعمال می کنند.

خروجی ورود به سیستم Git را قالب بندی کنید

یکی از ساده ترین تنظیمات است –یک خط گزینه ای که بسیار کوتاه نتیجه می دهد:

git log --oneline

هر خط در گزارش اکنون فقط شامل یک هش مرتکب مختصر و موضوع پیام متعهد است. این یک روش عالی برای بررسی اجمالی تعهدات اخیر پروژه است:

عکس صفحه از ترمینال نشان دهنده خروجی git log --oneline

متأسفانه ، بدون زمینه دیگر ، این اطلاعات همیشه چندان مفید نیستند. این ممکن است به شما احساس مبهمی در مورد پروژه بدهد ، اما هیچ تاریخ و اطلاعات مفید دیگری درباره نویسندگان و پرونده ها وجود ندارد.

برنامه شعبه را مشاهده کنید

– گرافی این گزینه به شما امکان می دهد ارتباطات بین شاخه ها را تجسم کنید. این بسیار اساسی است ، اما می تواند به کشف یک داستان پیچیده کمک کند.

git log --oneline --graph

عکس صفحه از ترمینال نمایش خروجی git log - شعبه

مرتبط: نحوه ایجاد شعبه جدید در Git

خروجی زیبا زیبا

با تعیین جزئیات با استفاده از آن ، می توانید قالب بندی پیچیده تری داشته باشید –زیبا گزینه. نحو از خیلی ساده به خیلی پیچیده تر می رسد ، بنابراین برای جزئیات کامل با یک راهنما مشورت کنید.

git log --pretty=short

در اصل همان است git دفتر خاطرات بدون تاریخ یا پیام کامل:

تصویر ترمینال خروجی ورود به سیستم git - زیبا = کوتاه را نشان می دهد

git log --pretty=oneline

برابر است با git log –oneline.

git log --pretty=fuller

شامل بسیاری از جزئیات او حتی نویسنده و متقاضی را که از نظر تئوری می توانند افراد مختلف باشند ، جدا می کند:

تصویر صفحه ای از ترمینال که خروجی git log - زیبا = پرتر را نشان می دهد

ج قالب: گزینه ، شما می توانید رشته ای حاوی هر محتوایی را که می خواهید ، از جمله موارد جایگزین جایگزین شده با داده های مختلف ، ارائه دهید. در اینجا چند نمونه از صندلی های رزرو شده آورده شده است:

  • ٪ H مرتکب هش
  • ٪ ساعت هش رفع مختصر
  • ٪ تبلیغات تاریخ نویسنده
  • ٪ C تاریخ نویسنده ، نسبی
  • ٪ s موضوع پیام را درگیر کنید
  • ٪ b متن پیام را درگیر کنید
  • ٪ پ هش های پدر و مادر کوتاه شده

می توانید نویسه های ثابت را به خروجی اضافه کرده و آن را رنگ آمیزی کنید. این مثال همچنین تغییر در قالب تاریخ را نشان می دهد:

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

عکس صفحه از ترمینال که نتایج دستور git log pretty را نشان می دهد

توجه داشته باشید که پرانتز ها تاریخ را احاطه کرده اند. صرف نظر از قالب بندی که انتخاب می کنید ، اگر می خواهید خروجی روی خط لوله یا سایر اشکال پردازش کلمه مفید باشد ، باید نحوه تفکیک هر قسمت از خروجی را در نظر بگیرید.

تفاوت در گزارش را نشان دهید

جزئیات مهم هنگام در نظر گرفتن تاریخچه مخزن ، تفاوت ها در خود آنها است. بالاخره آنها نشان دهنده آنچه واقعاً در کد تغییر کرده است! برای مبتدیان ، می توانید خلاصه ای از تغییرات همراه با هر استفاده از تثبیت را دریافت کنید – در کوتاه مدت:

git log --shortstat

این یک خط مانند این اضافه می کند:

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

در انتهای هر تعهد. این نوع رزومه را اغلب می بینید – به عنوان مثال در تمام صفحات GitHub – و این یک روش مفید برای ارزیابی سریع دامنه یک تعامل خاص است. برای اطلاعات دقیق تر ، می توانید خروجی کامل را برای تصحیح (اختلاف) با استفاده از روشن کنید پرچم:

git log -p

فیلتر خروجی Git Log

هر قالب بندی را که اعمال کنید ، همچنان گزارش کامل اصلاحات را در شاخه فعلی مشاهده خواهید کرد. اگرچه Git آنها را به صفحات تقسیم می کند ، اما این هنوز هم می تواند یک نتیجه عالی باشد. گزینه های زیر به شما امکان می دهد که قرارهایی را که گزارش شامل می شود ، تنظیم کنید.

مقدار آن را محدود کنید

اگر می خواهید برای نشان دادن تعهدات آخر نتایج را برش دهید ، استفاده کنید -[number] نحو:

git log -2

تصویر صفحه ای از ترمینال که خروجی git log -2 را نشان می دهد

محدودیت تاریخ

برای اینکه مجموعه قرارها را به یک دوره زمانی خاص محدود کنید ، استفاده کنید –از جانب (–بعد) و –به (–قبل از) تنظیمات. هر یک از آنها با فرمت ISO 8601 تاریخ می گیرند. می توانید از هر دو استفاده کنید –از جانب یا –به به تنهایی یا هر دو با هم برای تنظیم یک محدوده. گزینه ها –بعد و –قبل از مترادف هستند

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

محدود کردن توسط پرونده

ورود به سیستم git می تواند بر روی یک فایل خاص تمرکز کند ، نه بر روی هر پرونده در مخزن شما. این برای کمک به شما در درک چگونگی تغییر یک پرونده خاص با گذشت زمان بسیار مناسب است. فقط نام فایل را در انتهای دستور git اضافه کنید:

git log filename

شما فقط آن تعهداتی را که تحت تأثیر قرار می گیرند خواهید دید نام فایل.

تفاوت بین شاخه ها

ممکن است هنگام مشاهده گزارش شاخه ، برخی از الزامات منحصر به فرد داشته باشید. به عنوان مثال ، شاید به جای دیدن کل داستان ، فقط بخواهید ببینید که چه تغییراتی در آن شاخه خاص ایجاد شده است. ورود به سیستم git می تواند به شما کمک کند ref1..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

تفاوت بین دو نشانگر

همانطور که می توانید تاریخچه بین شاخه ها را با استفاده از مشاهده کنید ref1..ref2 نحو ، شما همچنین می توانید تاریخ بین برچسب ها را به همان شیوه مشاهده کنید. به هر حال ، هر دو برچسب و شاخه انواع مرجع هستند.

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

عکس صفحه از ترمینال که خروجی git log shorn-commit را نشان می دهد

اگر یادداشت های انتشار را برای یک پروژه بزرگتر آماده می کنید ، git shortlog باید اولین بندر شما باشد او لیستی از نویسندگان را با موضوعاتی برای تعامل آماده می کند. می توانید به آن یک محدوده مرجع بدهید تا تاریخچه را به روشی مشابه برای ورود به سیستم git محدود کند:

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

عکس صفحه از ترمینالی که خروجی glog shortlog را نشان می دهد

دستور git show حتی انعطاف پذیرتر از آن است git دفتر خاطرات. این می تواند با برچسب ها و انواع دیگر اشیا g git خارج از سابقه رفع مشکل کار کند. گزینه های زیادی را با آن به اشتراک می گذارد git دفتر خاطراتاما درصورت نیاز به جزئیات در سطح پایین تر ، واقعاً به آن نیاز خواهید داشت.

گذشته را با Git Log مرور کنید

ورود به سیستم git یک دستور پیچیده است ، اما شما می توانید از بسیاری از گزینه های اساسی استفاده کنید. مشاهده سابقه مخزن شما یک روش عالی برای فهمیدن اینکه چند بار تغییرات ایجاد می شود و چند نفر آنها را ایجاد می کنند است. هنگامی که از تاریخچه یک پروژه درک خوبی داشته باشید ، موقعیت خوبی خواهید داشت که خودتان به آن کمک کنید.


در پروژه های منبع باز کمک کنید
به روند کدگذاری اجتماعی بپیوندید و به مخازن GitHub کمک کنید

آیا می خواهید عضلات برنامه نویسی خود را تمرین دهید و به پروژه های منبع باز کمک کنید؟ در اینجا نحوه کمک به GitHub آورده شده است.

بعدی را بخوانید


درباره نویسنده

.