-
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)
A3.2 پیوست C: دستورات گیت (Git Commands) - گرفتن و ایجاد پروژهها (Getting and Creating Projects)
گرفتن و ایجاد پروژهها (Getting and Creating Projects)
دو راه برای بهدست آوردن یک مخزن Git وجود دارد. یکی کپیکردن آن از یک مخزن موجود روی شبکه یا مکان دیگری است و دیگری ایجاد یک مخزن جدید در یک شاخهٔ موجود است.
ایجاد مخزن گیت (git init)
برای تبدیل یک دایرکتوری به یک مخزن Git جدید تا بتوانید نسخهدهی را آغاز کنید، کافی است git init
را اجرا کنید.
ما ابتدا این را در گرفتن یک مخزن گیت (Getting a Git Repository) معرفی میکنیم، جایی که ایجاد یک مخزن کاملاً جدید برای شروع کار را نشان میدهیم.
بهطور خلاصه دربارهٔ چگونگی تغییر نام شاخهٔ پیشفرض از «master» در شاخههای راه دور (Remote Branches) صحبت کردهایم.
ما از این دستور برای ایجاد یک مخزن خالی و bare برای یک سرور در قرار دادن مخزن خالی روی سرور (Putting the Bare Repository on a Server) استفاده میکنیم.
در نهایت، برخی از جزئیات کارهایی که در پشت صحنه انجام میدهد را در ابزارها و دستورات سطح پایین (Plumbing and Porcelain) بررسی میکنیم.
کلون گرفتن از گیت (git clone)
دستور git clone
در واقع نوعی پوسته (wrapper) بر چندین دستور دیگر است.
این دستور یک دایرکتوری جدید میسازد، وارد آن میشود و با اجرای git init
آن را به یک مخزن خالی گیت تبدیل میکند، یک remote (با git remote add
) به آدرسی که به آن میدهید اضافه میکند (بهطور پیشفرض با نام origin
)، از آن مخزن remote یک git fetch
اجرا میکند و سپس آخرین commit را با git checkout
در شاخه کاری شما (working directory) چکاوت میکند.
دستور git clone
در سرتاسر کتاب در دهها جا استفاده شده است، اما ما فقط چند مورد جالب را ذکر میکنیم.
در اصل در کلون کردن یک مخزن موجود (Cloning an Existing Repository) معرفی و توضیح داده شده است، جایی که چند مثال را مرور میکنیم.
در راهاندازی گیت روی یک سرور (Getting Git on a Server) گزینه --bare
را برای ساختن یک نسخه از مخزن گیت بدون شاخه کاری بررسی میکنیم.
در بستهبندی (Bundling) از آن برای خارجسازی (unbundle) یک مخزن گیت بستهبندیشده (bundled) استفاده میکنیم.
در نهایت، در کلون کردن یک پروژه با سابماژولها (Cloning a Project with Submodules) با گزینه --recurse-submodules
آشنا میشویم تا کلونکردن یک مخزن حاوی submoduleها سادهتر شود.
گرچه در بسیاری از بخشهای دیگر کتاب نیز استفاده شده است، این موارد تا حدی منحصر به فرد هستند یا در آنها به شیوههایی کمی متفاوت به کار رفته است.