تو این مطلب درمورد lifecycle در گیت و چیزایی که خودم دراین مورد فهمیدم رو خلاصه مینویسم اگه جایی فکر کردید اشتباه بود یا کم داشت حتما بگید تا به این مطلب اضافه شه ممنون از وقتی که برای خوندن این مطلب میزارید . اگه از گیت هیچ اطلاعاتی ندارید پیشنهاد میکنی سری به این مطلب بزنید :
lifecycle در گیت
انواع file statuses درگیت؟
وضعیت فایل ها در git به دو دسته tracked و untracked تقسیم میشند . tracked فایل هایی که گیت شناخته و نظارت داره روشون ، untracked برعکس اونه و یعنی تغییرات یا فایل رو نشناخته و نظارت نداره .
نکته تمام فایل هایی که حذف یا اضافه میشن میرن تو دسته untracked هستند که با git add یا . git add اونارو ازین حالت در میشه آورد .
به طور کلی file status ها در گیت شامل 4 حالت هستند .
- Tracked ها که شامل : Unmodified , Modified, Staged
- Untracked ها که شامل : Untracked
اگه معانی ترنسلیتیشو نمیدونین به اینصورته : Untracked=ردیابی / شناخته نشده Unmodified=اصلاح نشده modified=اصلاح شده Staged=صحنه سازی شد .
Untracked مرحله شروع
دراینجا میبینید وقتی که git status میگیریم رنگ فایلامون قرمزه یعنی هنوز توسط گیت شناسایی یا اضافه نشده یا تغییراتش به git فهمونده نشده اینجا مرحله شروع ماست و ما با دستور زیر میتونیم همه فایلامون رو از پوشه مادر به git اضافه کنیم .
git add .
بعد انجام اینکار ما الان بین مرحله staged و Unmodified هستیم .
نکته : شما بعد add مستقیم میتونین commit کنید .
Unmodified مرحله ای که هنوز تغییری یا چیزی نشده
فایل هایی که merge میشن commit میشن میان تو این حالت قرار میگیرند . دراین حالت GIT فایلو میشناسه ولی هنوز هیج تغییراتی بعد اخرین ثبت در اون ایجاد نشده . یعنی من اگه 100 بار تغییر بدم و کامیت کنم میاد Unmodified حساب میشه .
Modified
فایلامون تو گیت چه وقت modified میشه؟همونطور که اشاره شد فایلا بعد . git add شدن میان تو stage و بعد کامیت بشن میان unmodified حالا بعد اون با هر تغییری وضعیتش به modified تغییر میکنه مثلا تو پوشه templates>pages یه فایل html داشتیم اونو یه تغییر کوچولو دادیم و بعد از زدن دستور git status میبینیم فایل مارو قرمز کرده و کنارش نوشته Modified ولی هنوز تو git ما تغییراتو بهش نفهموندیم خوب ما برای افزودن تغییرات ایجاد شده دوباره اینو میزنیم و میره دوباره staged و اماده commit کردن میشه .
. git add
. git add
Staged مرحله افزودن و فهموندن تغییرات به git
خوب اگه کد بالارو اعمال کنید فایل ما سبز میشه در این حالت رفتیم تو مرحله staged اصلا هر وقت git add زدید یعنی وارد مرحله staged شدید حالا چرا مهمه ؟ هر فایلی که رفته staged یعنی آماده commit شدنه .
Commit چی هست ؟ ثبت نسخه
ایجاد یک نسخه یا بزارین اینجور تفسیر کنم هر خروجی جدیدع پروژه رو Commit میگن که با دستور زیر انجام میشه داد . یعنی اگه بخواید برگشت به عقب بزنید طبق جایی که commit کردید برمیگردید بهش مثلا اگه فایلی توش از 1تا 10 عدد نوشته بود و اقای ایکس بیاد پاکش کنه و عدد 1 تا 6 بنویسه اما commit کنه و اقای y هم بیاد دوباره کنتش 1 تا 15 ولی commit نکرده باشتش .و بعد اون اگه بخوایم برگشت عقب کنیم و ببین اخرین نسخه چیشده میبینیم چیزی بما نمایش میده در پروژمون عدد1تا6 هست چون اخرین commit پروژه ما بوده . دستور کامیت هم در زیر میتونین با چشمان قشنگتون ببینید .
“git commit -m “message”
#message میتونه پیام یا گزارش اون برای ثبت نسخه هست .
اگه بازهم دوست داشتید جامع تر کلمه کلیدی های یا دستورات git رو بخونید
از اینجا مطالعه کنید : javatpoint.com/git-terminology
مجموعه دستورات و چرخه کلی گیت در کارواقعی
Clone Operation
تو github و gitlab زیاد دیدید یجورایی همون دانلود خودمون با فرق اینکه شما کافیه لینکشو تو جاهای مشخصی که از clone git پشتیبانی میکنن یا حداقل میفهمند مثل ترمینال یا ویژوال استودیو بزنید بعد اون پروژه دانلود میشه میاد میشینه رو سیستم شما یعنی از پروژه یه کپی میگیرید .
edit, add , move files , delete
اینکارا باعث میشه کپی ما از پروژه دچار تغییر بشه و بره حالت modified
status & git operation
بازبینی , برسی وضعیت فایل ها مقایسه commit ها و شاخه ها ) branch ها ) در نهایت اعمال تغییرات و add کردن به git و آماده سازی برای commit کردن .
commit & push operation
commit یجوری ثبت تغییرات حساب میاد اگه با vmware کار کرده باشید و کارایی snapshot رو بدونید اینم مثل همونه. push هم یعنی فرستادن برا مخزن میتونی لوکال باشه گیت باشه گیت لب باشه و مدیرپروژه هم برای برسی نهایی چک میکنه اوکی بود اضافه میکنه به فایلای اصلی پروژه در مخزن یا همون repository اگه پروژه خودتون باشه یا دسترسی بالا داشته باشید خودتون تایید میکنین و تمام .
Amend & push operation
واژه Amend = بهبود اصلاح ترمیم کردن push = فشار دادن ( شما فرستادن معنی بگریدش اینجا )
تغییرات تسک یا پروژه درصورت اوکی بودن commit ثبت و push میشه سمت مثلا گیت یا گیت لب و تسط مدیر پروژه برسی نهایی میشه در صورت اوکی بود merge ( ادغام ) میشه. یه مفهومیم این وسط میاد بنام branch و شاخه ها که مفصل تو یه پست دیگه توضیح میدم براتون شادو سلامت پر قودرت باشید بدرود..
خوشحال میشم نظرتون رو راجبه مطالب بدونم واینکه نکته اگه جا مونده یا بنظر اشتباه هست بدونم .