Skip to content

Commit a01bb5d

Browse files
committed
Patch chapter 1
1 parent 4e60fd5 commit a01bb5d

File tree

8 files changed

+72
-72
lines changed

8 files changed

+72
-72
lines changed

book/01-introduction/sections/about-version-control.asc

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,21 @@
33
(((version control)))
44
«کنترل نسخه» چیست و چرا باید بدان پرداخت؟ کنترل نسخه سیستمی است که تغییرات را در فایل یا دسته‌ای از
55
فایل‌ها ذخیره می‌کند و به شما این امکان را می‌دهد که در آینده به نسخه و نگارش خاصی برگردید.
6-
برای مثال‌های این کتاب شما از سورس کد نرم‌افزار به عنوان فایل‌هایی که نسخه آنها کنترل می‌شود استفاده می‌کنید.
6+
برای مثال‌های این کتاب، شما از سورس کد نرم‌افزار به عنوان فایل‌هایی که نسخه آنها کنترل می‌شود استفاده می‌کنید.
77
اگرچه در واقع می‌توانید تقریباً از هر فایلی استفاده کنید.
88

99
اگر شما یک گرافیست یا طراح وب هستید و می‌خواهید نسخه‌های متفاوت از عکس‌ها و قالب‌های خود داشته باشید (که احتمالاً می‌خواهید)، یک سیستم کنترل نسخه (Version Control System (VCS)) انتخاب خردمندانه‌ای است.
10-
یک VCS به شما این امکان را می‌دهد که فایل‌های انتخابی یا کل پروژه را به یک حالت قبلی خاص برگردانید، روند تغییرات را بررسی کنید، ببینید چه کسی آخرین‌بار تغییری ایجاد کرده که احتمالاً مشکل آفرین شده،
10+
یک VCS به شما این امکان را می‌دهد که فایل‌های انتخابی یا کل پروژه را به یک حالت قبلی خاص برگردانید، روند تغییرات را بررسی کنید، ببینید چه کسی آخرین بار تغییری ایجاد کرده که احتمالاً مشکل آفرین شده،
1111
چه کسی، چه وقت مشکلی را اعلام کرده و...
12-
استفاده از یک VCS همچنین به این معناست که اگر شما در حین کار چیزی را خراب کردید و یا فایل‌هایی از دست رفت، به سادگی می توانید کارهای انجام شده را بازیابی نمایید.
12+
استفاده از یک VCS همچنین به این معناست که اگر شما در حین کار چیزی را خراب کردید و یا فایل‌هایی از دست رفت، به سادگی می‌توانید کارهای انجام شده را بازیابی نمایید.
1313
همچنین مقداری سربار به فایل‌های پروژه‌تان افزوده می‌شود.
1414

1515
==== سیستم‌های کنترل نسخهٔ محلی
1616

1717
(((version control,local)))
1818
روش اصلی کنترل نسخهٔ کثیری از افراد کپی کردن فایل‌ها به پوشه‌ای دیگر است (احتمالاً با تاریخ‌گذاری، اگر خیلی باهوش باشند).
1919
این رویکرد به علت سادگی بسیار رایج است هرچند خطا آفرینی بالایی دارد.
20-
فراموش کردن اینکه در کدام پوشه بوده‌اید و نوشتن اشتباهی روی فایل یا فایل‌هایی که نمی‌خواستید روی آن بنویسید بسیار ساده است.
20+
فراموش کردن اینکه در کدام پوشه بوده‌اید و نوشتن اشتباهی روی فایل یا فایل‌هایی که نمی‌خواستید روی آن بنویسید بسیار آسان است.
2121

2222
برای حل این مشکل، سال‌ها قبل VCSهای محلی را توسعه دادند که پایگاه داده‌ای ساده داشت که تمام تغییرات فایل‌های تحت مراقبتش را نگهداری می‌کرد.
2323

