Git
Chapters ▾ 2nd Edition

2.1 مقدمات گیت - دستیابی به یک مخزن گیت

اگر فقط می‌توانید یک فصل از این کتاب را بخوانید تا با گیت آشنا شوید و راه بیوفتید، دقیقاً همینجا است. این فصل شامل تمامی دستورات پایه گیت است که شما در اکثر اوقات از آن‌ها استفاده می‌کنید.

در آخر این فصل شما قادر خواهید بود یک مخزن را پیکربندی و راه‌اندازی کنید، پیگیری فایل‌ها را شروع کنید یا متوقف کنید و تغییرات را استیج و ثبت کنید. همچنین به شما نشان خواهیم داد که چگونه گیت را برای نادیده گرفتن برخی از فایل‌ها و الگوهای فایل‌ها تنظیم کنید، اشتباهات را به سرعت و راحتی بازگردانی کنید، در تاریخچه پروژه‌ جستو‌جو کنیم و تغییرات ثبت‌ شده بین کامیت‌ها را مشاهده کنیم و پوش و پول از مخزن ریموت انجام دهیم.

دستیابی به یک مخزن گیت

به طور کل می‌توانید به یکی از دو روش زیر یک مخزن به دست آورید:

  1. یک پوشه محلی که تحت نظارت کنترل نسخه نیست را به مخزن گیت تبدیل کنید، یا

  2. یک نسخه از یک مخزن از پیش موجود گیت را از جایی دیگر کلون کنید.

در هر صورت شما یک مخزن گیت محلی آماده به کار خواهید داشت.

راه‌اندازی مخزن گیت در یک پوشه موجود

اگر شما پروژه‌ای دارید که هنوز تحت نظارت کنترل نسخه نیست و می‌خواهید که مدیریت نسخه‌های آن را به کمک گیت انجام دهید، ابتدا به پوشه اصلی پروژه بروید. اگر تا کنون این کار را نکرده‌اید، این کار بسته سیستم‌عامل شما ممکن است کمی متفاوت باشد:

در لینوکس:

$ cd /home/user/my_project

برای مک:

$ cd /Users/user/my_project

برای ویندوز:

$ cd C:/Users/user/my_project

و تایپ کنید:

$ git init

با زدن این دستور یک پوشه تازه به نام .git ساخته می‌شود که تمام فایل‌هایی که مخزن نیاز دارد — اسکلت یک مخزن گیت — را در بر دارد. تا اینجای کار، گیت تغییرات هیچ فایلی را دنبال نمی‌کند. (برای اینکه بدانید در پوشه .git که هم اکنون ایجاد کردید، چه فایل‌هایی وجود دارند، Git Internals را ببینید.)

اگر می‌خواهید شروع به کنترل نسخه فایل‌های موجود در پروژه کنید (مگر اینکه پوشه خالی باشد) شاید بهتر باشد که آنها را ترک یا مورد پیگیری قرار دهید و اولین کامیت یا کامیت ابتدایی را انجام دهید. برای انجام این کار می‌توانید با چند دستور git add فایل‌های انتخابی را رهگیری کنید و و در نهایت git commit بزنید:

$ git add *.c
$ git add LICENSE
$ git commit -m 'Initial project version'

کمی جلوتر به بررسی کاربرد این دستور‌ها می‌پردازیم. در حال حاضر یک مخزن گیت با فایل‌هایی که ترک شده‌اند و یک کامیت شروع دارید.

کلون‌کردن از مخزن موجود

اگر می‌خواهید یک کپی کامل از یک مخزن از پیش موجود را داشته باشید — برای مثال، پروژه‌ای که علاقه دارید در آن مشارکت کنید — دستوری که به آن احتیاج دارید git clone است. اگر کمی با دیگر نرم‌افزارهای کنترل نسخه مانند ساب‌ورژن آشنا باشید، متوجه‌ خواهید شد که فعل این دستور clone است، نه checkout. این یک تفاوت خیلی مهم است — به جای اینکه یک نسخه کپی از پروژه به دست آورید، گیت به طور مستقیم یک نسخه کامل از تمامی داده‌هایی که در سرور وجود دارد را تحویل می‌گیرد. به صورت پیش‌فرض با اجرای دستور git clone هر نسخه‌ای از هر فایلی که در تاریخچهٔ پروژه است توسط گیت آورده می‌شود. در حقیقت اگر احیاناً دیسک سرور شما دچار مشکل گردد و اطلاعات از دست روند غالباً می‌توانید به طور مستقیم از هر کلون دیگری روی هر کلاینت دیگری استفاده کنید تا اطلاعات سرور را به همان حالتی که به هنگام کلون کردن بود بازگردانید. (ممکن است بعضی از هوک‌های سرور و این قبیل اطلاعات از دست بروند اما تمام نسخه‌های کنترل شده خواهند ماند — برای جزئیات بیشتر راه‌اندازی گیت در سرور را مطالعه کنید.)

با دستور git clone <url> یک مخزن را کلون می‌کنید. برای مثال، اگر بخواهید یک کتاب‌خانه گیت قابل لینک به نام libgit2 را کلون کنید، می‌توانید اینگونه انجام دهید:

$ git clone https://github.com/libgit2/libgit2

با اجرای خط بالا در مرحلهٔ اول یک پوشه به نام libgit2 ساخته می‌شود، در پوشه libgit2 یک پوشه جدید به نام .git ساخته شده و مخزن گیت راه‌اندازی ‌می‌شود، تمام اطلاعات از مخزن اصلی دریافت می‌شوند و ما را به اخرین نسخه از پروژه چک‌اوت می‌کند. اگر وارد پوشه جدید libgit2 شوید، ‌خواهید دید که فایل‌های پروژه حاضر و آماده استفاده هستند.

اگر بخواهید مخزن مورد نظر را در پوشه‌ای با نام دلخواه خودتان (بجای libgit2) کلون کنید، می‌توانید نام پوشه دلخواه را مانند دستور پایین به عنوان آرگومان اضافه مشخص کنید:

$ git clone https://github.com/libgit2/libgit2 mylibgit

دستور بالا همان مراحل قبل را انجام می‌دهد، با این تفاوت که نام پوشه‌ای که ساخته می‌شود mylibgit خواهد بود.

گیت دارای تعداد زیادی پروتکل‌های انتقال است که شما می‌توانید از آن‌ها استفاده کنید. در مثال قبل از پروتکل https:// استفاده شد، اما شاید git:// یا user@server:path/to/repo.git را نیز دیده باشید، که از پروتکل SSH استفاده می‌کند. راه‌اندازی گیت در سرور تمام گزینه‌های موجود برای را دسترسی به مخزن گیت را معرفی خواهد کرد و درباره مضرات و فواید هر کدام توضیح خواهد داد.