راهاندازی و پیکربندی ⤢ git configنام، ایمیل یا ویرایشگر خود را یک بار برای همه مخازن تنظیم میکند. git config --global user.name "Ada" ⤢ git config --global aliasبرای دستوری که زیاد تایپ میکنید یک نام میانبر تعریف میکند. git config --global alias.co checkout ⤢ git initیک مخزن جدید در پوشه فعلی میسازد. git init ⤢ git cloneیک مخزن رموت را روی دستگاه شما کپی میکند. git clone git@github.com:org/repo.git ⤢ git clone --depthفقط جدیدترین commitهای یک شاخه را کپی میکند. git clone --depth 1 --single-branch git@github.com:org/repo.git مبانی snapshot ⤢ git statusنشان میدهد چه چیزی stage شده، تغییر یافته و ردیابینشده است. git status -sb ⤢ git addتغییرها را stage میکند تا وارد commit بعدی شوند. git add src/app.ts ⤢ git add -pتغییرها را hunk به hunk بازبینی میکند و فقط آنچه را میپذیرید stage میکند. git add -p src/app.ts ⤢ git add -uتغییرهای همه فایلهای ردیابیشده را stage میکند بدون افزودن فایل جدید. git add -u ⤢ git commitتغییرهای stageشده را بهعنوان یک commit جدید ثبت میکند. git commit -m "fix: null check" ⤢ git commit --amendآخرین commit را با نسخه اصلاحشده جایگزین میکند. git commit --amend -m "fix: handle empty input" ⤢ git diffتغییرهای stageنشده را نشان میدهد، یا stageشده را با --staged. git diff --staged ⤢ git diff HEADهمه تغییرها از آخرین commit به بعد را نشان میدهد، stage شده یا نه. git diff HEAD شاخهبندی و ادغام ⤢ git branchفهرستکردن، ساخت یا حذف شاخهها. git branch feature-x ⤢ git branch -dحذف یک شاخه mergeشده (-D آن را اجباری حذف میکند، -a همه شاخهها را فهرست میکند). git branch -d feature-x ⤢ git switchجابهجایی بین شاخهها (جایگزین مدرن checkout). git switch feature-x ⤢ git switch -cدر یک قدم شاخه جدید میسازد و به آن سوییچ میکند. git switch -c feature-x ⤢ git checkoutجابهجایی بین شاخهها یا بازگردانی فایلها (دستور قدیمیتر و عامتر). git checkout feature-x ⤢ git mergeتغییرهای شاخه دیگر را وارد شاخه فعلی میکند. git merge feature-x ⤢ git merge --abortادغام پرتعارض را لغو و شاخه را به وضعیت پیشین برمیگرداند. git merge --abort ⤢ git rebasecommitهای شاخه فعلی را روی شاخه دیگر بازپخش میکند. git rebase main ⤢ git rebase -iدر حین بازپخش، commitها را ادغام، جابهجا یا ویرایش میکند. git rebase -i main ⤢ git cherry-pickیک commit واحد را از شاخه دیگر روی این شاخه کپی میکند. git cherry-pick a1b2c3d ⤢ git tagیک commit را با برچسبی خوانا مثل شماره نسخه علامت میزند. git tag -a v1.2.0 ⤢ git worktreeیک شاخه دیگر را همزمان در پوشهای جدا checkout میکند. git worktree add ../repo-feature feature-x بررسی تاریخچه ⤢ git logپیمایش تاریخچه commitها. git log --oneline --graph --decorate ⤢ git log --allتاریخچه را از همه شاخهها پیمایش میکند، نه فقط شاخه فعلی. git log --oneline --graph --all ⤢ git showdiff کامل و پیام یک commit را نشان میدهد. git show HEAD ⤢ git blameنشان میدهد چه کسی آخرین بار هر خط فایل را تغییر داده است. git blame src/app.ts ⤢ git reflogهر commitی را که HEAD به آن اشاره کرده نشان میدهد، حتی دورریختهها. git reflog ⤢ git bisectتاریخچه را دوبخشی جستوجو میکند تا commit خرابکننده پیدا شود. git bisect start ⤢ git shortlogخلاصهکردن commitها بر اساس نویسنده. git shortlog -sn ⤢ git describecommit فعلی را با شمارش از نزدیکترین تگ نامگذاری میکند. git describe --tags همکاری با رموت ⤢ git remoteفهرستکردن یا افزودن مخازن رموت. git remote add origin <url> ⤢ git remote -vرموتها را با نشانی fetch و pushشان فهرست میکند. git remote -v ⤢ git fetchتغییرهای رموت را بدون دستزدن به شاخههای شما دانلود میکند. git fetch origin ⤢ git fetch --pruneتغییرهای رموت را دانلود و ارجاع به شاخههای حذفشده رموت را میاندازد. git fetch --prune ⤢ git pullتغییرهای رموت شاخه فعلی را fetch و merge میکند. git pull --rebase ⤢ git pushcommitهای محلی را به رموت میفرستد. git push -u origin feature-x ⤢ git push --force-with-leaseشاخه رموت را بازنویسی میکند، اما فقط اگر کسی قبل از شما push نکرده باشد. git push --force-with-lease origin feature-x خنثیکردن تغییرات ⤢ git restoreتغییرهای working tree را دور میریزد، یا آنها را unstage میکند. git restore src/app.ts ⤢ git restore --stagedیک فایل را unstage میکند و ویرایشهایش را در working tree نگه میدارد. git restore --staged src/app.ts ⤢ git resetنوک شاخه فعلی و در صورت تمایل index را جابهجا میکند. git reset --hard HEAD~1 ⤢ git revertیک commit جدید میسازد که commitی قبلی را خنثی میکند (برای اشتراک امن). git revert HEAD ⤢ git cleanفایلها و پوشههای ردیابینشده را حذف میکند. git clean -fd کنار گذاشتن کار (stash) ⤢ git stashکار commitنشده را ذخیره و working tree را بازنشانی میکند. git stash -u ⤢ git stash listهمه stashهایی را که ذخیره کردهاید نشان میدهد. git stash list ⤢ git stash applyیک stash را دوباره اعمال میکند و آن را در فهرست نگه میدارد. git stash apply stash@{1} ⤢ git stash dropیک stash را که دیگر لازم نیست حذف میکند. git stash drop stash@{1} ⤢ git stash popجدیدترین stash را دوباره اعمال و سپس حذف میکند. git stash pop فایلها و زیرماژولها ⤢ git mvیک فایل را جابهجا یا تغییر نام میدهد و تغییر را stage میکند. git mv old.ts src/new.ts ⤢ git rmیک فایل را حذف و حذفش را stage میکند. git rm src/old.ts ⤢ git submoduleیک مخزن دیگر را بهصورت پوشهای درون این مخزن ردیابی میکند. git submodule add git@github.com:org/lib.git lib ⤢ git sparse-checkoutفقط پوشههایی را که نام میبرید از یک مخزن بزرگ checkout میکند. git sparse-checkout set src docs ⤢ git archiveدرخت یک commit را بهصورت فایل tar یا zip برونبری میکند. git archive -o repo.zip HEAD