برنامه نویسی

تسلط بر Git Log: راهنمای جامع

Summarize this content to 400 words in Persian Lang

git log;

به دنبال آخرین وبلاگ من می توانید به زیر دسترسی داشته باشید.

راهنمای مبتدیان برای دستورات Git
Samar F. Jaffri ・ 26 ژوئیه

#git
#github
#مبتدیان
#آموزش

من قصد دارم برخی از دستورات ورود به سیستم Git را به اشتراک بگذارم که برای شما در سفر VCS شما مفید خواهد بود.

اگر مقاله قبلی من را خوانده باشید، قبلاً با Git و کاربرد آن آشنا هستید. برای کسانی که نکرده اند، Git log یک فرمان قدرتمند است که به شما امکان می‌دهد تاریخچه commit را در یک مخزن Git مرور کنید و گزینه‌های مختلفی را برای فیلتر کردن پیام‌های commit بر اساس نیاز شما ارائه می‌دهد.

حالا بدون تاخیر بیشتر، بیایید به سراغ آن برویم git log گزینه ها

بیایید به گزینه های git log شیرجه بزنیم!

همه را ثبت کنید

اول از همه، Git دستور log برای فهرست کردن تمام پیام‌های commit شاخه از جمله اطلاعات مربوط به نویسنده commit و تاریخ commit به همراه هش commit و پیام استفاده می‌شود.

# log all commits
git log

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

Commit ها را فیلتر کنید

دریافت n تعهد

کمترین احتمال را دارید که از این گزینه استفاده کنید زیرا Git به طور پیش فرض فقط پیام های commit را ارائه می دهد که در ترمینال شما قرار می گیرند. اما اگر هنوز هم می‌خواهید تعداد مشخصی از تعهدات را دریافت کنید، فقط می‌توانید با استفاده از آن این کار را انجام دهید -n گزینه.

# show the last 5 commits
git log -n 5

فیلتر کردن بر اساس تاریخ انجام می شود

همچنین می توانید commit ها را بر اساس زمان انجام آنها فیلتر کنید. Git این گزینه را در اختیار شما قرار می دهد تا commit ها را بعد از تاریخ مشخص شده با استفاده از فیلتر کنید –since، –after، و برای دریافت commit ها قبل از تاریخ مشخص شده با استفاده از –until، و –before.

همچنین، این دستورات با تاریخ های خاص و نسبی کار می کنند.

# show commits from the past two weeks
git log –since=”2 weeks ago”
# or by using –after
git log –after=”2 weeks ago”

# show commits until January 1, 2024
git log –until=”2024-01-01″
# or by using –before
git log –before=”2024-01-01″

همچنین توصیه می شود برای رفتار ثابت منطقه زمانی را مشخص کنید git log –date=local …

فیلتر بر اساس نویسنده

گاهی اوقات ممکن است بخواهید commit ها را بر اساس نویسنده فیلتر کنید. من بیشتر به آن نیاز دارم تا تعهداتم را قبل از جلسه اسکرام فیلتر کنم تا وضعیت خود را آماده کنم. اما سلام، کاربردهای خوبی نیز دارد، که بدیهی است که شامل تعقیب یک برنامه‌نویس دیگر نمی‌شود.

# get commits from a specific author
git log –author=”Author Name”

فیلتر کردن commit ها بر اساس پیام های Commit

این مفیدترین گزینه فیلتر است که با git log ارائه می شود. اگر از قرارداد پیام commit خوب پیروی کنید، این امر به شما کمک زیادی می کند تا انواع خاصی از commit ها مانند fix، build، ci و غیره را فیلتر کنید.

# show commits with “fix” in the message
git log –grep=”fix”

فرمت کردن خروجی

همچنین می‌توانید پیام‌های گزارش را آن‌گونه که برای شما مناسب است، با استفاده از آن قالب‌بندی کنید –pretty گزینه.

فرمت های از پیش تعریف شده

oneline: هر commit را در یک خط نمایش می دهد.

short: شامل هش commit، نویسنده، تاریخ و موضوع است.

medium: پیام commit و تغییرات فایل را اضافه می کند.

full: شامل اطلاعات commit کامل است.

format: قالب بندی سفارشی را با استفاده از متغیرهایی (به عنوان مثال، %H برای commit هش، %an برای نام نویسنده، %s برای موضوع).

# show concise logs
git log –pretty=oneline

# use –oneline for combining –pretty=oneline –abbrev-commit
git log –oneline

# custom format with short hash and subject
git log –pretty=format:”%h – %s”

قالب بندی سفارشی

یا می توانید با استفاده از مشخص کننده ها قالب بندی سفارشی ایجاد کنید.

git log –pretty=format:”Commit: %H\nAuthor: %an\nDate: %ad\nSubject: %s\n\n%b”

Git log مشخص کننده های مفید

%H هش را مرتکب شوید

%h مخفف commit هش

