آموزش Git - بخش اول :
قویترین ابزار Version Control در دنیای نرم افزار که بیش از 90 درصد تیم های نرم افزار در حال حاضر، گیت را به عنوان Source Control خود انتخاب کرده و با آن کار می کنند.
شما به عنوان برنامه نویس حتما باید به یکی از ابزارهای Source Control مسلط باشید که الان دوران Git می باشد و بهتر است این ابزار را یاد بگیرید. ما در این مقاله گیت را خواهیم شناخت، با نحوه کارش آشنا خواهیم شد و دستورات پرکاربرد Git را تمرین خواهیم کرد.
کاربرد و نقش Source Control :
شما برای اینکه تاریخچه تغییرات را داشته باشید و همچنین بتوانید به صورت یک تیم روی یک پروژه کار کنید حتما نیاز به یک ابزار Source Control خواهید داشت.
مهم ترین کارهای که ابزارهای Source Control برای ما انجام می دهند به شرح زیر می باشد :
- اینکه History کارها و تغییرات رو داشته باشیم
- امکان کار تیمی روی یک پروژه
- ورژن بندی پروژه
انواع Source Control
نرم افزارهای Source Control در دو دسته زیر قرار می گیرند که شامل :
- Centralized : در این مدل ما یک سرور یا یک کامپیوتر اصلی خواهیم داشت که سورس اصلی پروژه روی آن قرار می گیرد و همه برنامه نویس ها (کلاینت ها) به آن متصل شده و یک کپی از سورس روی سیستم خود دریافت کرده و روی آن کار می کنند. (سورس پروژه : Remote Repository Code). تعدادی از نمونه های معروف از این نوع source control ها :
- SVN
- Source Safe
- Team Foundation Server - TFS
- Distributed : در این روش ما دو Repository با نام های Remote Repository بر روی سرور و Local Repository بر روی کلاینت داریم که برنامه نویس می تواند تا مدت ها تغییرات و تاریخچه آنها را روی local repository خود داشته باشد و سپس آنها را به روی remote repository ارسال یا push کند.
در تصویر زیر شما دو حالت Centralized در سمت چپ تصویر و Distributed در سمت راست تصویر را مشاهده می کنید.
معرفی Git و ویژگی های آن
گیت در سال 2005 توسط آقای لینوس توروالدز نوشده شده و سپس توسط نفرات دیگر توسعه داده شده است. امروزه در سال 2020 یکی از قویترین و تاثیرگذارترین ابزارها در دنیای برنامه نویسی، نرم افزار Git می باشد. در ادامه یک سری از نکات و ویژگی های گیت آورده شده است ::
- در سال 2005 شروع شده
- توسط Linus Torvalds ایجاد شده
- یک Distribute Version-Control
- امکان ثبت تغییرات روی local repository : commit
- امکان ارسال تغییرات از local repository بر روی remote repository : push
- دریافت تغییرات از روی remote repority بر روی local repository : pull
- ویژگی branch : یک مسیر جدید برای اعمال تغییرات مورد نظر و سپس این مسیر ایجاد شده را با مسیر اصلی (master) merge می کنیم.
- برای استفاده از گیت نیاز به دیتابیس خاصی نداریم و به صورت file base تغییرات ذخیره می شوند.
نصب Git در Windows
برای نصب git بر روی سیستم عامل خود می توانید براحتی از سایت خود Git فایل نصب آن را دانلود و روی سیستم خود نصب کنید. نصب Git نیاز به پیش نیاز خاصی ندارد و براحتی می توانید آن را روی سیستم خود نصب کنید.
افزودن اولین پروژه به Git
گیت یک فولدر را به عنوان فولدر اصلی پروژه در نظر می گیرد و محتوای داخل آن را رصد می کند. شما
از طریق روش های زیر می توانید فولدر خود را به سورس کنترل گیت اضافه کنید :
- از طریق command prompt : در مسیر فولدر مورد نظر باید command prompt را باز کنید. سپس از دستور git init برای افزوده شدن گیت به فولدر مورد نظر استفاده کنید.
- از طریق vs code : از طریق منوی Source Control و Initial Repository در محیط vs code
شما از طریق 2 راه بالا می توانید فولدر پروژه خود را به local repository اضافه کنید و وارد دنیای Git شوید.
مراحل افزودن فایل به git و نحوه commit کردن
در تصویر زیر شما مشاهده می کنید که یک فایل برای افزوده شدن به local repository چه مسیری رو باید طی کند تا حالت آن در local repository نهایی شود. فایل های در git دارای دو حالت می باشند که حالت UnTracked می باشند یعنی این فایل به گیت افزوده نشده و حالت Tracked که معنی این را دارد که فایل به git افزوده شده و در حال مانیتور توسط گیت می باشد.
شما باید بعد از افزوده شدن یک فایل ابتدا آن را add کنید تا از حالت Un Tracked به حالت Tracked تبدیل شود و سپس برای نهایی کردن تغییرات باید آن تغییرات را commit کنید تا تغییرات شما نهایی شود.
در این بخش مجدد همه مراحل کار در Commit کردن یک یا چند تغییر در git را مشاهده می کنید :
- ابتدا باید همه تغییرات یا تغییرات مورد نظر را در git با دستور git add اضافه کنیم :
- git add . : یعنی همه تغییرات اتفاق افتاده در حالت stage اضافه شوند
- git add file1.txt : فقط تغییرات فایل مورد نظر در حالت state اضافه شود.
- برای نهایی شدن تغییرات در حالت stage به حالت commited از دستور git commit -m “message” استفاده می کنیم. در local repository
کاربرد حالت stage
یکی از کاربردهای stage این است که اگر شما بخواهید تغییرات جاری به طور مثال در 5 فایل اتفاق افتاده است را در دو Commit جداگانه داشته باشید، از امکان stage استفاده می کنیم. مثلا 2 تغییر اولیه را با یک Commit و سه تغییر دیگر را با Commit جداگانه ثبت می کنیم.
در ادامه با چند دستور پراستفاده در git آشنا می شویم. شما باید این دستورات را در داخل command prompt یا در ترمینال vs code اجرا کنید.
دستور git status
لیست تغییراتی که هنوز در git به صورت untracked - modify می باشند و همینطور لیست تغییراتی که در حالت stage می باشند ولی هنوز commit نشده اند را نشان می دهد.
دستور git log
لیست Commit ها را نشان می دهد.
دستور git add
برای افزودن تغییرات و فایل به حالت stage از این دستور استفاده می کنیم. اگر تعداد تغیرات زیاد بود و می خواهید همه تغییرات را به صورت یکجا اضافه کنید در انتهای دستور از dot یا نقطه استفاده کنید مانند git add . ولی اگر می خواهید فقط یک فایل را add کنید می توانید نام فایل را در انتهای دستور add قرار دهید مثل : git add file01.txt
دستور commit
از این دستور برای نهایی کردن تغییرات استفاده می کنیم. همراه دستور commit باید یک پیغام هم ثبت کنیم که نشان دهد در این commit چه کاری انجام داده ایم.
git commit -m “commit message”
برای مشاهده لیست commit ها می توانیم از دستور git log یا دستور git log --pretty=oneline استفاده می کنیم. سوئیچ –pretty=oneline باعث می شود خلاصه هر لاگ در یک خط نمایش داده شود.
کاربرد دستورات checkout ، revert و reset در Git :
- reset
برای حذف تغییرات local ای که stage شده اند یا stage نشده اند استفاده می شود. :
git reset - -hard HEAD
* نکته اینکه reset نمی تواند فایل یا فولدر های track نشده را حذف کند. این کار باید با دستور clean انجام می شود.
- clean
این دستور برای حذف فایل ها و فولدرهای Track نشده استفاده می شود.- git clean -n : لیست فایل هایی که می توانید حذف کنید را نمایش می دهد.
- git clean -f : حذف فایل های track نشده
- git clean -df : حذف فولدرهای track نشده که داخل آنها فایل یا فولدری وجود دارد به همراه محتویات داخل آنها
- revert
زمانی استفاده می کنیم که بخواهیم تغییرات یک commit را برگردانیم.این دستور تغییرات commit را برمی گرداند و خود commit در git log قابل مشاهده با وضعیت reverted می باشد.
git revert commitId - checkout
حرکت بین commit ها یا branch ها می باشد.
git checkout commitId : برگشت به Commit مورد نظر
git checkout branchName : برگشت به آخرین وضعیت که داشتیم
* برای مشاهده خلاصه لاگ همه کامیت ها از دستور : git log --oneline
دستور diff
برای مشاهده تغییراتی که انجام شده است و هنوز stage نشده اند
git diff
دستور blame
چه تغییراتی توسط چه کسانی تا به حال روی فایل مورد نظر انجام داده است
git blame File01.txt
فایل gitignore.
فایلی است که در آن مشخص می کنیم که git چه فولدرها و چه فایل هایی را Track نکند. مثل فولدرهای :
- node_modules
- build
- test
یعنی git با این فولدر و فایل ها کاری نداشته باشد و آنها را نادیده بگیرد.
تا این بخش از مقاله را به صورت ویدئوی آموزشی هم می توانید از روی دوره آموزشی گیت مشاهده بفرمایید
دوره رایگان آموزش گیت
پایان بخش اول مقاله