@@ -28,36 +28,35 @@ image::images/local.png[Local version control diagram]
2828
https://www.gnu.org/software/rcs/[RCS] با نگه داشتن مجموعه‌هایی از پچ‌ها (Patch/وصله) -- همان تفاوت‌های بین نگارش‌های گوناگون فایل‌ها -- در قالبی ویژه کار می‌کند؛
2929
پس از این، با اعمال پچ‌ها می‌تواند هر نسخه‌ای از فایل که مربوط به هر زمان دلخواه است را بازسازی کند.
3030

31-
==== سیستم‌های کنترل نسخهٔ‌ متمرکز
31+
==== سیستم‌های کنترل نسخهٔ متمرکز
3232

3333
(((version control,centralized)))
34-
چالش بزرگ دیگری که مردم با آن روبرو می شوند نیاز به همکاری با توسعه‌دهندگانی است که با سیستم‌های دیگر کار می‌کنند.
34+
چالش بزرگ دیگری که مردم با آن روبرو می‌شوند نیاز به همکاری با توسعه‌دهندگانی است که با سیستم‌های دیگر کار می‌کنند.
3535
دربرخورد با این چالش سیستم‌های کنترل نسخه متمرکز (Centralized Version Control System (CVCS)) ایجاد شدند.
36-
این قبیل سیستم‌ها (چون CVS، ساب‌ورژن و Preforce) یک سرور دارند که تمام فایل‌های نسخه‌بندی شده را در بر دارد و تعدادی کلاینت (Client/خدمت‌گیرنده)
36+
این قبیل سیستم‌ها (مثل CVS، ساب‌ورژن و Preforce) یک سرور دارند که تمام فایل‌های نسخه‌بندی شده را در بر دارد و تعدادی کلاینت (Client/خدمت‌گیرنده)
3737
که فایل‌هایی را از آن سرور چک‌اوت (Checkout/وارسی) می‌کنند. (((CVS)))(((Subversion)))(((Perforce))) سال‌های سال این روش استاندارد کنترل نسخه بوده است.
3838

3939
.کنترل نسخه متمرکز.
4040
image::images/centralized.png[Centralized version control diagram]
4141

4242

4343
این ساماندهی به ویژه برای VCSهای محلی منافع و مزایای بسیاری دارد. به طور مثال هر کسی به میزان مشخصی از فعالیت‌های دیگران روی پروژه آگاهی دارد.
44-
مدیریان دسترسی و کنترل مناسبی بر این دارند که چه کسی چه کاری می تواند انجام دهد؛
44+
مدیران دسترسی و کنترل مناسبی بر این دارند که چه کسی چه کاری می‌تواند انجام دهد؛
4545
همچنین مدیریت یک CVCS خیلی آسان‌تر از درگیری با پایگاه‌داده‌های محلی روی تک تک کلاینت‌هاست.
4646

47-
هرچند که این گونه ساماندهی معایب جدی نیز دارد. واضح‌ترین آن رخدادن خطا در سروری که نسخه‌ها در آن متمرکز شده است.
48-
اگر که سرور برای یک ساعت غیرفعال باشد، در طول این یک ساعت هیچ‌کس نمی تواند همکاری یا تغییراتی که انجام داده است را ذخیره نماید.
47+
هرچند که این گونه ساماندهی معایب جدی نیز دارد. واضح‌ترین آن رخدادن خطا در سروری که نسخه‌ها در آن متمرکز شده‌اند است.
48+
اگر که سرور برای یک ساعت غیرفعال باشد، در طول این یک ساعت هیچ‌کس نمی‌تواند همکاری یا تغییراتی که انجام داده است را ذخیره نماید.
4949
اگر هارددیسک سرور مرکزی دچار مشکلی شود و پشتیبان مناسبی هم تهیه نشده باشد
5050
همه چیز (تاریخچه کامل پروژه بجز اسنپ‌شات‌هایی که یک کلاینت ممکن است روی کامپیوتر خود ذخیره کرده باشد) از دست خواهد رفت.
51-
VCSهای محلی نیز همگی این مشکل را دارند -- هرگاه کل تاریخچه پروژه را در یک مکان واحد ذخیره کنید، خطر از دست‌دادن همه چیز را به جان می‌خرید.
51+
VCSهای محلی نیز همگی این مشکل را دارند -- هرگاه کل تاریخچه پروژه را در یک مکان واحد ذخیره کنید، خطر از دست دادن همه چیز را به جان می‌خرید.
5252

