دستور git init
در این مقاله به صورت مفصل و عمقی دستور git init
را بررسی می کنیم. در پایان این مقاله شما به صورت کامل با عملکرد مجموعه دستورات git init
آشنا خواهید شد. این مقاله شامل بررسی موارد زیر است:
- تنظیمات و موارد استفاده git init
- بررسی پوشه
.git
- مقادیر یا ثابت های محیطی سفارشی در دستور git init
- مقایسه git init و git clone
- ایجاد مخزن یا repository از نوع bare با دستور git init
- استفاده از قالب پیشفرض در git init
دستور git init یک مخزن جدید ایجاد می کند که می تواند یک پروژه خالی و یا پروژه ای که از قبل وجود داشته ولی تحت مدیریت سیستم کنترل نسخه نبوده را تبدیل به یک مخزن Git با قابلیت کنترل نسخه کند. اکثر دستورات Git در خارج از یک مخزن Git قابل استفاده نیستند یعنی اگر در ابتدا دستور git init یا git clone را نزنید بقیه دستورات اصلا اجرا نمی شمند، پس معمولا اولین دستوری که در یک مخزن Git مورد استفاده قرار می گیرد همین دستور git init است.
اجرای دستور git init یک زیر پوشه داخل پوشه پروژه شما با نام .git
ایجاد می کند که شامل فایل ها و داده های لازم برای مخزن Git است. این داده ها شامل زیر پوشه ها آبجکت ها، ارجاعیات، و فایل های قالب است. یک فایل HEAD هم ایجاد می شود تا به آخرین ثبت انجام شده در شاخه یا branch فعال اشاره کند.
در کنار پوشه .git
بر خلاف سیستم svn که به ازای هر زیرپوشه نیاز به یک .git
جداگانه دارد، اما در Git هیچ فایل یا پوشه دیگر تغییر نمی کند.
به طور پیشفرض، دستور git init تنظیمات Git برای پروژه را در مسیر پوشه .git
راه ایجاد و اندازی می کند. البته اگر دوست داشته باشید مسیر این پوشه می تواند تغییر کند یا سفارشی شود. می توانید مقدار ثابت محیطی $GIT_DIR
را به یک مسیر سفارشی تنظیم کنید و دستور git init را اجرا کنید تا تنظیمات در پوشه جدید شما قرار گیرد.
به علاوه می توانید با ارسال پارامتر --separate-git-dir
همین نتیجه را بگیرید. یک مورد استفاده از برای یک دایرکتوری .git
جداگانه نگه داری تنظیمات سیستمی شما یعنی dotfile ها است (.bashrc, .vimrc و …) در داخل دایرکتور اصلی در حالیکه .git را داخل پوشه دیگر نگهداری کرده اید.
کاربر git init
در مقایه با سیستم Svn، دستور git init
به شدت یک روش ساده برای ایجاد جدید تحت کنترل نسخه است. Git شما را از ایجاد یک مخزن، وارد کردن فایلها و … بی نیاز می کند. به علاوه، برای استفاده از گیت اصلا نیاز به سرور و دسترسی دادن یا ندادن مدیر سرور ندارید. تمام کاری کا باید انجام دهید این است که با دستور cd به دایرکتوری مورد نظر رفته و دستور git init
را اجرا کنید و با همین کار یک مخزن گیت کامل دارید.
git init
دایرکتوری فعلی به یک مخزن گیت تبدیل می کند. با اجرای این دستور زیر دایرکتوری .git به دایرکتوی فعلی اضافه شده و امکان شروع ثبت و ضبط تغییرات در کد به ما داده می شود.
git init <directory>
یک مخزن گیت خالی در یک دایرکتور مشخص ایجاد می کند. اجرای این دوستور یک زیر دایرکتوری بدون محتوا اما دارای پوشه .git ایجاد می کند.
اگر شما دستور git init را روی یک دایرکتوری پروژه ای اجرا کنید که از قبل زیر دایرکتوری .git در آن موجود باشد بدون نگرانی می توانید این کار را نجام دهید چرا که این دستور تنظیمات .git را جایگزین پوشه قبلی نمی کند.
تقاوت git init و git clone
یک توضیح سریح: دستورات git init
و git clone
می توانند به سادگی با هم اشتباه گرفته شوند. در سطح بالا، هر دو دستور یک مخزن جدید گیت راه اندازی می کند. هر چند دستور git clone
خود مبتنی برا git init
است. دستور git clone
برای ایجاد یک کپی از مخزنی که از قبل موجود است استفاده می شود. اگر خواسته باشیم دقیق تر بگوییم، دستور git clone
خود ابتدا از دستور git init
برای ایجاد مخزن استفاده می کند. سپس داده های روی یک مخزنی که از قبل موجود است را کپی میکند و می توانید ادامه پروژه را اجرا کنید.