diff --git a/index.fa.html b/index.fa.html index e951bd68..d4f53976 100644 --- a/index.fa.html +++ b/index.fa.html @@ -1,9 +1,9 @@ - +
-یک راهنمای ساده برای شروع کار با گیت. بدون مزخرفات عمیق ;)
- Tweet +مقدمهای برای شروع کار با گیت
+ توییت
- یک پوشه جدید بسازید، واردش شوید و دستور
+ پوشۀ جدیدی بسازید؛ واردش شوید و دستورِ
git init
- را اجرا کنید تا یک مخزن جدید گیت بسازید.
+ را اجرا کنید تا یک مخزن جدید (Git Repository) ساخته شود.
- با اجرای دستور زیر یک کپی از مخزن محلی ایجاد کنید
- git clone /path/to/repository
- وقتی به یک سرور دیگر وصل میشوید، دستور شما اینطور خواهد بود
+ با اجرای دستور زیر میتوانید یک نسخۀ کپی از مخزن محلی ایجاد کنید
+ کپی یا کلون: git clone /path/to/repository
+ برای کپیِ مخزنی که در سرور قرار گرفته دستور پایین را اجرا کنید:
git clone username@host:/path/to/repository
- مخزن محلی شما از سه «درخت» که توسط git نگهداری میشود تشکیل شده است.
- اولی Working Directory
شماست که فایلهای واقعی را نگه میدارد.
- دومی Index
است که نقش منطقه شروع عملیات را دارد
- در نهایت HEAD
را داریم که به آخرین ارسال (commit) شما اشاره میکند.
+ مخزن محلی شامل سه «درخت» است که توسط گیت نگهداری میشود:
+ اولی Working Directory
است که مسئول نگهداری فایلهای واقعی پروژه است؛
+ دومی ایندکس (Index)
است که نقش منطقه شروع عملیات (Staging area) را بازی میکند؛
+ و آخری هِد (HEAD)
که به آخرین کامیتِ ارسالی (commit) اشاره میکند.
- میتوانید با دستور زیر تغییرات (افزودن فایلها به index) را مطرح کنید
+ میتوانید با دستور زیر فایلها را به ایندکس اضافه کنید:
git add <filename>
git add *
- این اولین قدم در گردش کار ساده git است. برای ارسال واقعی این تغییرات از دستور زیر استفاده کنید
+ این اولین قدمِ یک گردش کار ساده در گیت محسوب میشود. برای ارسال واقعی تغییرات از دستور پایین استفاده کنید:
git commit -m "Commit message"
- حالا فایل برای HEAD، ارسال شده اما هنوز به سرور ریموت شما فرستاده نشده است.
+ اکنون فایلهای مورد نظر در هِد قرار گرفتهاند؛ ولی هنوز به سرور ارسال نشدهاند.
- تغییرات شما الان در HEAD مخزن محلی شما هستند. برای ارسال آنها به سرور ریموت دستور زیر را اجرا کنید
+ برای ارسال تغییرات به سرورِ ریموت دستور زیر را اجرا کنید:
git push origin master
- عبارت master را با اسم هر شاخه (branch) که میخواهید تغییراتش را ارسال کنید عوض کنید.
+ به جای مَستر (master)، اسم شاخهای (branch) را وارد کنید که میخواهید تغییراتش را ارسال کنید.
- اگر یک مخزن محلی را کپی (clone) نکردید و میخواهید مخزن محلی را خود را به سرور ریموت متصل کنید، باید از دستور زیر استفاده کنید
+ اگر هیچ مخزن محلیای را کلون نکرده بودید میتوانید با دستور پایین مخزن محلیتان را به مخزن ریموت متصل کنید:
git remote add origin <server>
- حالا قادر هستید تغییرات را به سرور ریموت انتخاب شده ارسال کنید.
+ حالا میتوانید تغییرات را به کمک ریموت ساخته شده به سرور ارسال نمایید.
- شاخهها برای توسعهدادن نرمافزار و افزودن امکانات به صورت مجزا و ایزوله شده از هم، به کار میروند. وقتی یک مخزن میسازید، شاخه «پیش فرض» (default) آن مخزن، master است. شاخههای دیگر را برای توسعه و کدنویسی استفاده کنید و بعد از تکمیل شدن، آنها را با master ادغام کنید. + شاخهها برای افزودن فیچرهای جدید در مسیری مجزا به کار میروند. هنگام ساخت یک مخزن جدید، شاخۀ مستر به عنوان شاخۀ پیشفرض در نظر گرفته میشود. هر شاخه به صورت مجزا توسعه مییابد و بعد از اتمام کار با شاخۀ مستر ترکیب میشود.
- با استفاده از دستور زیر یک شاخه به نام "feature_x" بسازید به آن سوئیچ کنید
+ با دستور زیر شاخهای به نام "feature_x" ساخته شده و به آن سوئیچ میشود:
git checkout -b feature_x
- بازگشت به شاخه master
+ بازگشت به شاخۀ مستر:
git checkout master
- و حذف شاخه
+ حذف شاخه:
git branch -d feature_x
- تا زمانی که یک شاخه را به سرور ارسال (push) نکنید برای دیگران در دسترس نیست
+ تا زمانی که شاخهای را به سرور پوش نکنید، سایر افراد به آن دسترسی ندارند.
git push origin <branch>
- برای اینکه مخزن محلی خود را با آخرین کامیت بروز کنید، دستور
+ برای اینکه مخزن محلی خود را به آخرین کامیت بروز کنید، دستور
git pull
- را در پوشه محلی اجرا کنید تا تغییرات سرور ریموت،
دریافت (fetch) و ادغام (merge) شوند.
- برای ادغام یک شاخه (branch) دیگر بر روی شاخه فعال
-
- (مثلاً master)، از دستور زیر استفاده کنید
+ را در پوشه محلی (فولدر پروژه روی سیستمتان) اجرا کنید تا تغییرات مخزن ریموت (واقع روی سرور)،
دریافت (fetch) و ادغام (merge) شوند. برای ادغام یک شاخۀ دیگر با شاخۀ کنونی (مثلاً master)، از دستور زیر استفاده کنید:
git merge <branch>
- در هر دو حالت، گیت تلاش میکند تا تغییرات را به صورت اتوماتیک ادغام کند. متاسفانه، ادغام اتوماتیک همیشه ممکن نیست و منجر به تداخل (conflict) میشود.
- شما مسئول ادغام دستی تداخلها
- با ویرایش فایلهای تداخلدار که توسط گیت نشان داده میشوند هستید. بعد از ویرایش، لازم است آنها را با دستور زیر به عنوان «ادغام شده» علامت بزنید
+ گیت در هر دو حال تلاش میکند تغییرات را به صورت خودکار ادغام کند ولی این کار همیشه میسر نیست چون ممکن است به تداخل (conflict) منجر شود.
+ تداخلها را باید خودتان به صورتی دستی برطرف نمایید و سپس عمل ادغام را انجام دهید. پس از ویرایش باید با دستور زیر، آنها را به عنوان «ادغام شده» علامت بزنید:
git add <filename>
- قبل از ادغام تغییرات میتوانید پیشنمایشی از آنها را با دستور زیر ببینید
+ قبل از ادغام تغییرات، پیشنمایش آن را میتوانید با دستور زیر ببینید
git diff <source_branch> <target_branch>
- ایجاد برچسب، برای عرضه نرمافزار توصیه میشود.
این روالی شناخته شده است که در SVN هم وجود دارد.
+ معمولاً به هر نسخه از برنامه، شمارهای اختصاص میدهند که در گیت به آن تگ گفته میشود. این موضوع در سایر سیستمهای کنترل نسخه مانند سابورژن (SVN) نیز وجود دارد.
- میتوانید برچسبی به نام 1.0.0 را با اجرای دستور زیر بسازید
+ میتوانید با دستور زیر برچسبی به نام 1.0.0 بسازید:
git tag 1.0.0 1b2e1d63ff
- عبارت 1b2e1d63ff اولین ده کاراکتر شناسه کامیتی است که میخواهید برچسبگذاری کنید. میتوانید شناسه کامیت را با گشتن در لاگها پیدا کنید...
+ عبارت 1b2e1d63ff، اولین ده کاراکتر شناسۀ (ID) کامیتی است که میخواهید برچسبگذاری کنید. میتوانید شناسه کامیت را با جستجو در لاگ پیدا کنید...
- در سادهترین حالت، تاریخچه مخزن را با دستور زیر میتوانید مطالعه کنید:
+ در سادهترین حالت، تاریخچه مخزن با دستور زیر نمایش داده میشود:
git log
- میتوانید کلی پارامتر به این دستور اضافه کنید تا شبیه آن چیزی که میخواهید بشود. برای دیدن کامیتهای یک شخص خاص:
+ میتوانید کلی پارامتر دیگر هم به این دستور اضافه کنید تا بشود آن چیزی که میخواهید. دیدن کامیتهای یک شخص خاص:
git log --author=bob
- برای دیدن نسخه فشرده کامیتها که هر کامیت تنها یک خط دارد:
+ دیدن کامیتها به صورت مختصر؛ هر کدام در یک خط:
git log --pretty=oneline
- یا شاید بخواهید درخت اسکی (ASCII) همه شاخهها را که با نام شاخه و برچسب تزئین شده را ببینید:
+ یا شاید بخواهید درخت اسکی (ASCII) همه شاخهها را که با نام شاخه و برچسبها تزئین شده ببینید:
git log --graph --oneline --decorate --all
- فقط دیدن اینکه چه فایلهایی تغییر کرده:
+ فقط مشاهدۀ فایلهای تغییر یافته:
git log --name-status
- اینها فقط بعضی از پارامترهایی هستند که میتوانید استفاده کنید، برای اطلاعات بیشتر این دستور را ببینید
+ موارد بالا فقط گوشهای از پارامترها بودند. برای اطلاعات بیشتر، دستور پایین را وارد کنید:
git log --help
- اگر کار اشتباهی انجام دادید، که عمراً برای شما اتفاق نمیافتد ;)، میتوانید تغییرات محلی را با دستور زیر جایگزین کنید
+ در صورتی که مرتکب اشتباهی شدید، تغییرات محلی را میتوانید با دستور پایین جایگزین کنید:
git checkout -- <filename>
- این دستور، تغییرات را با آخرین محتوای HEAD جایگزین میکند. تغییراتی که به index فرستاده شدند به همراه فایلهای جدید نگه داشته میشوند.
+ این دستور، تغییرات working directory (فولدر پروژه روی سیستم) را با آخرین محتوایی که هِد به آن اشاره میکند جایگزین میکند. البته فایلهای جدید و تغییراتی که از قبل به ایندکس اضافه شده، دست نخورده باقی میمانند.
- اگر میخواهید همه تغییرات محلی را دور بریزید و بعد کامیت کنید، آخرین تاریخچه را از سرور بگیرید و با دستورات زیر کاری کنید که شاخه master شما به آخرین تغییرات دریافتی از سرور اشاره کند
+ اگر میخواهید همه تغییرات محلی را حذف و بعد کامیت کنید، آخرین تاریخچه را از سرور دریافت و با دستور ریست (با پرچم hard--) شاخه مستر را به آخرین تغییرات دریافتی از سرور اشاره دهید.
git fetch origin
git reset --hard origin/master
@@ -227,20 +223,20 @@
- رابط کاربری توکار git
+ رابط گرافیکی گیت git:
gitk
- خروجی رنگ git
+ نمایش خروجی دستورات به صورت رنگی:
git config color.ui true
- نمایش لاگ در یک خط برای هر کامیت
+ نمایش مختصر لاگ، تنها یک کامیت در هر سطر:
git config format.pretty oneline
- افزودن تعاملی
+ افزودن فایلها به صورت تعاملی:
git add -i