You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: book/01-introduction/sections/about-version-control.asc
+13-14Lines changed: 13 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,21 +3,21 @@
3
3
(((version control)))
4
4
«کنترل نسخه» چیست و چرا باید بدان پرداخت؟ کنترل نسخه سیستمی است که تغییرات را در فایل یا دستهای از
5
5
فایلها ذخیره میکند و به شما این امکان را میدهد که در آینده به نسخه و نگارش خاصی برگردید.
6
-
برای مثالهای این کتاب شما از سورس کد نرمافزار به عنوان فایلهایی که نسخه آنها کنترل میشود استفاده میکنید.
6
+
برای مثالهای این کتاب، شما از سورس کد نرمافزار به عنوان فایلهایی که نسخه آنها کنترل میشود استفاده میکنید.
7
7
اگرچه در واقع میتوانید تقریباً از هر فایلی استفاده کنید.
8
8
9
9
اگر شما یک گرافیست یا طراح وب هستید و میخواهید نسخههای متفاوت از عکسها و قالبهای خود داشته باشید (که احتمالاً میخواهید)، یک سیستم کنترل نسخه (Version Control System (VCS)) انتخاب خردمندانهای است.
10
-
یک VCS به شما این امکان را میدهد که فایلهای انتخابی یا کل پروژه را به یک حالت قبلی خاص برگردانید، روند تغییرات را بررسی کنید، ببینید چه کسی آخرینبار تغییری ایجاد کرده که احتمالاً مشکل آفرین شده،
10
+
یک VCS به شما این امکان را میدهد که فایلهای انتخابی یا کل پروژه را به یک حالت قبلی خاص برگردانید، روند تغییرات را بررسی کنید، ببینید چه کسی آخرین بار تغییری ایجاد کرده که احتمالاً مشکل آفرین شده،
11
11
چه کسی، چه وقت مشکلی را اعلام کرده و...
12
-
استفاده از یک VCS همچنین به این معناست که اگر شما در حین کار چیزی را خراب کردید و یا فایلهایی از دست رفت، به سادگی می توانید کارهای انجام شده را بازیابی نمایید.
12
+
استفاده از یک VCS همچنین به این معناست که اگر شما در حین کار چیزی را خراب کردید و یا فایلهایی از دست رفت، به سادگی میتوانید کارهای انجام شده را بازیابی نمایید.
13
13
همچنین مقداری سربار به فایلهای پروژهتان افزوده میشود.
14
14
15
15
==== سیستمهای کنترل نسخهٔ محلی
16
16
17
17
(((version control,local)))
18
18
روش اصلی کنترل نسخهٔ کثیری از افراد کپی کردن فایلها به پوشهای دیگر است (احتمالاً با تاریخگذاری، اگر خیلی باهوش باشند).
19
19
این رویکرد به علت سادگی بسیار رایج است هرچند خطا آفرینی بالایی دارد.
20
-
فراموش کردن اینکه در کدام پوشه بودهاید و نوشتن اشتباهی روی فایل یا فایلهایی که نمیخواستید روی آن بنویسید بسیار ساده است.
20
+
فراموش کردن اینکه در کدام پوشه بودهاید و نوشتن اشتباهی روی فایل یا فایلهایی که نمیخواستید روی آن بنویسید بسیار آسان است.
21
21
22
22
برای حل این مشکل، سالها قبل VCSهای محلی را توسعه دادند که پایگاه دادهای ساده داشت که تمام تغییرات فایلهای تحت مراقبتش را نگهداری میکرد.
23
23
@@ -28,36 +28,35 @@ image::images/local.png[Local version control diagram]
28
28
https://www.gnu.org/software/rcs/[RCS] با نگه داشتن مجموعههایی از پچها (Patch/وصله) -- همان تفاوتهای بین نگارشهای گوناگون فایلها -- در قالبی ویژه کار میکند؛
29
29
پس از این، با اعمال پچها میتواند هر نسخهای از فایل که مربوط به هر زمان دلخواه است را بازسازی کند.
30
30
31
-
==== سیستمهای کنترل نسخهٔ متمرکز
31
+
==== سیستمهای کنترل نسخهٔ متمرکز
32
32
33
33
(((version control,centralized)))
34
-
چالش بزرگ دیگری که مردم با آن روبرو می شوند نیاز به همکاری با توسعهدهندگانی است که با سیستمهای دیگر کار میکنند.
34
+
چالش بزرگ دیگری که مردم با آن روبرو میشوند نیاز به همکاری با توسعهدهندگانی است که با سیستمهای دیگر کار میکنند.
35
35
دربرخورد با این چالش سیستمهای کنترل نسخه متمرکز (Centralized Version Control System (CVCS)) ایجاد شدند.
36
-
این قبیل سیستمها (چون CVS، سابورژن و Preforce) یک سرور دارند که تمام فایلهای نسخهبندی شده را در بر دارد و تعدادی کلاینت (Client/خدمتگیرنده)
36
+
این قبیل سیستمها (مثل CVS، سابورژن و Preforce) یک سرور دارند که تمام فایلهای نسخهبندی شده را در بر دارد و تعدادی کلاینت (Client/خدمتگیرنده)
37
37
که فایلهایی را از آن سرور چکاوت (Checkout/وارسی) میکنند. (((CVS)))(((Subversion)))(((Perforce))) سالهای سال این روش استاندارد کنترل نسخه بوده است.
38
38
39
39
.کنترل نسخه متمرکز.
40
40
image::images/centralized.png[Centralized version control diagram]
41
41
42
42
43
43
این ساماندهی به ویژه برای VCSهای محلی منافع و مزایای بسیاری دارد. به طور مثال هر کسی به میزان مشخصی از فعالیتهای دیگران روی پروژه آگاهی دارد.
44
-
مدیریان دسترسی و کنترل مناسبی بر این دارند که چه کسی چه کاری می تواند انجام دهد؛
44
+
مدیران دسترسی و کنترل مناسبی بر این دارند که چه کسی چه کاری میتواند انجام دهد؛
45
45
همچنین مدیریت یک CVCS خیلی آسانتر از درگیری با پایگاهدادههای محلی روی تک تک کلاینتهاست.
46
46
47
-
هرچند که این گونه ساماندهی معایب جدی نیز دارد. واضحترین آن رخدادن خطا در سروری که نسخهها در آن متمرکز شده است.
48
-
اگر که سرور برای یک ساعت غیرفعال باشد، در طول این یک ساعت هیچکس نمی تواند همکاری یا تغییراتی که انجام داده است را ذخیره نماید.
47
+
هرچند که این گونه ساماندهی معایب جدی نیز دارد. واضحترین آن رخدادن خطا در سروری که نسخهها در آن متمرکز شدهاند است.
48
+
اگر که سرور برای یک ساعت غیرفعال باشد، در طول این یک ساعت هیچکس نمیتواند همکاری یا تغییراتی که انجام داده است را ذخیره نماید.
49
49
اگر هارددیسک سرور مرکزی دچار مشکلی شود و پشتیبان مناسبی هم تهیه نشده باشد
50
50
همه چیز (تاریخچه کامل پروژه بجز اسنپشاتهایی که یک کلاینت ممکن است روی کامپیوتر خود ذخیره کرده باشد) از دست خواهد رفت.
51
-
VCSهای محلی نیز همگی این مشکل را دارند -- هرگاه کل تاریخچه پروژه را در یک مکان واحد ذخیره کنید، خطر از دستدادن همه چیز را به جان میخرید.
51
+
VCSهای محلی نیز همگی این مشکل را دارند -- هرگاه کل تاریخچه پروژه را در یک مکان واحد ذخیره کنید، خطر از دست دادن همه چیز را به جان میخرید.
52
52
53
53
==== سیستمهای کنترل نسخه توزیعشده
54
54
55
55
(((version control,distributed)))
56
-
57
56
اینجا است که سیستمهای کنترل نسخه توزیعشده (Distributed Version Control System (DVCS)) نمود پیدا میکنند.
58
57
در یک DVCS (مانند گیت، Mercurial، Bazaar یا Darcs) کلاینتها صرفاً به چکاوت کردن آخرین اسنپشات فایلها اکتفا نمیکنند؛
59
-
بلکه آنها کل مخزن (Repository) را کپی عینی یا آینه (Mirror) میکنند که شامل تاریخچه کاملش هم میشود.
60
-
بنابراین اگر هر سروری که سیستمها به واسطه آن در حال تعامل با یکدیگر هستند متوقف و از کار بیافتد، با کپی مخرن هر کدام از کاربران بر روی سرور، میتوان آن را بازیابی کرد.
58
+
بلکه آنها کل مخزن (Repository) را کپی عینی یا آینه (Mirror) میکنند که شامل تاریخچه کامل آن هم میشود.
59
+
بنابراین اگر هر سروری که سیستمها به واسطه آن در حال تعامل با یکدیگر هستند متوقف شده و از کار بیافتد، با کپی مخرن هر کدام از کاربران بر روی سرور، میتوان آن را بازیابی کرد.
61
60
در واقع هر کلون، پشتیبان کاملی از تمامی دادهها است.
Copy file name to clipboardExpand all lines: book/01-introduction/sections/command-line.asc
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,8 +3,8 @@
3
3
روشهای مختلفی برای استفاده از گیت وجود دارد.
4
4
ابزارهای اصیل خط فرمان و بسیاری از رابطهای کاربری گرافیکی با قابلیتهای مختلف وجود دارد.
5
5
برای این کتاب، ما از گیت در خط فرمان استفاده خواهیم کرد.
6
-
اول آنکه فقط خط فرمان به شما این امکان را می دهد که بتوانید _همه_ دستورات گیت را اجرا کنید -- اکثر رابطهای گرافیکی جهت ساده بودن فقط بخش جزئی از کارکرد گیت را پیادهسازی میکنند.
7
-
اگر میدانید که چگونه نسخه خط فرمان را اجرا کنید، احتمالا می توانید از نحوه اجرای نسخه رابط گرافیکی نیز سر دربیاورید، اما برعکس آن لزوماً ممکن نیست.
6
+
اول آنکه فقط خط فرمان به شما این امکان را میدهد که بتوانید _همه_ دستورات گیت را اجرا کنید -- اکثر رابطهای گرافیکی جهت ساده بودن فقط بخش جزئی از کارکرد گیت را پیادهسازی میکنند.
7
+
اگر میدانید که چگونه نسخه خط فرمان را اجرا کنید، احتمالاً میتوانید از نحوه اجرای نسخه رابط گرافیکی نیز سر دربیاورید، اما برعکس آن لزوماً ممکن نیست.
8
8
علاوه بر آن ممکن است که انتخاب کلاینت گرافیکی حاصل سلیقه شخصی شما باشد، اما _همه_ کاربران همیشه رابط واحد خط فرمان را نصب و در دسترس دارند.
9
9
10
10
بنابرین انتظار میرود که شما بدانید چگونه ترمینال را در مک و یا Command Prompt یا Powershell را در ویندوز باز کنید.
Copy file name to clipboardExpand all lines: book/01-introduction/sections/first-time-setup.asc
+9-10Lines changed: 9 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,11 +2,11 @@
2
2
=== اولین راهاندازی گیت
3
3
4
4
حالا که گیت را در سیستم خود دارید، وقت آن است که چند شخصیسازی در محیط گیتتان انجام دهید.
5
-
شما باید این کارها را فقط یک بار به ازای هر کامپیوتری انجام دهید؛ این تنظیمات با بروزرسانیها از بین نمیرود.
6
-
همچنین شما میتوانید هر زمان که خواستید آنها را با اجرای دوباره دستورات تغییر دهید.
5
+
باید این کارها را فقط یک بار به ازای هر کامپیوتری انجام دهید؛ این تنظیمات با بروزرسانیها از بین نمیرود.
6
+
همچنین میتوانید هر زمان که خواستید آنها را با اجرای دوباره دستورات تغییر دهید.
7
7
8
-
گیت با ابزاری به نام `git config` ارائه میشود که به شما امکان تنظیم و خواندن متغیرهای پیکربندی که تمام جوانب کاری گیت و ظاهر آن را مدیریت میکنند را میدهد.(((git commands, config)))
9
-
این متغیرها را می توان در سه مکان مختلف ذخیره کرد:
8
+
گیت با ابزاری به نام `git config` ارائه میشود، که به شما امکان تنظیم و خواندن متغیرهای پیکربندی که تمام جوانب کاری گیت و ظاهر آن را مدیریت میکنند را میدهد.(((git commands, config)))
9
+
این متغیرها را میتوان در سه مکان مختلف ذخیره کرد:
10
10
11
11
1. فایل `/etc/gitconfig`: شامل مقادیری است که برای تمام کاربران سیستم و تمام مخازن آنها اعمال میشود.
12
12
اگر از آپشن `--system` برای `git config` استفاده کنید خواندن و نوشتن با فایل مذکور انجام میشود.
@@ -21,7 +21,7 @@
21
21
22
22
در سیستمهای ویندوزی گیت به دنبال فایل `.gitconfig` در پوشه `$HOME` میگردد (که برای اکثریت `C:\Users\$USER` است).
23
23
علاوه بر آن همچنان به دنبال `/etc/gitconfig` میگردد،
24
-
اگرچه به دنبال آن به نسبت روت MSys میگردد که هنگامی نصب گیت روی سیستم ویندوزتان آنرا تنظیم میکنید.
24
+
اگرچه به دنبال آن به نسبت روت MSys میگردد که هنگام نصب گیت روی سیستم ویندوزتان آنرا تنظیم میکنید.
25
25
اگر از نسخه 2.x یا بالاتر گیت برای ویندوز استفاده میکنید باید یک فایل پیکربندی مرتبه-سیستمی
26
26
در `C:\Documents and Settings\All Users\Application Data\Git\config` روی ویندوز XP و
27
27
در `C:\ProgramData\Git\config` روی ویندوز ویستا و جدیدتر وجود داشته باشد.
این مسیر میتواند بسته به نحوه پکیجشدن ویرایشگر شما متفاوت باشد.
68
68
69
69
نوتپد++ را نظر بگیرید، یک ویرایشگر محبوب برنامهنویسی، که از آنجایی که نسخه ۶۴ بیتی در زمان نوشتن این متن از تمام افزونهها پشتیبانی نمیکند احتمالاً از نسخه ۳۲ بیت آن استفاده میکنید.
70
-
اگر شما از یک سیستم ویندوز ۲۳ بیتی استفاده میکنید یا یک ویرایشگر ۶۴ بیتی روی یک سیستم ۶۴ بیتی دارید، ورودی مسیر کامل چیزی شبیه زیر خواهد بود:
70
+
اگر شما از یک سیستم ویندوز ۳۲ بیتی استفاده میکنید یا یک ویرایشگر ۶۴ بیتی روی یک سیستم ۶۴ بیتی دارید، ورودی مسیر کامل چیزی شبیه زیر خواهد بود:
71
71
72
72
[source,console]
73
73
----
@@ -102,7 +102,7 @@ color.diff=auto
102
102
...
103
103
----
104
104
105
-
شما ممکن است بعضی از کلیدها را بیش از سایر کلیدها ببینید چرا که گیت آن کلیدها را از فایلهای مختلف میخواند (`/etc/gitconfig` و `~/.gitconfig` به طور مثال).
105
+
ممکن است بعضی از کلیدها را بیش از سایر کلیدها ببینید چرا که گیت آن کلیدها را از فایلهای مختلف میخواند (`/etc/gitconfig` و `~/.gitconfig` به طور مثال).
106
106
در این حالت گیت از آخرین مقداری که برای هر کلید یکتا میخواند استفاده میکند.
107
107
108
108
همچنین میتوانید مقدار مد نظر گیت را برای یک کلید خاص را با `git cofnig <key>` بررسی کنید:(((git commands, config)))
@@ -115,9 +115,8 @@ John Doe
115
115
116
116
[NOTE]
117
117
====
118
-
119
-
از آنجا که ممکن است گیت مقدار یک متغییر پیکربندی را از بیش از یک فایل بخواند، احتمال دارد که یک مقدار غیرمنتظره برای یکی از این مقادیر پیدا کنید و چرایی این قضیه را ندانید.
120
-
در چنین مواردی می توانید از گیت _origin_ (مرجع) یک مقدار را پرسوجو کنید و به شما خواهد گفت که کدام فایل پیکربندی آخرین حرف را در تنظیم مقدار مورد نظر زده است:
118
+
از آنجا که ممکن است گیت مقدار یک متغیر پیکربندی را از بیش از یک فایل بخواند، احتمال دارد که یک مقدار غیرمنتظره برای یکی از این مقادیر پیدا کنید و چرایی این قضیه را ندانید.
119
+
در چنین مواردی میتوانید از گیت _origin_ (مرجع) یک مقدار را پرسوجو کنید و به شما خواهد گفت که کدام فایل پیکربندی آخرین حرف را در تنظیم مقدار مورد نظر زده است:
Copy file name to clipboardExpand all lines: book/01-introduction/sections/help.asc
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
[[_git_help]]
2
-
=== مددخواهی
2
+
=== کمک گرفتن
3
3
4
-
در شرایطی که برای کار با گیت به کمک احتیاج داشتید، سه روش معادل برای گرفتن یک راهنمای مشروح (_manpage_/منپیچ/صفحهٔ راهنما) دربارهٔ هر یک از دستورات گیت وجود دارد:
4
+
در شرایطی که برای کار با گیت به کمک احتیاج داشتید، سه روش معادل برای گرفتن یک راهنمای مشروح (manpage) دربارهٔ هر یک از دستورات گیت وجود دارد:
5
5
6
6
[source,console]
7
7
----
@@ -21,7 +21,8 @@ $ git help config
21
21
اگر صفحات راهنما و این کتاب کافی نیستند و شما به کمک فردی احتیاج دارید، میتوانید به کانال `#git` یا `#github` روی سرور IRC فرینود متصل شوید که در https://freenode.net[] واقع است.
22
22
معمولاً این کانالها با صدها داوطلب پر شده است که همه دربارهٔ گیت بسیار آگاه و مایل به کمک کردن هستند.(((IRC)))
23
23
24
-
آخر اینکه اگر نیازی به یک صفحه راهنمای کامل و جامع ندارید و فقط به یک یادآوری سریع برای آپشنهای یک دستور احتیاج دارید، میتوانید از خروجی مختصر آپشن «کمک» بوسیلهٔ `-h` بخواهید که به شما یادآوری کند؛ همانگونه که در مثال زیر آمده:
24
+
آخر اینکه اگر نیازی به یک صفحه راهنمای کامل و جامع ندارید و فقط به یک یادآوری سریع برای آپشنهای یک دستور احتیاج دارید، میتوانید از خروجی مختصر آپشن «کمک» بوسیلهٔ `-h` بخواهید که به شما یادآوری کند؛
0 commit comments