-
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 in Visual Studio)
- A1.3 گیت در Visual Studio Code (Git in Visual Studio Code)
- A1.4 گیت در IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine (Git in IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine)
- A1.5 گیت در Sublime Text (Git in Sublime Text)
- A1.6 گیت در بش (Git in Bash)
- A1.7 گیت در Zsh (Git in Zsh)
- A1.8 گیت در 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)
A3.9 پیوست C: دستورات گیت (Git Commands) - ایمیل (Email)
ایمیل (Email)
بسیاری از پروژههای گیت، از جمله خودِ گیت، بهطور کامل از طریق فهرستهای پستی (mailing list) نگهداری میشوند. گیت چندین ابزار درونی دارد که این فرآیند را آسانتر میکند؛ از تولید پَچهایی که بتوانید بهراحتی ایمیل کنید تا اعمال آن پَچها از صندوق پستی.
اعمال پچ (git apply)
دستور git apply یک پچ ایجادشده با دستور git diff یا حتی با دستور GNU diff را اعمال میکند. این شبیه کاری است که دستور patch انجام میدهد با چند تفاوت کوچک.
ما نحوه استفاده از آن و موقعیتهایی که ممکن است از آن استفاده کنید را در اعمال اصلاحات از طریق ایمیل (Applying Patches from Email) نشان دادهایم.
اعمال پچ از ایمیل (git am)
دستور git am برای اعمال پچها از صندوق ایمیل استفاده میشود، بهطور مشخص صندوقهایی با فرمت mbox. این برای دریافت پچها از طریق ایمیل و اعمال آسان آنها در پروژهتان مفید است.
ما استفاده و جریان کاری پیرامون git am را در اعمال پچ با am
(Applying a Patch with am
) پوشش دادهایم، از جمله استفاده از گزینههای --resolved، -i و -3.
همچنین تعدادی هوک وجود دارد که میتوانید برای کمک به جریان کاری پیرامون git am از آنها استفاده کنید و همهٔ آنها در قلابهای جریان کاری ایمیل (Email Workflow Hooks) بررسی شدهاند.
ما همچنین از آن برای اعمال تغییرات فرمتشدهٔ پچِ درخواستهای Pull در گیتهاب در اعلانهای ایمیلی (Email Notifications) استفاده میکنیم.
ایجاد پچها برای ارسال (git format-patch)
دستور git format-patch
برای تولید مجموعهای از پچها در فرمت mbox بهکار میرود که میتوانید آنها را بهصورت درست فرمتشده برای یک فهرست پستی ارسال کنید.
ما یک مثال از مشارکت در یک پروژه با استفاده از ابزار git format-patch
را در پروژه عمومی از طریق ایمیل (Public Project over Email) بررسی میکنیم.cached
ارسال پچ از طریق IMAP (git imap-send)
دستور git imap-send یک صندوق پستی تولیدشده با git format-patch را در یک پوشهٔ پیشنویس IMAP آپلود میکند.
ما یک مثال از مشارکت در یک پروژه با ارسال پچها با ابزار git imap-send را در پروژه عمومی از طریق ایمیل (Public Project over Email) مرور میکنیم.
ارسال پچ از طریق ایمیل (git send-email)
دستور git send-email برای ارسال پچهایی که با git format-patch تولید شدهاند از طریق ایمیل استفاده میشود.
ما یک مثال از مشارکت در یک پروژه با ارسال پچها با ابزار git send-email را در پروژه عمومی از طریق ایمیل (Public Project over Email) بررسی میکنیم.
درخواست کشش برای مخزن دیگر (git request-pull)
دستور git request-pull فقط برای تولید یک متن نمونه برای ایمیل فرستادن به کسی استفاده میشود. اگر شاخهای روی یک سرور عمومی دارید و میخواهید به کسی بگویید چگونه آن تغییرات را ادغام کند بدون اینکه پچها را از طریق ایمیل بفرستید، میتوانید این دستور را اجرا کرده و خروجی را برای شخصی که میخواهید تغییرات را pull کند ارسال کنید.
نحوه استفاده از git request-pull برای تولید پیام pull را در پروژهی عمومی فورک شده (Forked Public Project) نشان دادهایم.