موضوع مقاله

گیت دقیقا چیه؟

لـرنیا چـیه ؟

Thumbnail Image لرنیا مسیر یادگیری شما را مشخص می کنه و باعث سرعت موفقیتت میشه Thumbnail Image

گیت دقیقا چیه؟

مقدمه

احتمالا شما هم با نرم‌افزارهایی مثل فتوشاپ و یا مجموعه آفیس کار کردین و می‌دونید که با استفاده از میانبر ctrl+z می‌تونید به تغییرات قبل بازگردین؛ البته توجه کنید که این میانبر فقط تا زمانی که در حال اجرای اون نرم‌افزار هستید کاربرد داره و مثلا اگه نرم‌افزار رو ببندید و یه بار دیگه اجرا کنید، این میانبر دیگه کار نمی‌کنه. حالا تصور کنید که شما بعد از مدت‌ها متوجه میشین که باید به نسخه‌های قبلی فایل‌تون مراجعه کنید. همون‌طور که اشاره شد در اینجا دیگه میانبر ctrl+z به کار نمیاد، چون احتمالا چندین بار از اون برنامه خارج شدیم و اونو اجرا کردیم. خب در این مواقع راهکار شما چیه؟

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

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

در ادامه قصد داریم تا نحوه‌ی کار با این ابزار رو به طور خیلی مختصر و البته کاربردی، آموزش بدیم. با ما همراه باشین.

گیت (Git) چیست؟

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

گیت چگونه بوجود آمد؟

عکس بارگذاری نشده است

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

خب حالا که با تاریخچه گیت و مزایای اون آشنا شدیم، بهتره که هر چه سریع‌تر این آموزش رو شروع کنیم.

شروع کار با Git

خب گفتیم که گیت یه ابزاره حیاتی برای برنامه‌نویسان هستش. همون‌طور که می‌دونید برنامه‌نویسی هم یه شغل و حرفه هستش مثل نجاری، مکانیکی و... و خب برای شروع هر حرفه‌ای، ابتدا باید ابزارهای موردنیاز اونو تهیه کنیم.

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

دانلود و نصب git

برای دانلود و نصب گیت کافیه که به مرجع اصلی git یعنی سایت git-scm.com مراجعه کنید. و از بخش Downloads با توجه به سیستم‌عاملی که دارین، ابزار گیت رو دریافت و نصب کنید.

عکس بارگذاری نشده است

نصب در ویندوز

برای سیستم‌عامل ویندوز فقط کافیه که فایل نصبی git رو دانلود کنید و اونو نصب کنید. مراحل نصب هم ساده است و مثل اکثر فایل‌های نصبی در محیط ویندوز، شامل چند گزینه next و finish هستش. پیشنهاد می‌کنم که در مراحل نصب، گزینه‌های پیش‌فرض رو بدون تغییر بگذارین و مراحل رو ادامه بدین.

نصب در لینوکس و مک

برای نصب گیت در محیط لینوکس و مک، شما باید از طریق خط‌فرمان‌های مربوط در هر سیستم‌عامل و با استفاده از توضیحاتی که در بخش دانلود در سایت git-scm وجود داره،‌ اقدام به نصب کنید.

پیکربندی اولیه در گیت

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

 “git config –global user.name “YourName $

 $git config –global user.email “user@example.com

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

ایجاد اولین مخزن در گیت

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

git init $

بعد از اجرای این دستور، یه فولدر مخفی با نام .git در پوشه root (ریشه) ساخته میشه. و در این پوشه، تغییرات و تاریخچه اونها در این فولدر ذخیره میشه و توصیه میشه که با این فولدر کاری نداشته باشید و محتویات اونو دستکاری نکنید.

چگونگی ثبت تغییرات یا کامیت‌ها در گیت

با استفاده از دستور بالا می‌تونید فایل‌هایی که قصد دارین رو به مخزن میانی اضافه کنید؛ اما تک تک اضافه کردن فایل‌ها و فولدرها کار زمان‌بریه!‌ از این رو می‌تونید با استفاده از دستور زیر تمام فایل‌ها و فولدرها رو به مخزن گیت اضافه کنید.

.git add$

بعد از اضافه کردن تغییرات به لایه stage شما باید تغییرات خودتون رو ثبت کنید، اصطلاحا باید اونا رو commit کنید و برای هر کامیتی شما باید یه پیام مرتبط و البته معناداری رو در نظر بگیرین، مثلا مشخص کنید من تا این مرحله فلان ویژگی‌ها رو اضافه کردم و یا فلان موارد رو بهبود دادم.

”git commit -m “message$

راستی شما می‌تونید با استفاده از دستور زیر عملیات add کردن و commit کردن رو یکجا انجام بدین؛ اینجوری مجبور نیستید که هر بار این دو تا دستور رو برای ثبت تغییرات اجرا کنید.

”git commit -am “message$

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

نادیده‌گرفتن برخی فایل‌ها

