سرفصل‌های آموزشی
آموزش کاربردی گیت برای برنامه نویسان
برگه ی تقلب Git

برگه ی تقلب Git

برای بهبود گردش کارتان از این برگه تقلب (cheat sheet) سودمند git استفاده کنید. وقتی در لحظه نمی توانید یک دستور را به یاد بیاورید یا نمی خواهید از git help در خط فرمان استفاده کنید، این برگه تقلب git  باعث صرفه جویی در وقتتان می شود. به خاطر سپردن تمام دستورهای مهم git کار سختی است، پس این نسخه را چاپ کنید یا آن را در دسک تاپ خود ذخیره کنید تا وقتی دچار مشکل شدید؛ به آن مراجعه کنید. این برگه هم دستورهای پایه ای git و هم مفاهیم پیشرفته تر در مورد شاخه های git، مخازن remote، لغو تغییرات و موارد دیگر را شامل می شود.

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

 

دستورات پایه ای GITGIT BASICS
یک مخزن git خالی در مسیر مشخص شده ایجاد می کند. برای آن که مسیر فعلی، مخزن اولیه git شناخته شود؛ این دستور را بدون هیچ ورودی ای اجرا کنید.

<git init <directory

مخزن واقع در <repo> را به دستگاه محلی، clone می کند. <repo> اصلی را می توان از طریق HTTP یا SSH در سیستم فایل محلی یا یک دستگاه remote قرار داد.

<git clone <repo>

نام نویسنده را تعریف می کند تا برای همه commit ها، در مخزن فعلی استفاده شود. توسعه دهندگان به طور معمول از پرچم global-- برای تنظیم گزینه های پیکربندی، برای کاربر فعلی استفاده می کنند.

git config user.name <name>

تمام تغییرها در <directory>را برای commit بعدی stage می کند. برای تغییر یک فایل خاص، <directory> را با یک <file> جایگزین کنید.

git add <directory>

تغییرها قرار گرفته در stage را commit می کند؛ اما به جای راه اندازی ویرایشگر متن، از <message> به عنوان پیام commit استفاده کنید.

git commit -m "<message>"

لیستی از فایل های staged، unstaged و ردیابی نشده ارائه می دهد.

git status

با استفاده از فرمت پیش فرض، کل تاریخچه commit ها را نشان می دهد.

برای شخصی سازی بقیه گزینه ها را ببینید.

git log

تغییرات stage نشده بین مسیر کاری و index تان را نشان می دهد.

git diff

   

*توجه: در تمامی دستورات عبارات داخل تگ (< >) را با مقدار اصلی مربوط به پروژه خودتان جایگزین کنید.

لغو تغییرات UNDOING CHANGES
یک commit جدید ایجاد کرده که تمامی تغییرات ایجاد شده در  <commit> را لغو می کند، سپس آن را به شاخه فعلی اعمال می کند.

git revert <commit>

<file> را از ناحیه stage حذف می کند اما مسیر مربوطه را بدون تغییر می گذارد. یک فایل را بدون اضافه کردن هیچ تغییری unstage می کند.

git reset <file>

فایل هایی را که از مسیر کاری حذف می شوند، نشان می دهد. برای اجرای تمیز از پرچم -f به جای پرچم -n استفاده کنید.

git clean -n

بازنویسی تاریخچه GITREWITING GIT HISTORY
commit آخر را با تغییرات stage شده و آخرین commit ترکیب شده، جایگزین می کند. برای ویرایش پیام commit آخر به همراه stage خالی استفاده کنید. 

git commit --amend

شاخه فعلی را روی <base>، قرار می دهد (rebase می کند). <base> می تواند شناسه commit، نام شاخه، یک برچسب یا مرجع وابسته به HEAD باشد.

git rebase <base>

ثبت تغییرها در HEAD مخزن محلی را نشان می دهد. برای نمایش اطلاعات تاریخ، پرچم –relative-date یا برای نمایش همه منابع پرچم –all را اضافه کنید.

git reflog

شاخه های GITGIT BRANCHES
همه شاخه های موجود در مخزن را لیست می کند. برای ایجاد شاخه جدید با نام <branch> در ادامه دستور <branch> را اضافه کنید.

git branch

یک شاخه با نام <branch> ایجاد و checkout می کند. پرچم -b را حذف کنید تا شاخه موجود checkout شود. 

git checkout -b <branch>

<branch> را به شاخه فعلی ادغام می کند.

git merge <branch>

مخزن های REMOTEREMOTE REPOSIRORIES
یک connection جدید با یک مخزن remote جدید برقرار می کند. بعد از افزودن یک remote می توانید با استفاده از <name> به عنوان یک میانبر برای <url> در دستورها دیگر استفاده کنید.git remote add <name> <url>  
شاخه مشخصی (با نام <branch>) را از مخزن دریافت می کند. برای گرفتن همه منابع از remote، <branch> (نام شاخه) را حذف کنید.

