دستور git init

در این مقاله به صورت مفصل و عمقی دستور 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 برای ایجاد مخزن استفاده می کند. سپس داده های روی یک مخزنی که از قبل موجود است را کپی میکند و می توانید ادامه پروژه را اجرا کنید.