%T هش درخت

%t هش درخت کوتاه شده

%P هش های والدین

%p هش های والد به اختصار

%an نام نویسنده

%ae ایمیل نویسنده

%ad تاریخ نویسنده (قالب به –date=گزینه احترام می گذارد)

%ar تاریخ نویسنده، نسبی

%cn نام کامیتر

%ce ایمیل Committer

%cd تاریخ کامیتر

%cr تاریخ متعهد، نسبی

%s موضوع

مشاهده جزئیات تعهد

-p: نمایش پچ (تفاوت) معرفی شده توسط هر commit.

–stat: نمایش آمار برای هر commit (فایل های اضافه شده، حذف شده، اصلاح شده).

–shortstat: نمایش خلاصه ای از فایل های اضافه شده، حذف شده و اصلاح شده.

git log -p –stat

گزینه های مفید دیگر

–graph: نمایش گراف commit.

–follow: فهرست کردن تاریخچه یک فایل فراتر از تغییر نام را ادامه دهید.

–reverse: نمایش commit ها به ترتیب زمانی (ابتدا قدیمی ترین).

–no-merges: از تعهدات ادغام حذف کنید.

–first-parent: فقط اولین کامیت والد تعهدات ادغام را دنبال کنید.

ترکیب گزینه ها

همانطور که در بالا ذکر کردم در مورد –oneline، می توانید چندین گزینه را ترکیب کنید.

# get commits from “Author Name” formatted as “%h – %s” commited within a month
git log –author=”Author Name” –since=”1 month ago” –pretty=format:”%h – %s”

# find bug fix commits from last week
git log –grep=”fix” –since=”1 week ago” –pretty=format:”%h – %s”

استفاده پیشرفته

Commit Ranges: محدوده ای از commit ها را با استفاده از آن مشخص کنید commit1..commit2 نحو.

Refspecs: از refspecs مانند استفاده کنید origin/master..HEAD برای مقایسه شاخه ها

فیلتر کردن بر اساس فایل: استفاده کنید –path برای فیلتر کردن commit ها بر اساس مسیرهای فایل.

Rebasing تعاملی: استفاده کنید git rebase -i برای ویرایش commit history

چیدن گیلاس: استفاده کنید git cherry-pick برای اعمال commit های خاص به شاخه ای دیگر.

ارجاع:

https://training.github.com/downloads/github-git-cheat-sheet/
https://git-scm.com/docs/git#_git_commands
https://git-scm.com/docs/giteveryday
کتاب: Pro Git

git log;

به دنبال آخرین وبلاگ من می توانید به زیر دسترسی داشته باشید.

من قصد دارم برخی از دستورات ورود به سیستم Git را به اشتراک بگذارم که برای شما در سفر VCS شما مفید خواهد بود.

اگر مقاله قبلی من را خوانده باشید، قبلاً با Git و کاربرد آن آشنا هستید. برای کسانی که نکرده اند، Git log یک فرمان قدرتمند است که به شما امکان می‌دهد تاریخچه commit را در یک مخزن Git مرور کنید و گزینه‌های مختلفی را برای فیلتر کردن پیام‌های commit بر اساس نیاز شما ارائه می‌دهد.

حالا بدون تاخیر بیشتر، بیایید به سراغ آن برویم git log گزینه ها

بیایید به گزینه های git log شیرجه بزنیم!

همه را ثبت کنید

اول از همه، Git دستور log برای فهرست کردن تمام پیام‌های commit شاخه از جمله اطلاعات مربوط به نویسنده commit و تاریخ commit به همراه هش commit و پیام استفاده می‌شود.

# log all commits
git log

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

Commit ها را فیلتر کنید

دریافت n تعهد

کمترین احتمال را دارید که از این گزینه استفاده کنید زیرا Git به طور پیش فرض فقط پیام های commit را ارائه می دهد که در ترمینال شما قرار می گیرند. اما اگر هنوز هم می‌خواهید تعداد مشخصی از تعهدات را دریافت کنید، فقط می‌توانید با استفاده از آن این کار را انجام دهید -n گزینه.

# show the last 5 commits
git log -n 5

فیلتر کردن بر اساس تاریخ انجام می شود

همچنین می توانید commit ها را بر اساس زمان انجام آنها فیلتر کنید. Git این گزینه را در اختیار شما قرار می دهد تا commit ها را بعد از تاریخ مشخص شده با استفاده از فیلتر کنید --since، --after، و برای دریافت commit ها قبل از تاریخ مشخص شده با استفاده از --until، و --before.

همچنین، این دستورات با تاریخ های خاص و نسبی کار می کنند.

# show commits from the past two weeks
git log --since="2 weeks ago"
# or by using --after
git log --after="2 weeks ago"

# show commits until January 1, 2024
git log --until="2024-01-01"
# or by using --before
git log --before="2024-01-01"