بعضی مواقع لازمه که یه سری فایل‌ها و یا فولدرها در روند ثبت تغییرات در مخزن گیت نادیده گرفته بشن، مثل فایل‌های build و یا کامپایل‌شده. برای این منظور ما می‌تونیم یه لیستی از فایل‌ها و فولدرها رو برای نادیده گرفته شدن در نظر بگیریم.

فقط کافیه که در پوشه ریشه یه فایلی به نام .gitignore ایجاد کنید و در اون لیست فایل‌هاتون رو بنویسید.

$ touch .gitignore

با استفاده از دستور بالا فایل موردنظر ساخته میشه و می‌تونید لیست فایل‌ها و پوشه‌هایی که قصد ندارین توی گیت ذخیره بشند رو بنویسید، بعد از ذخیره این فایل، حتی اگه تمام فایل‌ها و فولدرها رو با استفاده از دستور git add . اضافه کنید؛ این فایل‌ها نادیده گرفته میشن و در مخزن گیت ثبت نمیشن.

نمایش وضعیت در گیت

git status$

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

نمایش لیست کامیت‌ها

git log$

با استفاده از این دستور، لیستی از تاریخچه commit ها نشون داده میشه. هر کامیت شامل آیدی کامیت، پیام کامیت، توسعه‌دهنده، تاریخ و زمان هستش. با استفاده از ۷ رقم اول شماره کامیت می‌تونید بعدا به اون کامیت‌ها دسترسی داشته باشین و مثلا به اون کامیت‌ها مراجعه کنید.

کار با شاخه‌ها

عکس بارگذاری نشده است

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

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

ایجاد شاخه جدید در گیت

با استفاده از دستور زیر لیست شاخه‌های موجود نشون داده میشه و شاخه جاری با یه علامت * در ابتدای نام اون شاخه در لیست مشخص میشه.

git branch$

به طور پیش‌فرض، شاخه اصلی گیت، master هستش.

برای افزودن یه شاخه جدید کافیه که دستور زیر رو وارد کنید.

همچنین شما می‌تونید برای جابجا شدن به شاخه‌ی مربوطه دستور زیر رو اجرا کنید.

البته شما می‌تونید با استفاده از دستور زیر، دو تا دستور بالا رو یک‌جا اجرا کنید. یعنی در ابتدا یه شاخه‌ جدید بسازین و بلافاصله به اون شاخه جابجا بشین.

بازگشت به کامیت‌های قبل

با استفاده دستور checkout شما می‌تونید بین شاخه‌های مختلف و یا کامیت‌های مدنظر جابجا بشین و از اونجا، ادامه‌ی روند توسعه رو پیش برین.

ادغام شاخه‌ها

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

git checkout master$

 و بعد از اون با دستور زیر، شاخه مورد نظر‌ رو با این شاخه‌ای که الان در اون هستیم (یعنی master) ادغام کنید.

حذف شاخه‌ها

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

جمع‌بندی

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

ویدیو مقاله

مطالب مرتبط
مزایا و معایب فریلنسینگ

مزایا و معایب فریلنسینگ

رئیس و کارمند خودتی! وقتی به صورت فریلنسری کار کنید دیگه فقط دارید برای خودتون کار می کنید و به کسی نباید جواب پس بدید و کسی نیست که بهتون دستور بده چه کاری رو باید انج...

نویسنده: نام نویسنده
تاریخچه یونیکس و لینوکس

تاریخچه یونیکس و لینوکس

همزمان با توسعه یونیکس و سیستم عامل BSD دیگر سیستم عامل هایی بر پایه یونیکس توسعه پیدا می کردن که مستقیماً بر پایه کدهای تجاری یونیکس بودن یعنی توسط دیگر شرکت ها از شرک...

نویسنده: نام نویسنده
چجوری یه لپ تاپ مناسب برنامه نویسی بگیرم؟

چجوری یه لپ تاپ مناسب برنامه نویسی بگیرم؟

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

نویسنده: نام نویسنده
هوش مصنوعی دقیقا چیه؟

هوش مصنوعی دقیقا چیه؟

سرعت گسترش هوش مصنوعی و پیشرفت اون در سال های اخیر روندی به شدت صعودی گرفته و هر روز بیش از پیش در زندگی و تعاملات ما نفوذ کرده و تاثیر میذاره و این روز ها اگه بیشتر دقت...

نویسنده: نام نویسنده
چگونه یک فریلنسر موفق شویم؟

چگونه یک فریلنسر موفق شویم؟

از آنجا که این مقاله بیشتر جنبه راه کاری و راه حلی دارد، پس بدون هیچ مقدمه و مطرح کردن سوالی به سراغ مراحل و کار هایی که برای رسیدن به موفقیت در آزادکاری-فارغ از تخصص و ...

نویسنده: نام نویسنده
گیت دقیقا چیه؟

گیت دقیقا چیه؟

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

نویسنده: نام نویسنده

دیدگاه و نظرات