5353
==== سیستم‌های کنترل نسخه توزیع‌شده
5454

5555
(((version control,distributed)))
56-
5756
اینجا است که سیستم‌های کنترل نسخه توزیع‌شده (Distributed Version Control System (DVCS)) نمود پیدا می‌کنند.
5857
در یک DVCS (مانند گیت، Mercurial، Bazaar یا Darcs) کلاینت‌ها صرفاً به چک‌اوت کردن آخرین اسنپ‌شات فایل‌ها اکتفا نمی‌کنند؛
59-
بلکه آن‌ها کل مخزن (Repository) را کپی عینی یا آینه (Mirror) می‌کنند که شامل تاریخچه کاملش هم می‌شود.
60-
بنابراین اگر هر سروری که سیستم‌ها به واسطه آن در حال تعامل با یکدیگر هستند متوقف و از کار بیافتد، با کپی مخرن هر کدام از کاربران بر روی سرور، می‌توان آن را بازیابی کرد.
58+
بلکه آن‌ها کل مخزن (Repository) را کپی عینی یا آینه (Mirror) می‌کنند که شامل تاریخچه کامل آن هم می‌شود.
59+
بنابراین اگر هر سروری که سیستم‌ها به واسطه آن در حال تعامل با یکدیگر هستند متوقف شده و از کار بیافتد، با کپی مخرن هر کدام از کاربران بر روی سرور، می‌توان آن را بازیابی کرد.
6160
در واقع هر کلون، پشتیبان کاملی از تمامی داده‌ها است.
6261

6362

book/01-introduction/sections/command-line.asc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
روش‌های مختلفی برای استفاده از گیت وجود دارد.
44
ابزارهای اصیل خط فرمان و بسیاری از رابط‌های کاربری گرافیکی با قابلیت‌های مختلف وجود دارد.
55
برای این کتاب، ما از گیت در خط فرمان استفاده خواهیم کرد.
6-
اول آنکه فقط خط فرمان به شما این امکان را می دهد که بتوانید _همه_ دستورات گیت را اجرا کنید -- اکثر رابط‌های گرافیکی جهت ساده بودن فقط بخش جزئی از کارکرد گیت را پیاده‌سازی می‌کنند.
7-
اگر می‌دانید که چگونه نسخه خط فرمان را اجرا کنید، احتمالا می توانید از نحوه اجرای نسخه رابط گرافیکی نیز سر دربیاورید، اما برعکس آن لزوماً ممکن نیست.
6+
اول آنکه فقط خط فرمان به شما این امکان را می‌دهد که بتوانید _همه_ دستورات گیت را اجرا کنید -- اکثر رابط‌های گرافیکی جهت ساده بودن فقط بخش جزئی از کارکرد گیت را پیاده‌سازی می‌کنند.
7+
اگر می‌دانید که چگونه نسخه خط فرمان را اجرا کنید، احتمالاً می‌توانید از نحوه اجرای نسخه رابط گرافیکی نیز سر دربیاورید، اما برعکس آن لزوماً ممکن نیست.
88
علاوه بر آن ممکن است که انتخاب کلاینت گرافیکی حاصل سلیقه شخصی شما باشد، اما _همه_ کاربران همیشه رابط واحد خط فرمان را نصب و در دسترس دارند.
99

1010
بنابرین انتظار می‌رود که شما بدانید چگونه ترمینال را در مک و یا Command Prompt یا Powershell را در ویندوز باز کنید.

book/01-introduction/sections/first-time-setup.asc

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
=== اولین راه‌اندازی گیت
33

