git : یک سیستم کنترل ورژن که برای کنترل نسخه های مختلف کدهایمان و کارهای تیمی هست ومورد استفاده قرار میگیرد
نکته : مفهوم conflict یعنی به مشکل خوردن یا تداخل در کدهامون deploy به فرآنید انتشار محصول میگویند
CI/CD فرآیندهای انتشار نرم افزار امون رو میان و برای ما به صورت اتوماتیک انجام میدهد
ما با استفاده از دستور نانو میتوانیم یک فایل رو در محیط گیت بش بیایم و بسازیم همچنین با استفاده از دستور cat هم میتوانیم بیایم و محتوای درون اون رو مشاهده بکنیم
nano index.php // ctrl + o == save ctrl + x // close
cat index.php
ما با استفاده از دستور git init میایم و گیت رو به پروژه امون اضافه میکنیم که یک فایل .git برای ما میسازه
حال برای اضافه کردن کد هامون به گیت باید از دستور git Add استفاده بکنیم و برای ثبت کردن اون در گیت یا کامیت کردنش باید از دستور زیر استفاده بکنیم
git commit -m " name commit "
git commit --amend -m "name"برای تغیر دادن نام کامیت قبلی مون اگراشتابها اسم اش رو گزاشتیم
git show id-commit
git log با استفاده از این دستور تمام کامیت هامون نشون میدهد
نکته : برای ثبت کردن کامیت هامون لازم هستش که قبلش بیام و گیت رو اصطلاحا config کنیم که برای این کار از دستورات زیر استفاده میکنیم
git config --global user.name "your name" / git config --global user.email "your email"
بهتر هسنش که یوزر و ایمیل گیت هاب امون رو بهش بدهیم
git file life cycle وضعیت فایلها در گیت به طور کلی به دو دسته تقسیم میشود
1- untracked به فایل هایی که ابزار گیت ما در مورد آن ها اصلا اطلاعاتی ندارد و
باید ی اتفاقی برای ترک شدن داشته باشد به پروژه ما اضافه نشده و رنگ قرمز دارند
برای رفتن به مرحله بعدی از دستور زیر استفاده میکنیم
git add نام فایل / برای انتخاب تمامی فایل ها دات
2- tracked گیت به وضعیت و تغیرات در داخل این فایل ها می تونه نظارت داشته باشد
فایل هایی که در وضعیت tracked هستند خودشون سه حالت می تونند داشته باشند
1- stage در نهایت هر دستوری که ما میایم و با دستور ادد اضافه میکنیم به این مرحله اضافه می شود
2- modified فایل قبلی با هرگونه تغیری میاد و به این وضعیت تغیر پیدا میکند
اگر بخاهیم این تغیرات که دوباره اضافه شدند رو دوباره به پروژه اضافه بکنیم باید ادد کنیم
3- unmodified به گیت ما اضافه شده یا به قولی ادد شده است اما تغیر دیگه ای روی آن اعمال نشده است
و منتظر کامیت کردن هستیم
git status برای دیدن وضعیت کد هامون از این دستور استفاده میکنیم
lifecycle git status چرخه زندگی هنگامی که از این دستور استفاده میکنیم
1- Working Directory در ابتدا هر کدی که بزنیم یا کاری انجام بدهیم میاد در این وضعیت قرار میگیرد
2- Stage Area با دستور Add یا اضافه کردن کدهایمان میاد و در این مرحله Stage قرار میگیرد
3- Repository با دستور کامیت کردن کدهایمان را وارد مخزن می کنیم
Branch یا شاخه
قرار میگیرد و شاخه ی توسعه برای برنامه نویسیان و شاخه های دیگر برای تعداد برنامه نویسان دیگر برای توسعه سعی میکنیم از شاخه ها استفاده کنیم یک شاخه اصلی یا مستر که نسخه ی دست مشتر
git branch nameBranch برای ساخت یک شاخه از دستور زیر استفاده میکنیم
git checkout nameBranch برای رفتن از یک شاخه به یک شاخه دیگر از دستور زیر استفاده میکنیم
git branch -d nameBranch
برای حذف کردن یک شاخه میایم و از دستور زیر استفاده میکنیم
تا اینجای کار که بخایم فقط از گیت استفاده کنیم 4 تا شاخه داریم
1- master 2- develop 3- Feature 4- hotfig
نکته : هنگامی که میخایم بین شاخه های متفاوت امون در داخل پروژه بیایم و حرکت کنیم سعی شود همه ی اونها رو
کامیت اش رو انجام بدهیم
نکته : برای ادغام کردن شاخه هامون از دستور زیر استفاده میکنیم که در ابتدا وارد شاخه ای که میخاهیم ادغام شود می رویم و بعد با دستور زیر نام شاخه ای را که میخاهیم با آن ادغام شود رو میایم و می نویسیم
git merge NameBranch
نکته : در همگامی که ما اومدیم و یک باگ رو خواستیم کامیت کنیم که اون باگ رو درست کردیم از bug-fix .... استفاده میکنیم کامیت ها باید باید معنا دار همراه با فاصله گزاری - باشد
نکته : در رفع یک conflicts در داخل گیت >>>>> HEAD منظور اخرین کامیت در برنچ فعلی امون هستش ===== نام برنچ تغیرات در یک برنچ دیگه هستش conflicts زمانی ایحاد میشود که ما میخاهیم معمولا merge انجام بدهیم