Skip to content

Instantly share code, notes, and snippets.

@monirehbastami
Last active January 30, 2025 08:55
Show Gist options
  • Select an option

  • Save monirehbastami/1e75d147b810249a6ffbec3eddf9c88d to your computer and use it in GitHub Desktop.

Select an option

Save monirehbastami/1e75d147b810249a6ffbec3eddf9c88d to your computer and use it in GitHub Desktop.
Git Cheat Sheet

# ایجاد یک پروژه محلی و معرفی آن به گیت

در پوشه جاری پوشه‌ای با نام انتخابی ایجاد می‌گردد که حاوی پوشه "دات.گیت" است.

git init “Project-Name”

معرفی پروژه محلی به گیت

 git init 

تعریف نام و ایمیل جهت مشخص بودن کامیت کننده برای همه پروژه ها

 git config –global user.name “Name”
 
 git config –global user.email “Email”

تعریف نام و ایمیل جهت مشخص بودن کامیت کننده برای پروژه جاری

 git config –local user.name “Name”

git config –local user.email “Email” 

همگام کردن یا فرستادن پروژه محلی با یک پروژه در سرور با نام "ایکس" و انتقال آن به آدرس "یو.آر.ال"

 git remote add <X> <url>

آوردن پروژه از سرور راه دور به سیستم محلی

 git clone <url>

مشاهده فایل های تغییر یافته و بررسی وضعیت فایل ها

 git status

وارد کردن فایل مورد نظر به مرحله استیجینگ

 git add <file_name>

وارد کردن فایل های جاری تغییر کرده به مرحله استیجینگ بردن تمامی فایل‌های تغییر یافته و جدید از دایرکتوری جاری و زیرشاخه‌های آن به مرحله‌ی استیجینگ

 git add .

بردن تمامی تغییرات (اضافه شدن، تغییر کردن و حذف شدن فایل‌ها) در کل مخزن ریپوزیتوری به مرحله‌ی استیجینگ، حتی اگر در دایرکتوری والد باشند.

 git add –A

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

 git commit –m “Comment”

دریافت و مشاهده تغییرات موجود روی سرور ریموت بدون اعمال آن روی پروژه محلی

 git fetch

دریافت تغییرات موجود روی سرور ریموت و مرج کردن آن ها با پروژه محلی

git pull <remote-name> <branch-name>

انتقال برنچ جدید به سرور

git push –u <remote-name> <branch-name>

حذف فایل مورد نظر از ریپوزیتوری

git rm <file_name>

مشاهده برنچ جاری

git branch

مشاهده همه برنچ های محلی

git branch –v

مشاهده همه برنچ های محلی و ریموت

 git branch –a

ساخت برنچ جدید

 git branch <branch-name>

انتقال به برنچ مورد نظر

 git checkout <branch-name>
 git switch <branch-name>

ایجاد یک برنچ جدید و انتقال به آن

 git checkout -b <branch-name>

مرج برنچ موردنظر با برنچ جاری

 git merge <branch-name>

باز کردن فایل و رفع کانفیلیکت ها

 vim <file_name>

ذخیره تغییرات و خروج از حالت ویرایش فایل ایتدا دکمه اسکیپ را فشار دهید

 :wq 

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

 git stash

بازیابی حالت ذخیره شده پروژه

 git stash apply

حذف استش مورد نظر

 git stash drop

مشاهده تفاوت فایل مورد نظر نسبت به آخرین استیج

 git diff <file_name>

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

 git diff –staged <file_name>

مشاهده تفاوت کنونی فایل ها به آخرین کامیت

 git diff HEAD

مشاهده لیست تگ های موجود

 git tag

زدن یک تگ با نام دلخواه روی آخرین کامیت

 git tag < tag-name>

حذف تگ موردنظر

 git tag –d <tag-name>

انتقال تگ های خود به سرور

 git push –tags

ارسال یک تگ خاص به ریموت

 git push origin <tag_name>

حذف یک تگ خاص از ریموت

 git push --delete origin <tag_name>	

مشاهده تاریخچه کامیت ها

 git log

مشاهده "اِن" کامیت گذشته

 git log –a <n>

