راهنمای گیت

ترفندهای گیت

آن‌استیج کردن فایل‌ها

برای خارج‌کردن یک فایل از staging بدون از دست دادن تغییرات:

git restore --staged نام‌فایل

مشاهده‌ی reflog

گیت تمام تغییرات HEAD را حتی بعد از reset در یک لیست داخلی نگه می‌دارد. اگر اشتباهاً یک کامیت را پاک کردید، reflog آن را پیدا می‌کند:

git reflog

با هش کامیت پیدا شده می‌توانید آن را بازیابی کنید:

git checkout هش‌کامیت

لاگ تمیز و رنگی

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

برای آسان‌تر شدن، یک alias بسازید:

git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

بعد از این فقط git lg بنویسید.

خلاصه‌ی مشارکت‌ها

برای دیدن تعداد کامیت‌ها به تفکیک نویسنده:

git shortlog -sn

نمایش فایل‌های تغییریافته در یک کامیت

git show --name-only هش‌کامیت

اضافه کردن تغییرات به آخرین کامیت

اگر بعد از کامیت‌کردن چیز کوچکی را فراموش کردید:

git add فایل‌فراموش‌شده
git commit --amend --no-edit

گزینه‌ی --no-edit پیام کامیت را تغییر نمی‌دهد.

توجه: از amend فقط روی کامیت‌هایی که push نشده‌اند استفاده کنید.

کپی‌کردن آدرس ریموت

git remote get-url origin

جستجو در محتوای کامیت‌ها

برای یافتن اینکه کدام کامیت یک رشته‌ی متنی را اضافه یا حذف کرده:

git log -S "متن‌مورد‌جستجو" --oneline

نمایش تغییرات یک کامیت

git show هش‌کامیت

مقایسه‌ی فایل با نسخه‌ی قبلی

برای دیدن تفاوت یک فایل نسبت به ۲ کامیت قبل:

git diff HEAD~2 -- نام‌فایل

ریست‌کردن یک فایل به نسخه‌ی یک کامیت خاص

git checkout هش‌کامیت -- نام‌فایل

کامیت خالی

گاهی برای راه‌اندازی CI یا تست یک کامیت بدون تغییر لازم است:

git commit --allow-empty -m "trigger CI"

پیدا کردن آخرین تگ

git describe --tags --abbrev=0

تعداد کامیت‌های یک برنچ

git rev-list --count نام‌برنچ

آرشیو گرفتن از پروژه

برای ساختن یک فایل zip از وضعیت فعلی پروژه:

git archive --format=zip HEAD > project.zip