همچنین توصیه می شود برای رفتار ثابت منطقه زمانی را مشخص کنید git log --date=local ...

فیلتر بر اساس نویسنده

گاهی اوقات ممکن است بخواهید commit ها را بر اساس نویسنده فیلتر کنید. من بیشتر به آن نیاز دارم تا تعهداتم را قبل از جلسه اسکرام فیلتر کنم تا وضعیت خود را آماده کنم. اما سلام، کاربردهای خوبی نیز دارد، که بدیهی است که شامل تعقیب یک برنامه‌نویس دیگر نمی‌شود.

# get commits from a specific author
git log --author="Author Name"

فیلتر کردن commit ها بر اساس پیام های Commit

این مفیدترین گزینه فیلتر است که با git log ارائه می شود. اگر از قرارداد پیام commit خوب پیروی کنید، این امر به شما کمک زیادی می کند تا انواع خاصی از commit ها مانند fix، build، ci و غیره را فیلتر کنید.

# show commits with "fix" in the message
git log --grep="fix"

فرمت کردن خروجی

همچنین می‌توانید پیام‌های گزارش را آن‌گونه که برای شما مناسب است، با استفاده از آن قالب‌بندی کنید --pretty گزینه.

فرمت های از پیش تعریف شده

  • oneline: هر commit را در یک خط نمایش می دهد.
  • short: شامل هش commit، نویسنده، تاریخ و موضوع است.
  • medium: پیام commit و تغییرات فایل را اضافه می کند.
  • full: شامل اطلاعات commit کامل است.
  • format: قالب بندی سفارشی را با استفاده از متغیرهایی (به عنوان مثال، %H برای commit هش، %an برای نام نویسنده، %s برای موضوع).
# show concise logs
git log --pretty=oneline

# use --oneline for combining --pretty=oneline --abbrev-commit
git log --oneline

# custom format with short hash and subject
git log --pretty=format:"%h - %s"

قالب بندی سفارشی

یا می توانید با استفاده از مشخص کننده ها قالب بندی سفارشی ایجاد کنید.

git log --pretty=format:"Commit: %H\nAuthor: %an\nDate: %ad\nSubject: %s\n\n%b"

Git log مشخص کننده های مفید

  • %H هش را مرتکب شوید
  • %h مخفف commit هش
  • %T هش درخت
  • %t هش درخت کوتاه شده
  • %P هش های والدین
  • %p هش های والد به اختصار
  • %an نام نویسنده
  • %ae ایمیل نویسنده
  • %ad تاریخ نویسنده (قالب به –date=گزینه احترام می گذارد)
  • %ar تاریخ نویسنده، نسبی
  • %cn نام کامیتر
  • %ce ایمیل Committer
  • %cd تاریخ کامیتر
  • %cr تاریخ متعهد، نسبی
  • %s موضوع

مشاهده جزئیات تعهد

  • -p: نمایش پچ (تفاوت) معرفی شده توسط هر commit.
  • --stat: نمایش آمار برای هر commit (فایل های اضافه شده، حذف شده، اصلاح شده).
  • --shortstat: نمایش خلاصه ای از فایل های اضافه شده، حذف شده و اصلاح شده.
git log -p --stat

گزینه های مفید دیگر

  • --graph: نمایش گراف commit.
  • --follow: فهرست کردن تاریخچه یک فایل فراتر از تغییر نام را ادامه دهید.
  • --reverse: نمایش commit ها به ترتیب زمانی (ابتدا قدیمی ترین).
  • --no-merges: از تعهدات ادغام حذف کنید.
  • --first-parent: فقط اولین کامیت والد تعهدات ادغام را دنبال کنید.

ترکیب گزینه ها

همانطور که در بالا ذکر کردم در مورد --oneline، می توانید چندین گزینه را ترکیب کنید.

# get commits from "Author Name" formatted as "%h - %s" commited within a month
git log --author="Author Name" --since="1 month ago" --pretty=format:"%h - %s"

# find bug fix commits from last week
git log --grep="fix" --since="1 week ago" --pretty=format:"%h - %s"

استفاده پیشرفته

Commit Ranges: محدوده ای از commit ها را با استفاده از آن مشخص کنید commit1..commit2 نحو.

Refspecs: از refspecs مانند استفاده کنید origin/master..HEAD برای مقایسه شاخه ها

فیلتر کردن بر اساس فایل: استفاده کنید --path برای فیلتر کردن commit ها بر اساس مسیرهای فایل.

Rebasing تعاملی: استفاده کنید git rebase -i برای ویرایش commit history

چیدن گیلاس: استفاده کنید git cherry-pick برای اعمال commit های خاص به شاخه ای دیگر.

ارجاع:

  • https://training.github.com/downloads/github-git-cheat-sheet/
  • https://git-scm.com/docs/git#_git_commands
  • https://git-scm.com/docs/giteveryday
  • کتاب: Pro Git

نوشته های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا