-
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)
4.7 گیت روی سرور (Git on the server) - گیتوب (GitWeb)
گیتوب (GitWeb)
حال که به پروژهتان دسترسی پایهای خواندن/نوشتن و فقط خواندنی دارید، ممکن است بخواهید یک نمایشگر ساده مبتنی بر وب راهاندازی کنید. گیت همراه با یک اسکریپت CGI به نام GitWeb عرضه میشود که گاهی برای این منظور استفاده میشود.

اگر میخواهید ببینید GitWeb برای پروژهتان چگونه خواهد بود، گیت دستوری دارد که میتواند یک نمونه موقت راهاندازی کند، البته به شرطی که وبسرور سبکی مانند lighttpd
یا webrick
روی سیستمتان نصب باشد.
در سیستمهای لینوکس، معمولاً lighttpd
نصب است، پس ممکن است با تایپ کردن git instaweb
در پوشه پروژهتان بتوانید آن را اجرا کنید.
اگر از macOS استفاده میکنید، نسخه Leopard به صورت پیشفرض Ruby دارد، پس احتمالاً webrick
بهترین گزینه برای شماست.
برای راهاندازی instaweb
با یک وبسرور غیر از lighttpd میتوانید از گزینه --httpd
استفاده کنید.
$ git instaweb --httpd=webrick
[2009-02-21 10:02:21] INFO WEBrick 1.3.1
[2009-02-21 10:02:21] INFO ruby 1.8.6 (2008-03-03) [universal-darwin9.0]
این دستور یک سرور HTTPD روی پورت ۱۲۳۴ راهاندازی میکند و به طور خودکار یک مرورگر وب را باز میکند که صفحه مربوطه را نمایش میدهد.
کار سادهای است.
وقتی کارتان تمام شد و میخواهید سرور را خاموش کنید، میتوانید همان دستور را با گزینه --stop
اجرا کنید.
$ git instaweb --httpd=webrick --stop
اگر میخواهید رابط وب را دائماً روی یک سرور برای تیمتان یا پروژه متنباز میزبانیشده راهاندازی کنید، باید اسکریپت CGI را طوری تنظیم کنید که توسط وبسرور معمولی شما سرو شود.
برخی توزیعهای لینوکس بستهای به نام gitweb
دارند که ممکن است بتوانید با apt
یا dnf
آن را نصب کنید، پس بهتر است ابتدا این روش را امتحان کنید.
ما به سرعت نصب دستی GitWeb را مرور میکنیم.
ابتدا باید کد منبع گیت را دریافت کنید که GitWeb همراه آن است و سپس اسکریپت CGI سفارشی را بسازید:
$ git clone https://git.kernel.org/pub/scm/git/git.git
$ cd git/
$ make GITWEB_PROJECTROOT="/srv/git" prefix=/usr gitweb
SUBDIR gitweb
SUBDIR ../
make[2]: `GIT-VERSION-FILE' is up to date.
GEN gitweb.cgi
GEN static/gitweb.js
$ sudo cp -Rf gitweb /var/www/
توجه کنید که باید به دستور بگویید مخازن گیت شما کجا قرار دارند، با استفاده از متغیر GITWEB_PROJECTROOT
.
حالا باید به آپاچی بگویید که از CGI برای این اسکریپت استفاده کند، برای این کار میتوانید یک VirtualHost اضافه کنید:
<VirtualHost *:80>
ServerName gitserver
DocumentRoot /var/www/gitweb
<Directory /var/www/gitweb>
Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
AllowOverride All
order allow,deny
Allow from all
AddHandler cgi-script cgi
DirectoryIndex gitweb.cgi
</Directory>
</VirtualHost>
دوباره تأکید میکنیم که GitWeb را میتوان با هر وبسرور دارای قابلیت CGI یا Perl سرو کرد؛ اگر ترجیح میدهید از چیز دیگری استفاده کنید، راهاندازی آن دشوار نخواهد بود.
در این مرحله باید بتوانید با مراجعه به آدرس http://gitserver/
مخازن خود را به صورت آنلاین مشاهده کنید.