-
1. شروع به کار (getting started)
-
2. مقدمات گیت (git basics chapter)
- 2.1 گرفتن یک مخزن گیت (Getting a Git Repository)
- 2.2 ثبت تغییرات در مخزن (Recording Changes to the Repository)
- 2.3 مشاهده تاریخچه کامیتها (Viewing the Commit History)
- 2.4 بازگرداندن تغییرات (Undoing Things)
- 2.5 کار کردن با ریموت ها (Working with Remotes)
- 2.6 تگ کردن (Tagging)
- 2.7 نام مستعار گیت (Git Aliases)
- 2.8 خلاصه (summary)
-
3. انشعابگیری در گیت (Git Branching)
-
4. گیت روی سرور (Git on the server)
- 4.1 پروتکلها (The Protocols)
- 4.2 راهاندازی گیت روی یک سرور (Getting Git on a Server)
- 4.3 ایجاد کلید عمومی SSH شما (Generating Your SSH Public Key)
- 4.4 نصب و راهاندازی سرور (Setting up server)
- 4.5 سرویسدهنده گیت (Git Daemon)
- 4.6 HTTP هوشمند (Smart HTTP)
- 4.7 گیتوب (GitWeb)
- 4.8 گیتلب (GitLab)
- 4.9 گزینههای میزبانی شخص ثالث (Third Party Hosted Options)
- 4.10 خلاصه (Summary)
-
5. گیت توزیعشده (Distributed git)
-
6. GitHub (گیت هاب)
-
7. ابزارهای گیت (Git Tools)
- 7.1 انتخاب بازبینی (Revision Selection)
- 7.2 مرحلهبندی تعاملی (Interactive Staging)
- 7.3 ذخیره موقت و پاکسازی (Stashing and Cleaning)
- 7.4 Signing Your Work (امضای کارهای شما)
- 7.5 جستجو (Searching)
- 7.6 بازنویسی تاریخچه (Rewriting History)
- 7.7 بازنشانی به زبان ساده (Reset Demystified)
- 7.8 ادغام پیشرفته (Advanced Merging)
- 7.9 بازاستفاده خودکار از حل تضادها (Rerere)
- 7.10 اشکالزدایی با گیت (Debugging with Git)
- 7.11 سابماژول ها (Submodules)
- 7.12 بستهبندی (Bundling)
- 7.13 جایگزینی (Replace)
- 7.14 ذخیرهسازی اطلاعات ورود (Credential Storage)
- 7.15 خلاصه (Summary)
-
8. سفارشیسازی Git (Customizing Git)
-
9. گیت و سیستمهای دیگر (Git and Other Systems)
-
10. (Git Internals)
- 10.1 ابزارها و دستورات سطح پایین (Plumbing and Porcelain)
- 10.2 اشیا گیت (Git Objects)
- 10.3 مراجع گیت (Git References)
- 10.4 فایلهای بسته (Packfiles)
- 10.5 نگاشت (The Refspec)
- 10.6 پروتکلهای انتقال (Transfer Protocols)
- 10.7 نگهداری و بازیابی دادهها (Maintenance and Data Recovery)
- 10.8 متغیرهای محیطی (Environment Variables)
- 10.9 (Summary)
-
A1. پیوست A: گیت در محیطهای دیگر (Git in Other Environments)
- A1.1 رابط های گرافیکی (Graphical Interfaces)
- A1.2 Git در ویژوال استودیو (Git in Visual Studio)
- A1.3 Git در Visual Studio Code (Git in Visual Studio Code)
- A1.4 Git در IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine (Git in IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine)
- A1.5 Git در Sublime Text (Git in Sublime Text)
- A1.6 گیت در بش (Git in Bash)
- A1.7 Git در Zsh (Git in Zsh)
- A1.8 Git در PowerShell (Git in PowerShell)
- A1.9 خلاصه (Summary)
-
A2. پیوست B: گنجاندن گیت در برنامههای شما (Embedding Git in your Applications)
-
A3. پیوست C: دستورات گیت (Git Commands)
- A3.1 تنظیم و پیکربندی (Setup and Config)
- A3.2 گرفتن و ایجاد پروژهها (Getting and Creating Projects)
- A3.3 نمونهبرداری پایهای (Basic Snapshotting)
- A3.4 انشعابگیری و ادغام (Branching and Merging)
- A3.5 بهاشتراکگذاری و بهروزرسانی پروژهها (Sharing and Updating Projects)
- A3.6 بازرسی و مقایسه (Inspection and Comparison)
- A3.7 عیبیابی (Debugging)
- A3.8 اعمال تغییرات به صورت پچ (Patching)
- A3.9 ایمیل (Email)
- A3.10 سیستمهای خارجی (External Systems)
- A3.11 مدیریت (Administration)
- A3.12 دستورات سطح پایین گیت (Plumbing Commands)
A1.7 پیوست A: گیت در محیطهای دیگر (Git in Other Environments) - Git در Zsh (Git in Zsh)
Git در Zsh (Git in Zsh)
Zsh همچنین همراه با یک کتابخانه تکمیل تب برای Git عرضه میشود.
برای استفاده از آن، کافی است در فایل .zshrc
خود دستور autoload -Uz compinit && compinit
را اجرا کنید.
رابط Zsh کمی قدرتمندتر از Bash است:
$ git che<tab>
check-attr -- display gitattributes information
check-ref-format -- ensure that a reference name is well formed
checkout -- checkout branch or paths to working tree
checkout-index -- copy files from index to working directory
cherry -- find commits not merged upstream
cherry-pick -- apply changes introduced by some existing commits
تکمیلهای تب مبهم فقط فهرست نمیشوند؛ توضیحات مفیدی دارند و میتوانید با فشردن مکرر تب بهصورت گرافیکی در فهرست جابهجا شوید. این قابلیت برای دستورات Git، آرگومانهای آنها و نامهای اشیاء داخل مخزن (مثل refs و remotes)، همچنین نام فایلها و همه چیزهای دیگری که Zsh میتواند با تب تکمیل کند، کار میکند.
Zsh همراه با یک چارچوب برای گرفتن اطلاعات از سیستمهای کنترل نسخه به نام vcs_info
عرضه میشود.
برای نمایش نام شاخه در سمت راست پرامپت، این خطوط را به فایل ~/.zshrc
خود اضافه کنید:
autoload -Uz vcs_info
precmd_vcs_info() { vcs_info }
precmd_functions+=( precmd_vcs_info )
setopt prompt_subst
RPROMPT='${vcs_info_msg_0_}'
# PROMPT='${vcs_info_msg_0_}%# '
zstyle ':vcs_info:git:*' formats '%b'
این باعث میشود هرگاه شل شما داخل یک مخزن Git باشد، شاخه فعلی در سمت راست پنجره ترمینال نمایش داده شود.
البته نمایش در سمت چپ نیز پشتیبانی میشود؛ فقط تکهای که مقداردهی PROMPT
را غیرفعال کردهاید، فعال کنید.
این بهشکل تقریبی شبیه خواهد بود:

zsh
promptبرای اطلاعات بیشتر درباره vcs_info
، مستندات آن را در صفحه راهنمای zshcontrib(1)
ببینید یا بهصورت آنلاین در https://zsh.sourceforge.io/Doc/Release/User-Contributions.html#Version-Control-Information مراجعه کنید.
بهجای vcs_info
ممکن است اسکریپت سفارشیسازی پرامپت که همراه Git عرضه میشود و git-prompt.sh
نام دارد را ترجیح دهید؛ برای جزئیات به https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh مراجعه کنید.
git-prompt.sh
با هر دو شل Bash و Zsh سازگار است.
Zsh آنقدر قدرتمند است که چارچوبهای کاملی برای بهتر کردن آن وجود دارد. یکی از آنها "oh-my-zsh" نام دارد و در https://github.com/ohmyzsh/ohmyzsh قابل دسترسی است. سیستم پلاگین oh-my-zsh همراه با تکمیل تب قدرتمند برای Git عرضه میشود و مجموعهای از "قالبهای" پرامپت را دارد که بسیاریشان اطلاعات کنترل نسخه را نمایش میدهند. An example of an oh-my-zsh theme تنها یکی از نمونههای کاری است که میتوان با این سیستم انجام داد.
