-
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.8 پیوست A: گیت در محیطهای دیگر (Git in Other Environments) - Git در PowerShell (Git in PowerShell)
Git در PowerShell (Git in PowerShell)
ترمینال قدیمی Windows (cmd.exe
) تجربه کار با Git سفارشیشده را فراهم نمیکند، اما اگر از PowerShell استفاده میکنید، خوششانس هستید.
این روش حتی در PowerShell Core روی Linux یا macOS نیز کار میکند.
یک پکیج به نام posh-git ([GitHub link](https://github.com/dahlbyk/posh-git)) امکانات قدرتمند tab-completion و همچنین یک prompt پیشرفته ارائه میدهد تا بتوانید وضعیت repository خود را بهخوبی دنبال کنید.

نصب (Installation)
پیشنیازها (فقط Windows) (Prerequisites (Windows only))
قبل از اجرای PowerShell scripts باید ExecutionPolicy
محلی خود را روی RemoteSigned
تنظیم کنید (یعنی هر چیزی به جز Undefined
و Restricted
).
اگر AllSigned
را انتخاب کنید، حتی local scripts (سایر اسکریپتهای خودتان) هم باید دیجیتالی امضا شده باشند تا اجرا شوند.
با RemoteSigned
تنها اسکریپتهایی که ZoneIdentifier
آنها روی Internet (دانلود از وب) تنظیم شده، نیاز به امضا دارند.
اگر شما administrator هستید و میخواهید این تنظیم برای همه کاربران اعمال شود، از -Scope LocalMachine
استفاده کنید.
اگر کاربر عادی هستید، بدون دسترسی مدیریتی، میتوانید از -Scope CurrentUser
برای اعمال تنها روی خودتان استفاده کنید.
اطلاعات بیشتر درباره PowerShell Scopes: https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_scopes.
اطلاعات بیشتر درباره PowerShell ExecutionPolicy: https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy.
برای تنظیم مقدار ExecutionPolicy
روی RemoteSigned
برای همه کاربران از فرمان زیر استفاده کنید:
> Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned -Force
مخزن PowerShell (PowerShell Gallery)
اگر حداقل PowerShell 5 یا PowerShell 4 همراه با PackageManagement را دارید، میتوانید از مدیر بسته برای نصب posh-git استفاده کنید.
اطلاعات بیشتر درباره PowerShell Gallery: https://learn.microsoft.com/en-us/powershell/scripting/gallery/overview.
> Install-Module posh-git -Scope CurrentUser -Force
> Install-Module posh-git -Scope CurrentUser -AllowPrerelease -Force # Newer beta version with PowerShell Core support
اگر میخواهید posh-git را برای همه کاربران نصب کنید، بهجای آن از -Scope AllUsers استفاده کنید و فرمان را از یک کنسول PowerShell با دسترسی مدیر اجرا کنید. اگر فرمان دوم با خطایی مانند Module 'PowerShellGet' was not installed by using Install-Module مواجه شد، ابتدا باید فرمان دیگری را اجرا کنید:
> Install-Module PowerShellGet -Force -SkipPublisherCheck
سپس میتوانید برگردید و دوباره تلاش کنید. این اتفاق میافتد زیرا ماژولهایی که همراه با Windows PowerShell عرضه میشوند با گواهی انتشار متفاوتی امضا شدهاند.
بروزرسانی پوسته PowerShell (Update PowerShell Prompt)
برای گنجاندن اطلاعات Git در پرامپت، باید ماژول posh-git وارد (import) شود. برای اینکه posh-git هر بار که PowerShell اجرا میشود وارد شود، فرمان Add-PoshGitToProfile را اجرا کنید که عبارت import را در اسکریپت $profile شما اضافه میکند. این اسکریپت هر بار که یک کنسول جدید PowerShell باز میکنید اجرا میشود. بهخاطر داشته باشید که چندین اسکریپت $profile وجود دارد؛ برای مثال یکی برای کنسول و یکی جدا برای ISE.
> Import-Module posh-git
> Add-PoshGitToProfile -AllHosts
از منبع (From Source)
فایل انتشار posh-git را از https://github.com/dahlbyk/posh-git/releases دانلود و از حالت فشرده خارج کنید. سپس ماژول را با استفاده از مسیر کامل فایل posh-git.psd1 وارد کنید:
> Import-Module <path-to-uncompress-folder>\src\posh-git.psd1
> Add-PoshGitToProfile -AllHosts
این خط مناسب را به فایل profile.ps1 شما اضافه میکند و posh-git دفعه بعد که PowerShell را باز کنید فعال خواهد بود.
برای توضیحی درباره خلاصه وضعیت Git که در پرامپت نشان داده میشود، مراجعه کنید به: https://github.com/dahlbyk/posh-git/blob/master/README.md#git-status-summary-information برای جزئیات بیشتر درباره نحوه سفارشیسازی پرامپت posh-git به: https://github.com/dahlbyk/posh-git/blob/master/README.md#customization-variables رجوع کنید.