-
1. شروع به کار
- 1.1 دربارهٔ کنترل نسخه
- 1.2 تاریخچهٔ کوتاهی از گیت
- 1.3 گیت چیست؟
- 1.4 خط فرمان
- 1.5 نصب گیت
- 1.6 اولین راهاندازی گیت
- 1.7 کمک گرفتن
- 1.8 خلاصه
-
2. مقدمات گیت
- 2.1 دستیابی به یک مخزن گیت
- 2.2 ثبت تغییرات در مخزن
- 2.3 دیدن تاریخچهٔ کامیتها
- 2.4 بازگردانی کارها
- 2.5 کار با ریموتها
- 2.6 برچسبگذاری
- 2.7 نامهای مستعار در گیت
- 2.8 خلاصه
-
3. شاخهسازی در گیت
- 3.1 شاخهها در یک کلمه
- 3.2 شاخهسازی و ادغام مقدماتی
- 3.3 مدیریت شاخه
- 3.4 روند کاری شاخهسازی
- 3.5 شاخههای ریموت
- 3.6 ریبیسکردن
- 3.7 خلاصه
-
4. گیت روی سرور
- 4.1 پروتکلها
- 4.2 راهاندازی گیت در سرور
- 4.3 ساختن کلید عمومی SSH
- 4.4 نصب و راهاندازی سرور
- 4.5 دیمن گیت
- 4.6 HTTP هوشمند
- 4.7 گیتوب
- 4.8 گیتلب
- 4.9 گزینههای شخصی ثالث میزبانی شده
- 4.10 خلاصه
-
5. گیت توزیعشده
- 5.1 روندهای کاری توزیعشده
- 5.2 مشارکت در یک پروژه
- 5.3 نگهداری یک پروژه
- 5.4 خلاصه
-
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. Customizing Git
- 8.1 Git Configuration
- 8.2 Git Attributes
- 8.3 Git Hooks
- 8.4 An Example Git-Enforced Policy
- 8.5 Summary
-
9. Git and Other Systems
- 9.1 Git as a Client
- 9.2 Migrating to Git
- 9.3 Summary
-
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 Git in Visual Studio Code
- A1.4 Git in Eclipse
- A1.5 Git in IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine
- A1.6 Git in Sublime Text
- A1.7 Git in Bash
- A1.8 Git in Zsh
- A1.9 Git in PowerShell
- A1.10 Summary
-
A2. پیوست B: Embedding Git in your Applications
- A2.1 Command-line Git
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
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 گیت روی سرور - گیتوب
گیتوب
حالا که دسترسیهای ابتدایی خواندن/نوشتن و فقط-خواندنی را به پروژه خود را دارید، شاید بخواهید محیط بصریساز سادهٔ وب-پایهای هم نصب کنید. گیت با اسکریپت CGI با نام گیتوب همراه است که گاهی برای این مقصود استفاده میشود.
اگر میخواهید ببینید که گیتوب برای پروژه شما به چه صورت خواهد بود، گیت با دستوری برای اجرای یک نمونه موقت همراه است، در صورتی که وب سروری سبک مانند lighttpd
یا webrick
روی سیستم خود دارید.
بر روی سیستمهای لینوکسی، وب سرور lighttpd
معمولاً نصب است، بنابراین احتمالاً باید بتوانید با تایپ دستور git instaweb
در پوشه پروژه خود آنرا اجرا کنید.
اگر سیستمعامل مک دارید، 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
نصب کنید، بنابراین ابتدا ممکن است بخواهید آنرا امتحان کنید.
قدم به قدم نصب دستی گیتوب را با هم مروری سریع میکنیم.
ابتدا، لازم است که سورس کد گیت را داشته باشید، که گیتوب با آن ارائه میشود، و اسکریپت شخصیسازی شده CGI را بسازید:
$ git clone git://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_PROJCETROOT
، مشخص کنید که کجا مخازن گیت را پیدا کند.
حالا، لازم است که آپاچی را وادار به استفاده از 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>
مجدداً، گیتوب میتواند با هر وب سروری با قابلیت CGI یا پرل ارائه شود؛ اگر ترجیح میدهید از چیز دیگری استفاده کنید، نباید راهاندازی سختی داشته باشد.
اکنون، باید بتوانید به آدرس http://gitserver/
مراجعه کنید تا مخزن خود را آنلاین مشاهده کنید.