مشاهده کامیت ها بصورت مختصر (دریک خط)

 git log –online

مشاهده خط در کنار کامیت ها که نماینگر ساختار درختی و سلسله مراتب کامیت هاست

 git log –gragh –decorate

نمایش کامیت‌ها با جزئیات (شامل تغییرات هر کامیت)

 git log –p

مشاهده فقط نویسنده و تاریخ کامیت‌ها

 git log --pretty=format:"%h - %an, %ar : %s"

o	%h: هش کوتاه‌شده کامیت.
o	%an: نام نویسنده.
o	%ar: زمان نسبی (مانند "2 days ago").
o	%s: پیام کامیت.

مشاهده کامیت‌های یک شاخه خاص

 git log <branch_name>

مشاهده کامیت‌های یک فایل خاص

 git log <file_path>

مشاهده کامیت‌های یک نویسنده خاص

 git log --author="Author Name”

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

 git log --since="2 weeks ago”

ترکیب چند مورد باهم

 git log --oneline --author="Bastami" --since="1 week ago”

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

 git log - <file_name>

خارج شدن از حالت دیدن لاگ

 q

حذف تغییرات فایل مورد نظر و برگرداندن آن به نسخه آخر کامیت

 git restore <file-name>

درآوردن تغییرات استیج شده از ناحیه استیجینگ ضمن نگه داشتن خود تغییرات

 git restore –staged <file-name>

بازگشت به کامیتی در گذشته و حذف کامیت های میانی (بصورت دائمی- در حالت کار کردن روی پروژه بصورت گروهی بجای ریست از ریورت استفاده شود!)

 git reset  <commit-hash>

بازگشت به کامیتی در گذشته و حذف کامیت های میانی بدون درنظر گرفتن فایل های تغییر داده شده (بصورت دائمی- در حالت کار کردن روی پروژه بصورت گروهی بجای ریست از ریورت استفاده شود!)

 git reset --hard <commit-hash>

اگر تاریخچه‌ی کامیت‌های شما به این شکل باشد

 A --- B --- C --- D --- E (HEAD)

و بخواهید به "بی" برگردید و "سی" و "دی" و "ای" را حذف کنید، دستور زیر را اجرا کنید

 git reset --hard B

تاریخچه به صورت زیر می شود

 A --- B (HEAD)

بازگشت به کامیتی در گذشته و باقی ماندن تغییرات در فایل ها (فایل های به حالت آن.استیج خواهد رفت)

 git reset --soft <commit-hash>

جهت بازگشت به کامیتی در گذشته زمانی که مخزن شما به ریموت (مثلا گیت هاب) متصل است

 git revert <commit-hash>..HEAD

اگر تاریخچه‌ی کامیت‌های شما به این شکل باشد

 A --- B --- C --- D --- E (HEAD)

و بخواهید به "بی" برگردید و "سی" و "دی" و "ای" را حذف کنید، دستور زیر را اجرا کنید

 git revert C..HEAD

مختصر نویسی دستورات گیت برای همه پروژه ها (اگر فقط میخواهید برای پروژه جاری، دستورات نختصر تعریف کنید، گلوبال را بردارید)

 git config --global alias.<alias-name> <real-name>

git config --global alias.glog log

روش دوم

 alias –global <alias-name>= <real-name>

alias –global glog=”git log”

حذف کردن یک اسم مختصر تعریف شده

git config –global --unset alias.glog
  • در صورت پاک نشدن دستور کش شده و کافی است گیت بش را بسته، مجددا باز نمایید. در غیر اینصورت از فایل کانفیگ موجود در پوشه "دات.گیت" بصورت دستی پاک کنید)

شروع عملیات جستجو برای پیدا کردن کامیت دارای باگ

 git bisect start

مشخص کردن کامیت خوب یا بدون باگ

 git bisect good < hash_of_good_commit>

مشخص کردن کامیت بد یا دارای باگ

 git bisect bad < hash_of_bad_commit>

پایان عملیات

 git bisect reset

اعمال تغییرات کامیت مورد نظر روی برنچ کنونی طی یک کامیت جدید

 git cheryy-pick <commit>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment