مقدمه

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

هر ریپوزیتوری گیت، یک دیتابیس کامل از پروژه است. این یعنی تمام کامیت‌ها، برنچ‌ها، تگ‌ها و تاریخچه تغییرات در خود ریپوزیتوری ذخیره می‌شوند. این ویژگی به گیت ماهیت توزیع‌شده بخشیده است، زیرا هر کپی از ریپوزیتوری، یک نسخه کامل و مستقل از پروژه است.

پوشه .git چیست؟

جادوی اصلی گیت در یک پوشه مخفی به نام .git اتفاق می‌افتد. زمانی که شما یک ریپوزیتوری جدید ایجاد می‌کنید، گیت این پوشه را در ریشه (root) پروژه شما می‌سازد. این پوشه شامل تمام اطلاعاتی است که گیت برای مدیریت نسخه نیاز دارد: دیتابیس آبجکت‌ها (فایل‌ها، کامیت‌ها و...)، فایل‌های پیکربندی محلی، اشاره‌گرها به برنچ‌ها (مانند HEAD) و بسیاری موارد دیگر.

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

چگونه یک ریپوزیتوری ایجاد کنیم؟

برای شروع کار با گیت در یک پروژه، دو راه اصلی پیش روی شماست:

  1. ایجاد یک ریپوزیتوری جدید در یک پروژه موجود (یا یک پوشه خالی).
  2. کپی یا کلون کردن یک ریپوزیتوری موجود از یک سرور ریموت (مانند گیت‌هاب).

در ادامه هر دو روش را بررسی می‌کنیم.

روش اول: ساخت ریپوزیتوری جدید با git init

اگر یک پروژه دارید که هنوز تحت کنترل نسخه گیت نیست (یا می‌خواهید یک پروژه جدید را از صفر شروع کنید)، باید از دستور git init استفاده کنید. این دستور گیت را در پوشه فعلی راه‌اندازی می‌کند.

برای این کار، ابتدا ترمینال را باز کرده و با دستور cd به مسیر پوشه پروژه خود بروید. سپس دستور زیر را اجرا کنید:

git init

پس از اجرای این دستور، گیت یک پیام مشابه زیر نمایش می‌دهد و پوشه مخفی .git را در همان مسیر ایجاد می‌کند:

Initialized empty Git repository in /path/to/your/project/.git/

تبریک! پروژه شما اکنون یک ریپوزیتوری گیت است. البته در این مرحله هنوز هیچ فایلی به گیت اضافه نشده و تاریخچه‌ای ثبت نگردیده است. شما فقط بستر لازم برای شروع کار را فراهم کرده‌اید.

روش دوم: کپی‌کردن یک ریپوزیتوری موجود با git clone

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

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

git clone <URL>

برای مثال، اگر بخواهیم خود پروژه گیت را از گیت‌هاب کلون کنیم، از دستور زیر استفاده می‌کنیم:

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

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

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