git fetch <remote> <branch>

یک نسخه از شاخه فعلی مخزن remote دریافت کرده و بلافاصله آن را در نسخه local ادغام می کند.

git pull <remote>

شاخه را همراه commit ها به مخزن <remote>، push می کند. در صورت نبود شاخه در مخزن remote، آن را ایجاد می کند.

git push <remote> <branch>

پیکربندی GITGIT CONFIG
نام نویسنده را مشخص می کند تا برای همه commit های کابر استفاده شود.

git config --global user.name <name>

ایمیل نویسنده را مشخص می کند تا برای همه commit های کابر استفاده شود.

git config --global user.email <email>

برای یک دستور git، میانبر ایجاد می کند. برای مثال دستور

alias.glog “log --graph --oneline”,  

alias.glog

را برابر با

 git log --graph –oneline 

تنظیم می کند.

git config --global alias <alias-name> <git-command>

ویرایشگر متن استفاده شده با دستورها را برای همه کاربران دستگاه، تنظیم می کند. <editor> باید دستوری باشد که ویرایشگر مورد نظر را راه اندازی می کند (برای مثال vi).

git config --system core.editor <editor>

فایل پیکربندی global را در یک ویرایشگر متن برای ویرایش دستی باز می کند.

git config --global --edit

GIT LOG

تعداد commit ها را با استفاده از <limit> محدود می کند. برای مثال

”git log -5” به نمایش پنج commit محدود خواهد شد.

git log -<limit>

هر commit   را به یک خط محدود می کند.

git log --oneline

تفاوت کامل هر commit را نمایش می دهد.

git log -p

شامل فایل هایی که تغییر داده شده اند و تعداد نسبی خطوطی که در هر یک از آن ها اضافه یا حذف شده است، می شود.

git log --stat

commit های مربوط به یک نویسنده خاص را جستجو می کند.

git log --author=”<pattern>”

commit هایی که پیام آن ها با <pattern> مطابقت دارند را جستجو می کند.

git log --grep=”<pattern>”

commit هایی را که بین  <since> و <until> رخ داده اند را نمایش می دهد. ورودی ها می توانند شناسه یک commit، نام شاخه، HEAD یا هر نوع مرجع قابل بازبینی ای باشد.

git log <since>..<until>

فقط commit های مربوط به فایل مشخص شده را نمایش می دهد.

git log -- <file>

پرچم --graph یک نمودار مبتنی بر متن از commit ها در سمت چپ پیام های commit ها می کشد. --decorate نام شاخه ها یا برچسب های commit های نشان داده شده را اضافه می کند.

git log --graph --decorate

GIT DIFF
تفاوت های بین مسیر کاری و آخرین commit را نشان می دهد.

git diff HEAD

تفاوت های بین تغییرهای stage شده و آخرین commit را نشان می دهد.

git diff --cached

GIT RESET
ناحیه stage را مجدد تنظیم می کند تا با آخرین commit مطابقت داشته باشد.، اما مسیر کاری را بدون تغییر می گذارد.

git reset

ناحیه stage و مسیر مربوط به آن را مجدد تنظیم می کند تا با آخرین  commit مطابقت داشته باشد و همه تغییرها را در مسیر کاری بازنویسی می کند.

git reset --hard

شاخه فعلی را به قبل از <commit> منتقل می کند، ناحیه stage را دوباره تنظیم می کند تا مطابقت داشته باشد اما مسیر کاری را بدون تغییر می گذارد.

git reset <commit>

مانند دستور قبلی، اما هم ناحیه stage و هم مسیر کاری را دوباره تنظیم می کند. تغییرات commit نشده و تمام commit های بعد <commit> را حذف می کند.

git reset --hard <commit>

GIT REBASE
شاخه فعلی را مجدد روی <base> قرار می دهد. ویرایشگر را به جهت وارد کردن دستورها، برای چگونگی انتقال هر commit به base جدید راه اندازی می کند.

git -i <base>

GIT PULL
نسخه ای از شاخه فعلی remote را گرفته و آن را دوباره در نسخه محلی پایه گذاری می کند. برای یکی کردن شاخه ها به جای merge از git rebase استفاده کنید.

git pull --rebase <remote>

GIT PUSH
git push را را حتی اگر موجب یک merge به صورت non-fast-forward بشود، مجبور به اجرا می کند. از --force استفاده نکنید مگر اینکه از کاری که انجام می دهید مطمئن باشید.

git push <remote> --force

تمامی شاخه های محلی را به remote مشخص شده، push می کند.

git push <remote> --all

وقتی که یک شاخه را push می کنید یا از --all استفاده می کنید، برچسب ها خود به خود push نمی شوند. ولی استفاده از --tags تمام برچسب های  local شما را به مخزن remote می فرستد.

git push <remote> --tags

   

 

online-support-icon