آموزش گیت – بخش سوم

( به نام خدا )

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

این بخش دستورات  {amend,reset , soft, mixed, hard, gitignore, branch, checkout, merge, stash} پوشش داده شده و آخرین بخش از آموزش گیت خواهدبود.

مستقیم بریم سر اصل مطلب و زیاد حرف نزنیم.

تغییر آخرین کامیت:

یه زمان پیش میاد که آخرین کامیتی که انجام دادیم رو میخوایم تغییر بدیم (میتونه  محتوای فایلمون باشه یا میتونه توضیحی که براش نوشتیم باشه!)

برای اینکه آخرین کامیت رو اصلاح کنیم از دستور –amend استفاده میکنیم , amend به معنای اصلاح کردن .

 

برگشت به عقب :

هنگامی که خواستیم به یک یا چند کامیت قبلی برگریم از این سری دستورات استفاده میکنیم .

1) reset –soft

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

 

mohandesjan.ir_.png” width=”726″ height=”368″ />

 

خب حالا برای برگشتن به هر کدوم از این کامیت ها از این یونیک کد هایی که دراختیار داریم جلوی دستور git reset –soft استفاده میکنیم به نمونه کد زیر توجه کنید.

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

نکته : با این دستور (soft) تنها کامیت های گیت رو تغییر میدیم و تغییری در فایل های اصلی ایجاد نمیشه همچنین با این دستور فایل ها از مرحله ۳ که مخزن اصلی هستند وارد مرحله ۲ یعنی استیج میشن.

2) reset –mixed

تفاوت این دستور با soft در این هستش که کامیت ها که در مخزن اصلی قرار دارند به مرحله یک برمیگردند همون working

باید توجه داشت بازهم تغییری در کد های موجود در فایل ها ایجاد نمیشه.

مثال:

 

3) reset –hard

این دستور کامیت را به مرحله یک برمیگردونه و حتی کد های داخل فایل ها هم به نسخه ای که انتخاب کردیم برمیگردونه و کامل تغییر میکنه. فوق العادست !

مثال:

 

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

 

نادیده گرفتن فایل یا دایرکتوری:

برای اینکه به گیت بفهمونیم ما یک سری فایل رو نمیخوایم دنبال کنی باید با دستور زیر یه فایل متنی که البته hide هست ایجاد میکنیم

 

با اضافه کردن نام فایل یا دایرکتوری داخل این فایل  دیگه گیت سراغ اونا نمیره اما خود فایل .gitignore رو باید add و commit کنیم .

 

شاخه ها در گیت (branch):

 رسیدیم به یکی از قسمت های مهم گیت : شاخه 

به محض ورود گیت به پروژه ای شاخه master ایجاد میشه که مخصوص همون ایجاد کننده پروژه هستش اما ممکنه بخوایم روی یک پروژه متن باز کار کنیم و یا توی یک پروژه گروهی مشغول کار بشیم .

طبیعتا نمیایم روی نسخه اصلی تغییرات خودمون رو اعمال کنیم چون امکان وجود ایرادات یا باگ توی کد ما وجود داره . راه حل چی میتونه باشه؟

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

همچنین میشه ورژن بندی کنیم پروژمون رو .

بریم سراغ دستورات مربوط به شاخه :

نمایش شاخه های موجود:

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

ایجاد شاخه جدید:

وارد شدن به شاخه دیگر:

ساخت همزمان شاخه جدید و ورود به آن:

مشاهده تفاوت های بین دو شاخه :

در اینجا بجای name1 و name2 نام دو شاخه مورد نظر رو وارد کنید.

تغییر نام شاخه ها:

 حذف یک شاخه:

ادغام دو شاخه (merge):

برای مثال ما میخوایم به شاخه اصلی master کد هایی  که داخل شاخه name زدیم رو وارد کنیم برای اینکار وارد شاخه مقصد میشیم توی این مثال master هستش و از داخل اون شاخه دستور زیر رو وارد میکنیم.

 حافظه موقت ذخیره سازی

یه زمان برای ما پیش میاد که تغییراتی که روی کد ها انجام دادیم رو نمیخوایم کامیت کنیم که وارد مخزن اصلی بشه (حالا به هر دلیلی مثلا کدمون کامل نیست میخوایم بعدا تکمیلش کنیم و بعد کامیت کنیم)ولی نیاز داریم که از شاخه ای به شاخه ی دیگه بریم برای اینکه کد نصفه نیمه خودمون رو در فضایی موقت داشته باشیم از دستور زیر استفاده میکنیم:

 

همچنین اگر بخوایم توضیحی برای این ذخیره سازی بنویسیم بصورت زیر عمل میکنیم:

زمانی که در حافظه موقت ذخیره کردیم براحتی و بدون هیچ مشکلی میتونیم از شاخه ای به شاخه دیگه بریم .

مشاهده لیست ذخیره سازی در حافظه موقت:

mohandesjan.ir-1.png” alt=”” width=”721″ height=”206″ />

زمانی که تغییرات رو میبریم به حافظه موقت ، تغییرات ما از درون فایل برداشته میشه برای بازگردانی آن به فایل ها از دستور زیر استفاده میکنیم

بازگردانی از حافظه موقت:

حذف از حافظه موقت:

 همزمان بازگردانی و حذف از حافظه موقت:

سخن پایانی

تبریک میگم تقریبا میتونم بگم تو این سه بخش از آموزش های گیت بالای 95 درصد از دستورات گیت رو یاد گرفتیم  انشاالله آموزش گیت هاب هم داخل سایت قرار میدم که اصل کار در واقع در گیت هاب اتفاق میوفته جایی که کد های ما آنلاین میشن و در فضای گیت هاب ذخیره میشه و تغییراتمون رو اونجا اعمال میکنیم.

اگر مطلب دیگه ای بنظرتون نیاز به گفتنش بود همین پایین کامنت کنید تا به این آموزش اضافه بشه سوالاتی که براتون پیش اومده هم کامنت کنید.

موفق باشید

مهندس جان 🙂

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *