به طور کل میتوانید به یکی از دو روش زیر یک مخزن به دست آورید:
-
یک پوشه محلی که تحت نظارت کنترل نسخه نیست را به مخزن گیت تبدیل کنید، یا
-
یک نسخه از یک مخزن از پیش موجود گیت را از جایی دیگر کلون کنید.
در هر صورت شما یک مخزن گیت محلی آماده به کار خواهید داشت.
اگر شما پروژهای دارید که هنوز تحت نظارت کنترل نسخه نیست و میخواهید که مدیریت نسخههای آن را به کمک گیت انجام دهید، ابتدا به پوشه اصلی پروژه بروید. اگر تا کنون این کار را نکردهاید، این کار بسته سیستمعامل شما ممکن است کمی متفاوت باشد:
در لینوکس:
$ cd /home/user/my_project
برای مک:
$ cd /Users/user/my_project
برای ویندوز:
$ cd C:/Users/user/my_project
و تایپ کنید:
$ git init
با زدن این دستور یک پوشه تازه به نام .git
ساخته میشود که تمام فایلهایی که مخزن نیاز دارد — اسکلت یک مخزن گیت — را در بر دارد.
تا اینجای کار، گیت تغییرات هیچ فایلی را دنبال نمیکند.
(برای اینکه بدانید در پوشه .git
که هم اکنون ایجاد کردید، چه فایلهایی وجود دارند، ch10-git-internals.asc را ببینید.)
اگر میخواهید شروع به کنترل نسخه فایلهای موجود در پروژه کنید (مگر اینکه پوشه خالی باشد) شاید بهتر باشد که آنها را ترک
یا مورد پیگیری قرار دهید و اولین کامیت یا کامیت ابتدایی را انجام دهید.
برای انجام این کار میتوانید با چند دستور git add
فایلهای انتخابی را رهگیری کنید و و در نهایت git commit
بزنید:
$ git add *.c
$ git add LICENSE
$ git commit -m 'Initial project version'
کمی جلوتر به بررسی کاربرد این دستورها میپردازیم. در حال حاضر یک مخزن گیت با فایلهایی که ترک شدهاند و یک کامیت شروع دارید.
اگر میخواهید یک کپی کامل از یک مخزن از پیش موجود را داشته باشید — برای مثال، پروژهای که علاقه دارید در آن مشارکت کنید — دستوری که به آن احتیاج دارید git clone
است.
اگر کمی با دیگر نرمافزارهای کنترل نسخه مانند سابورژن آشنا باشید، متوجه خواهید شد که فعل این دستور clone
است، نه checkout
.
این یک تفاوت خیلی مهم است — به جای اینکه یک نسخه کپی از پروژه به دست آورید، گیت به طور مستقیم یک نسخه کامل از تمامی دادههایی که در سرور وجود دارد را تحویل میگیرد.
به صورت پیشفرض با اجرای دستور git clone
هر نسخهای از هر فایلی که در تاریخچهٔ پروژه است توسط گیت آورده میشود.
در حقیقت اگر احیاناً دیسک سرور شما دچار مشکل گردد و اطلاعات از دست روند غالباً میتوانید به طور مستقیم از هر کلون دیگری
روی هر کلاینت دیگری استفاده کنید تا اطلاعات سرور را به همان حالتی که به هنگام کلون کردن بود بازگردانید.
(ممکن است بعضی از هوکهای سرور و این قبیل اطلاعات از دست بروند اما تمام نسخههای کنترل شده خواهند ماند — برای جزئیات بیشتر ch04-git-on-the-server.asc را مطالعه کنید.)
با دستور 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 استفاده میکند.
ch04-git-on-the-server.asc تمام گزینههای موجود برای را دسترسی به مخزن گیت را معرفی خواهد کرد و درباره مضرات و فواید هر کدام توضیح خواهد داد.