44
حالا که گیت را در سیستم خود دارید، وقت آن است که چند شخصی‌سازی در محیط گیت‌تان انجام دهید.
5-
شما باید این کارها را فقط یک بار به ازای هر کامپیوتری انجام دهید؛ این تنظیمات با بروزرسانی‌ها از بین نمی‌رود.
6-
همچنین شما می‌توانید هر زمان که خواستید آنها را با اجرای دوباره دستورات تغییر دهید.
5+
باید این کارها را فقط یک بار به ازای هر کامپیوتری انجام دهید؛ این تنظیمات با بروزرسانی‌ها از بین نمی‌رود.
6+
همچنین می‌توانید هر زمان که خواستید آنها را با اجرای دوباره دستورات تغییر دهید.
77

8-
گیت با ابزاری به نام `git config` ارائه می‌شود که به شما امکان تنظیم و خواندن متغیرهای پیکربندی که تمام جوانب کاری گیت و ظاهر آن را مدیریت می‌کنند را می‌دهد.(((git commands, config)))
9-
این متغیرها را می توان در سه مکان مختلف ذخیره کرد:
8+
گیت با ابزاری به نام `git config` ارائه می‌شود، که به شما امکان تنظیم و خواندن متغیرهای پیکربندی که تمام جوانب کاری گیت و ظاهر آن را مدیریت می‌کنند را می‌دهد.(((git commands, config)))
9+
این متغیرها را می‌توان در سه مکان مختلف ذخیره کرد:
1010

1111
1. فایل `/etc/gitconfig`: شامل مقادیری است که برای تمام کاربران سیستم و تمام مخازن آنها اعمال می‌شود.
1212
اگر از آپشن `--system` برای `git config` استفاده کنید خواندن و نوشتن با فایل مذکور انجام می‌شود.
@@ -21,7 +21,7 @@
2121

2222
در سیستم‌های ویندوزی گیت به دنبال فایل `.gitconfig` در پوشه `$HOME` می‌گردد (که برای اکثریت `C:\Users\$USER` است).
2323
علاوه بر آن همچنان به دنبال `/etc/gitconfig` می‌گردد،
24-
اگرچه به دنبال آن به نسبت روت MSys می‌گردد که هنگامی نصب گیت روی سیستم ویندوزتان آنرا تنظیم می‌کنید.
24+
اگرچه به دنبال آن به نسبت روت MSys می‌گردد که هنگام نصب گیت روی سیستم ویندوزتان آنرا تنظیم می‌کنید.
2525
اگر از نسخه 2.x یا بالاتر گیت برای ویندوز استفاده می‌کنید باید یک فایل پیکربندی مرتبه-سیستمی
2626
در `C:\Documents and Settings\All Users\Application Data\Git\config` روی ویندوز XP و
2727
در `C:\ProgramData\Git\config` روی ویندوز ویستا و جدیدتر وجود داشته باشد.
@@ -67,7 +67,7 @@ $ git config --global core.editor emacs
6767
این مسیر می‌تواند بسته به نحوه پکیج‌شدن ویرایشگر شما متفاوت باشد.
6868

6969
نوت‌پد++ را نظر بگیرید، یک ویرایشگر محبوب برنامه‌نویسی، که از آنجایی که نسخه ۶۴ بیتی در زمان نوشتن این متن از تمام افزونه‌ها پشتیبانی نمی‌کند احتمالاً از نسخه ۳۲ بیت آن استفاده می‌کنید.
70-
اگر شما از یک سیستم ویندوز ۲۳ بیتی استفاده می‌کنید یا یک ویرایشگر ۶۴ بیتی روی یک سیستم ۶۴ بیتی دارید، ورودی مسیر کامل چیزی شبیه زیر خواهد بود:
70+
اگر شما از یک سیستم ویندوز ۳۲ بیتی استفاده می‌کنید یا یک ویرایشگر ۶۴ بیتی روی یک سیستم ۶۴ بیتی دارید، ورودی مسیر کامل چیزی شبیه زیر خواهد بود:
7171

7272
[source,console]
7373
----
@@ -102,7 +102,7 @@ color.diff=auto
102102
...
103103
----
104104

