برگه تقلب Git
مرجع Git قابل جستوجو و چاپ — پیکربندی، شاخهها، ادغام، rebase، مخازن راه دور، stash، تگها و بازگرداندن تغییرات. رایگان.
نصب و پیکربندی
10git config --global user.name "Jane Doe"
تنظیم نام پیوستشده به کامیتها
git config --global user.email "jane@example.com"
تنظیم ایمیل پیوستشده به کامیتها
git config --global init.defaultBranch main
آغاز مخازن جدید روی شاخه "main"
git config --global core.editor "code --wait"
استفاده از VS Code بهعنوان ویرایشگر پیشفرض Git
git config --global pull.rebase true
rebase بهجای merge هنگام pull
git config --global alias.co checkout
ساخت میانبر نام مستعار (git co)
git config --global --list
فهرست همه مقادیر پیکربندی سراسری
git config user.email
چاپ ایمیل مخزن جاری
git config --global color.ui auto
فعالسازی خروجی رنگی خط فرمان
git help <command>
باز کردن صفحه راهنمای یک فرمان
ساخت و کلون مخازن
9git init
مقداردهی مخزن جدید در پوشه جاری
git init my-project
ساخت مخزن جدید در دایرکتوری تازه
git clone https://example.com/repo.git
کلون مخزن راهدور با HTTPS
git clone git@example.com:user/repo.git
کلون مخزن راهدور با SSH
git clone <url> my-dir
کلون در دایرکتوری با نام مشخص
git clone --depth 1 <url>
کلون کمعمق فقط با آخرین کامیت
git clone --branch dev <url>
کلون و checkout یک شاخه مشخص
git clone --recurse-submodules <url>
کلون و مقداردهی همه submoduleها
git remote add origin <url>
افزودن remote به مخزن محلی موجود
استیج و کامیت
11git add file.txt
استیج یک فایل برای کامیت بعدی
git add .
استیج همه تغییرات دایرکتوری جاری
git add -A
استیج همه تغییرات شامل حذفها
git add -p
استیج تعاملی بخشهای انتخابی
git commit -m "Add login form"
کامیت تغییرات استیجشده با پیام
git commit -am "Fix typo"
استیج فایلهای ردیابیشده و کامیت یکمرحلهای
git commit --amend
ویرایش آخرین کامیت
git commit --amend --no-edit
افزودن تغییرات استیجشده به کامیت آخر
git rm file.txt
حذف فایل و استیج آن حذف
git mv old.txt new.txt
تغییرنام یا جابهجایی فایل و استیج آن
git reset file.txt
خروج فایل از استیج با حفظ تغییرات
شاخهها
10git branch
فهرست همه شاخههای محلی
git branch -a
فهرست شاخههای محلی و ردیاب راهدور
git switch -c feature/login
ساخت شاخه جدید و رفتن به آن
git switch main
رفتن به شاخه موجود
git checkout -b hotfix
روش کلاسیک ساخت و تعویض شاخه
git branch -m old-name new-name
تغییرنام شاخه
git branch -d feature/login
حذف شاخه محلی mergeشده
git branch -D feature/login
حذف اجباری شاخه محلی mergeنشده
git push origin --delete feature/login
حذف یک شاخه روی remote
git switch -
بازگشت به شاخه قبلی
merge و rebase
10git merge feature/login
merge یک شاخه در شاخه جاری
git merge --no-ff feature/login
merge با ساخت همیشگی کامیت merge
git merge --squash feature/login
ادغام یک شاخه در یک تغییر استیجشده
git merge --abort
لغو merge دارای تعارض
git rebase main
بازپخش کامیتهای شاخه جاری روی main
git rebase -i HEAD~3
ویرایش تعاملی ۳ کامیت آخر
git rebase --continue
ادامه rebase پس از رفع تعارضها
git rebase --abort
لغو rebase در حال انجام
git cherry-pick <hash>
اعمال یک کامیت روی شاخه جاری
git mergetool
اجرای ابزار رفع تعارضهای merge
remoteها و همگامسازی
11git remote -v
فهرست remoteهای تنظیمشده و URLهایشان
git remote add upstream <url>
افزودن remote دوم با نام upstream
git remote set-url origin <url>
تغییر URL یک remote موجود
git fetch
دریافت تغییرات remote بدون merge
git fetch --all --prune
fetch همه remoteها و حذف شاخههای منسوخ
git pull
fetch و ادغام تغییرات remote
git pull --rebase
pull و rebase کامیتهای محلی روی آن
git push
آپلود کامیتهای محلی به remote
git push -u origin main
push و تنظیم شاخه ردیاب upstream
git push --force-with-lease
force-push ایمن بدون پایمالکردن دیگران
git push origin --tags
push همه تگهای محلی به remote
بازرسی و مقایسه
10git status
نمایش فایلهای استیج، بدوناستیج و ردیابینشده
git status -s
نمایش وضعیت در قالب کوتاه و فشرده
git diff
نمایش تغییرات بدوناستیج نسبت به index
git diff --staged
نمایش تغییرات استیجشده برای کامیت بعدی
git diff main..feature
مقایسه دو شاخه
git diff HEAD~1 HEAD
مقایسه آخرین کامیت با والدش
git show <hash>
نمایش جزئیات و diff یک کامیت
git show HEAD:file.txt
نمایش فایل به همان شکل در یک کامیت
git log --stat
نمایش کامیتها با خلاصه فایلهای تغییریافته
git shortlog -sn
شمارش کامیتها به تفکیک نویسنده
بازگرداندن تغییرات
10git restore file.txt
دور ریختن تغییرات بدوناستیج یک فایل
git restore --staged file.txt
خروج فایل از استیج با حفظ تغییرات
git restore --source=HEAD~1 file.txt
بازیابی فایل از کامیتی پیشین
git checkout -- file.txt
روش کلاسیک دور ریختن تغییرات محلی
git reset --soft HEAD~1
لغو آخرین کامیت، حفظ تغییرات در استیج
git reset --mixed HEAD~1
لغو آخرین کامیت، تغییرات بدون استیج
git reset --hard HEAD~1
لغو آخرین کامیت و دور ریختن تغییرات
git revert <hash>
ساخت کامیت جدید که کامیتی را لغو میکند
git clean -fd
حذف فایلها و دایرکتوریهای ردیابینشده
git clean -nd
پیشنمایش آنچه clean حذف خواهد کرد
stash کردن
10git stash
ذخیره تغییرات کامیتنشده و پاکسازی درخت
git stash push -m "wip"
stash تغییرات با پیام توصیفی
git stash -u
stash شامل فایلهای ردیابینشده
git stash list
فهرست همه مجموعهتغییرات stashشده
git stash show -p
نمایش diff آخرین stash
git stash apply
اعمال مجدد آخرین stash و حفظ آن
git stash pop
اعمال مجدد آخرین stash و حذف آن
git stash apply stash@{2}
اعمال مجدد یک stash مشخص با اندیس
git stash drop stash@{0}
حذف یک ورودی stash
git stash clear
حذف همه ورودیهای stash
تگها
9git tag
فهرست همه تگها
git tag v1.0.0
ساخت تگ سبک روی HEAD
git tag -a v1.0.0 -m "Release 1.0.0"
ساخت تگ حاشیهنویسیشده با پیام
git tag -a v1.0.0 <hash>
تگگذاری یک کامیت گذشته مشخص
git show v1.0.0
نمایش جزئیات یک تگ
git push origin v1.0.0
push یک تگ به remote
git push origin --tags
push همه تگهای محلی به remote
git tag -d v1.0.0
حذف یک تگ بهصورت محلی
git push origin --delete v1.0.0
حذف یک تگ روی remote
گزارشها و تاریخچه
12git log
نمایش تاریخچه کامل کامیتها
git log --oneline
نمایش گزارش فشرده تکخطی برای هر کامیت
git log --oneline --graph --all
نمایش شاخهها بهصورت گراف ASCII
git log -p
نمایش تاریخچه کامیت همراه diffها
git log --author="Jane"
فیلتر تاریخچه بر اساس نویسنده
git log --since="2 weeks ago"
فیلتر تاریخچه بر اساس بازه تاریخ
git log --pretty=format:"%h %an %s"
سفارشیسازی قالب خروجی گزارش
git blame file.txt
نمایش آخرین تغییردهنده هر خط
git reflog
نمایش تاریخچه جایگاههای HEAD
git bisect start
آغاز جستوجوی دودویی برای کامیت معیوب
git bisect good <hash>
علامتگذاری کامیت سالم در حین bisect
git bisect bad
علامتگذاری کامیت جاری بهعنوان معیوب
هیچ موردی با «:q» مطابقت ندارد.
به کمک نیاز دارید؟
با این ابزار مشکلی پیدا کردید؟ به تیم ما اطلاع دهید.