تنظیمات اولیه

تنظیم نام برای همه پروژه ها
git config --global user.name
<username>
تنظیم ایمیل برای همه پروژه ها
git config --global user.email
<email>
تنظیم نام در پروژه کنونی
git config --local user.name
<username>
تنظیم ایمیل در پروژه کنونی
git config --local user.email
<email>

شروع پروژه

ایجاد یک پروژه روی سیستم محلی با نام project name
git init
<project name>
همگام کردن پروژه روی سیستم محلی با یک پروژه در سرور name و انتقال آن به آدرس url
git remote add
<name>
<url>
آوردن پروژه از سرور راه دور به سیستم محلی
git clone
<url>

کار های روزانه

مشاهده فایل های تغییر کرده و اضافه شده نسبت به کامیت قبلی
git status
وارد کردن فایل مورد نظر به ناحیه staging و آماده کردن آن برای کامیت
git add
<file name>
اضافه کردن همه فایل های تغییر کرده به ناحیه staging
git add
مشاهده تفاوت فایل مورد نظر نسبت به آخرین stage
git diff
<file name>
مشاهده تفاوت فایل های stage شده نسبت به کامیت آخر
git diff --staged
<file name>
مشاهده تفاوت کنونی فایل ها با آخرین کامیت
git diff HEAD
ایجاد یک کامیت جدید از فایل های درون ناحیه staging
git commit
حذف فایل مورد نظر از ریپازیتوری
git rm
<file name>
ذخیره تغییرات ناتمام نسبت به کامیت قبلی بدون ایجاد کامیت جدید
git stash
بازیابی حالت ذخیره شده پروژه
git stash apply
حذف استش مورد نظر
git stash drop

کار کردن با برنچ‌ها

مشاهده تمام برنچ های ریپازیتوری
git branch
مشاهده تمام برنچ های ریپازیتوری به همراه برنچ های ریموت
git branch
-a
ساخت یک برنچ جدید با نام مورد نظر
git branch
<branch name>
انتقال به برنچ مورد نظر
git checkout
<branch name>
ایجاد یک برنچ جدید و انتقال به آن
git checkout
-b
<branch name>
مرج برنچ مورد نظر با برنچ کنونی
git merge
<branch name>
Rebase کردن برنچ کنونی با برنچ مورد نظر
git rebase
<branch name>
حذف برنچ مورد نظر
git branch
-d
<branch name>

ارتباط با پروژه ی روی سرور

دریافت و مشاهده تغییرات موجود روی سرور ریموت بدون اعمال آن ها روی پروژه محلی
git fetch
دریافت تغییرات موجود روی سرور ریموت و مرج کردن آن ها با پروژه محلی
git pull
انتقال تغییرات برنچ کنونی به سرور
git push
انتقال تگ های جدید خود به سرور
git push
--tags
انتقال برنچ جدید به سرور
git push
-u
<remote name>
branch name

بررسی کامیت های گذشته

مشاهده لیست تمام کامیت های گذشته
git log
مشاهده c تا از کامیت های گذشته
git log
-n
<c>
مشاهده گراف کامیت های گذشته به شکل یک گراف و در یک خط
git log
--oneline --graph --decorate
مشاهده تمام کامیت های ایجاد شده توسط کاربر X
git log
--author=
<X>
مشاهده کامیت های تغییر دهنده فایل مورد نظر
git log
--
<file name>

تگ زدن کامیت ها

مشاهده لیست تمام تگ های ریپازیتوری
git tag
زدن یک تگ با نام دلخواه روی کامیت آخر
git tag
<name>
حذف تگ مورد نظر
git tag
-d
<name>

اصلاح خطا

حذف تغییرات فایل مورد نظر و برگرداندن آن به نسخه آخر کامیت
git restore
<file name>
درآوردن تغییرات stage شده از ناحیه staging ضمن نگه داشتن خود تغییرات
git restore
--staged
<file name>
بازگشت به کامیتی در گذشته و حذف کامیت های میانی
git reset
<commit>
بازگشت به کامیتی در گذشته و حذف کامیت های میانی بدون در نظر گرفتن فایل های تغییر داده شده
git reset
--hard
<commit>
ساخت یک کامیت برابر با معکوس تغییرات کامیت مورد نظر
git revert
<commit>
افزودن تغییرات مورد نظر به آخرین کامیت
git commit
--amend
حذف تغییرات پس از آخرین کامیت در سیستم محلی
git clean

دیگر دستورات

تعریف یک میانبر دلخواه برای دستورات پرکاربرد
git config --globalalias
<alias>
<command>
شروع عملیات جست وجو برای کامیت دارای باگ
git bisect start
مشخص کردن کامیت بدون باگ
git bisect good
<commit>
مشخص کردن کامیت دارای باگ
git bisect bad
<commit>
اعمال تغییرات کامیت مورد نظر روی برنچ کنونی طی یک کامیت جدید
git cherry-pick
<commit>