105-
شما ممکن است بعضی از کلیدها را بیش از سایر کلیدها ببینید چرا که گیت آن کلیدها را از فایل‌های مختلف می‌خواند (`/etc/gitconfig` و `~/.gitconfig` به طور مثال).
105+
ممکن است بعضی از کلیدها را بیش از سایر کلیدها ببینید چرا که گیت آن کلیدها را از فایل‌های مختلف می‌خواند (`/etc/gitconfig` و `~/.gitconfig` به طور مثال).
106106
در این حالت گیت از آخرین مقداری که برای هر کلید یکتا می‌خواند استفاده می‌کند.
107107

108108
همچنین می‌توانید مقدار مد نظر گیت را برای یک کلید خاص را با `git cofnig <key>` بررسی کنید:(((git commands, config)))
@@ -115,9 +115,8 @@ John Doe
115115

116116
[NOTE]
117117
====
118-
119-
از آنجا که ممکن است گیت مقدار یک متغییر پیکربندی را از بیش از یک فایل بخواند، احتمال دارد که یک مقدار غیرمنتظره برای یکی از این مقادیر پیدا کنید و چرایی این قضیه را ندانید.
120-
در چنین مواردی می توانید از گیت _origin_ (مرجع) یک مقدار را پرس‌وجو کنید و به شما خواهد گفت که کدام فایل پیکربندی آخرین حرف را در تنظیم مقدار مورد نظر زده است:
118+
از آنجا که ممکن است گیت مقدار یک متغیر پیکربندی را از بیش از یک فایل بخواند، احتمال دارد که یک مقدار غیرمنتظره برای یکی از این مقادیر پیدا کنید و چرایی این قضیه را ندانید.
119+
در چنین مواردی می‌توانید از گیت _origin_ (مرجع) یک مقدار را پرس‌وجو کنید و به شما خواهد گفت که کدام فایل پیکربندی آخرین حرف را در تنظیم مقدار مورد نظر زده است:
121120
122121
[source,console]
123122
----

book/01-introduction/sections/help.asc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[[_git_help]]
2-
=== مددخواهی
2+
=== کمک گرفتن
33

4-
در شرایطی که برای کار با گیت به کمک احتیاج داشتید، سه روش معادل برای گرفتن یک راهنمای مشروح (_manpage_/من‌پیچ/صفحهٔ راهنما) دربارهٔ هر یک از دستورات گیت وجود دارد:
4+
در شرایطی که برای کار با گیت به کمک احتیاج داشتید، سه روش معادل برای گرفتن یک راهنمای مشروح (manpage) دربارهٔ هر یک از دستورات گیت وجود دارد:
55

66
[source,console]
77
----
@@ -21,7 +21,8 @@ $ git help config
2121
اگر صفحات راهنما و این کتاب کافی نیستند و شما به کمک فردی احتیاج دارید، می‌توانید به کانال `#git` یا `#github` روی سرور IRC فری‌نود متصل شوید که در https://freenode.net[] واقع است.
2222
معمولاً این کانال‌ها با صدها داوطلب پر شده است که همه دربارهٔ گیت بسیار آگاه و مایل به کمک کردن هستند.(((IRC)))
2323

24-
آخر اینکه اگر نیازی به یک صفحه راهنمای کامل و جامع ندارید و فقط به یک یادآوری سریع برای آپشن‌های یک دستور احتیاج دارید، می‌توانید از خروجی مختصر آپشن «کمک» بوسیلهٔ `-h` بخواهید که به شما یادآوری کند؛ همانگونه که در مثال زیر آمده:
24+
آخر اینکه اگر نیازی به یک صفحه راهنمای کامل و جامع ندارید و فقط به یک یادآوری سریع برای آپشن‌های یک دستور احتیاج دارید، می‌توانید از خروجی مختصر آپشن «کمک» بوسیلهٔ `-h` بخواهید که به شما یادآوری کند؛
25+
همانگونه که در مثال زیر آمده است:
2526

2627
[source,console]
2728
----

0 commit comments

Comments
 (0)