قراره تو این دوره چی یاد بگیرم؟

  • آشنایی کامل با مفهوم و فلسفه سورس کنترل‌ها
  • مفاهیم اولیه در گیت مثل Commit, Stage, index, Working Diractory, Repository و ...
  • سفر در زمان و جابجایی بین کامیت های گذشته و بازیابی کدها و شاخه ها
  • ادغام (Merge) کردن شاخه‌‌های (Branchs) مختلف با شاخه اصلی (Master) و رفع تداخل کدها
  • خطایابی و دیباگینگ بوسیله Git Bisect
  • ایجاد تغییر و جابجایی در کامیت ها با Squash, CherryPick, Rebase و ...
  • درک مفاهیم Merge و Rebase و کارکرد آن
  • ارسال پروژه روی سرور گیت و مفهوم و کار با Remote ها
  • کار با Github و مدیریت مخزن در آن
  • بررسی و کار با مفاهیم Issue و Pull Request
  • طراحی پروفایل GitHub
  • داشتن صفحه استاتیک شخصی در GitHub با دامنه اختصاصی
  • کدنویسی ویرایش پروژه در GitHub
  • و مباحث دیگری که در سرفصل دوره آمده ...
حامد مودی

حامد مودی

برنامه نویس وردپرس

طراح رابط و تجربه کاربری

متخصص افزونه نویسی

برنامه نویس ارشد PHP

و ....

سرفصل های دوره

۵ فصل
۱۰۵ جلسه
۲۶ ساعت
۱

مقدمات و راه اندازی

۱۱ قسمت
۰۱:۲۸:۰۳
1

مدرس و شیوه تدریس

رایگان
۰۲:۲۱
2

راه های ارتباط با مدرس

۰۴:۰۰
3

پیش نیاز دوره!

رایگان
۰۰:۵۵
5

سیستم کنترل نسخه یا VCS

۰۹:۴۲
6

انواع سیستم کنترل نسخه

۱۰:۰۶
7

کمی درباره پیدایش Git

۰۸:۲۶
8

تفاوت عملکرد Git و سایر سیستم های کنترل نسخه

۰۹:۱۴
9

نصب Git روی ویندوز

۰۶:۵۶
10

کمی درباره خط فرمان یا Command Prompt در ویندوز

۱۴:۳۴
11

کمی درباره خط فرمان Git Bash

۱۱:۵۸
۲

ثبت تغییرات پروژه

۳۳ قسمت
۰۷:۵۰:۲۴
۳

مدیریت شاخه های پروژه یا Branch

۱۷ قسمت
۰۳:۵۵:۱۴
۴

آموزش GitHub

۴۰ قسمت
۱۱:۲۳:۴۹
۵

آموزش Git Flow در گیت

۴ قسمت
۰۰:۵۸:۳۲

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

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

آموزش جامع Git و GitHub

مطالب مهمی که در دوره آموزش Git فرا می‌گیرید؟!

  • آشنایی کامل با مفهوم و فلسفه سورس کنترل‌ها (Source controls) و دلایل مهندسی نرم افزاری برای استفاده از آن‌ها
  • بررسی انواع و تاریخچه سورس کنترل‌ها (‌متمرکز، توزیع شده‌)
  • تاریخچه گیت و مزیت‌های استفاده از آن را فرا خواهید گرفت.
  • مفاهیم اولیه در گیت، نظیر نصب و ساخت ریپازیتوری و … را فرا خواهید گرفت.
  • پیکربندی و تنظیمات در گیت برای معرفی خودمان به گیت را فرا خواهید گرفت.
  • با فاز‌های اساسی گیت آشنا خواهید شد.
    • Working tree یا Working directory
    • Indexing یا Staging
    • Repository
  • اضافه کردن بخشی از یک فایل به فاز staging را فرا می‌گیرید.
  • یاد خواهید گرفت چطور تاریخچه کار‌ها در گیت را بوسیله commit id بررسی کنید.
  • جابجایی بین کامیت‌های مختلف و سفر در بین کامیت‌های مختلف را فرا می‌گیرید.
  • بررسی تغییرات انجام شده روی ریپازیتوری را یاد خواهید گرفت.
  • برگرداندن تغییرات در گیت را یاد خواهید گرفت.
  • با ایجاد شاخه‌ها (Branchs) در گیت، فلسفه آن و دلایل مهندسی نرم افزاری برای استفاده از شاخه‌ها را آموزش می‌بینید.
  • ادغام (Merge) کردن شاخه‌‌های (Branchs) مختلف با شاخه اصلی (Master) را فرا خواهید گرفت.
  • با مفهوم Rebase، کارکرد و تفاوت آن با Merge آشنا خواهید شد.
  • چطور فایل‌هایی را برای چشم پوشی (ignore) کردن به گیت معرفی می‌کنیم.
  • تگ زدن برای نسخه‌ها و وژن‌های مختلف پروژه را فرا می‌گیرید.
  • فرا می‌گیرید که چه کسی، در چه تاریخی، چه تغییری را در قسمتی از پروژه انجام داده است؟!
  • یا حتی میتوانید بفهمید آخرین تغییر روی خط n از فایل y را چه کسی انجام داده است!
  • خطایابی و دیباگینگ بوسیله گیت را آموزش می‌بینید.
  • با سرویس‌هایی نظیر گیت هاب و گیت لب (GitLab) و Fork کردن پروژه‌ها آشنا می‌شوید.
  • GUI‌های مختلف برای استفاده از گیت در مقابل git bash را فرا می‌گیرید.

آموزش Git دانشجویار چه مزیتی دارد؟!

  • در کنار آموزش درسنامه‌ی آموزشی‌، بصورت منظم داکیومنت شده است و در گیتهاب مدرس به آن دسترسی خواهید داشت.
  • تمامی دستورات بصورت عملی با سناریو‌های دنیای واقعی بررسی شده و اصول مهندسی نرم افزار و best practice‌ ها نیز در این دوره مطرح خواهند شد.
  • مباحث دوره آموزش گیت و گیت هاب از سطح مقدماتی شروع شده و در نهایت با مشاهده این دوره (که در آن سعی شده مطالب به شکل کامل و حرفه‌ای ولی به شکل ساده و مختصر توضیح داده شود) به سطحی خواهید رسید که بتوانید بصورت تیمی با یک تیم نرم افزاری مشارکت کنید یا پروژه‌های فریلنسری خود را مدیریت کنید.

مخاطبین دوره

  • برنامه نویسان و توسعه دهندگان نرم افزار در هر حوزه‌ای ( موبایل، دسکتاپ، وب، امنیت، هوش مصنوعی و … ) که قصد فعالیت و توسعه پروژه‌ها بصورت تیمی را دارند.
  • فریلنسرهایی که قصد دارند از گیت برای مدیریت پروژه‌های شخصی خود استفاده کنند.
  • برنامه نویسانی که علاقه مند به مشارکت در پروژه های open source هستند.
  • افرادی که قصد مدیریت ورژن ها و نسخه هایی از فایل‌ها و مطالب خود را دارند نظیر:
    • مترجمین کتاب
    • نویسندگان کتاب و مولفین
    • افرادی که قصد نگارش تز و یا پایان نامه خود را دارند
    • و … .

پیش نیاز‌های آموزش Git

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

سورس کنترل چیست؟

یکی از ویژگی‌های مهم مهندس نرم افزار حرفه‌ای دانش استفاده از سورس کنترل‌ها (SCM یا Source control management) و ورژن کنترل‌ها (VCS یا Version control system) است. زیرا که مهم‌ترین دارایی شما در فرآیند تولید نرم افزار، سورس کد نرم افزاری است که در حال توسعه آن هستید، به همین دلیل نگه‌داری از آن و مدیریت درست تغییرات در آن بسیار با اهمیت است. شما با شرکت در این دوره آموزش جامع Git یادخواهید گرفت که چگونه پروژه‌های برنامه‌نوسی خود را با سورس کنترل گیت مدیریت کرده و راندمان کاری خود را بالاتر ببرید.

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

چرا باید از سورس کنترل استفاده کنیم؟

  • مهم‌ترین دارایی در فرآیند تولید نرم افزار سورس کد شما است.
  • جابجایی بین ورژن‌ها و نسخه‌های مختلف پروژه
  • باگ‌یابی نرم افزار و رفع باگ کد
  • چه کسی، در چه زمانی، چه تغییری را در کد ایجاد کرده است؟
  • مدیریت کد‌های اعضای تیم و ایجاد شاخه ( ‌‌Branch )‌های فرعی در پروژه و ادغام ( Merge ) این شاخه‌ها با کد اصلی بدون کانفلیکت و مشکل
  • و … .
آموزش git و دلیل استفاده از آن
سورس کنترل‌ها مشخص می‌کنند که چه کسی،‌ چه تغییری، در چه زمانی روی کد ایجاد کرده است.

انواع سورس کنترل‌ها:

  1. سورس کنترل‌های Centralized (متمرکز یا مرکزی):

در این نوع از سورس کنترل‌ها، کد همه اعضای تیم روی یک کامپیوتر یا سرور قرار می‌گیرد. برای اشتراک‌گذاری و دریافت کد، هر برنامه نویس باید به آن کامپیوتر یا سرور متصل شود. از معروف‌ترین این سورس کنترل‌ها SVN و TFS را می‌توانیم نام ببریم.

 آموزش git و منابع مرکزی
سورس کنترل‌های مرکزی
  1. سورس کنترل‌های Distributed (غیر متمرکز یا پراکنده):

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

آموزشgit وسورس های غیر متمرکز
سورس کنترل‌های غیر متمرکز یا پراکنده

مزیت‌های سورس کنترل‌های Distributed (پراکنده)

  • عدم نیاز به شبکه
  • سرعت بسیار بسیار زیادتر نسبت به مدل مرکزی
  • مشارکت در پروژه ها بدون نیاز به داشتن دسترسی به کامیت‌های برنامه نویسان دیگر
  • کاهش خطر از دست رفتن اطلاعات
  • تمیز‌تر بودن مخزن یا ریپازیتوری اصلی (Master)

سورس کنترل‌های توزیع شده مختلفی وجود دارند نظیر Git، BitKeeper، Darcs، Fossil، Mercurial و … که در این بین گیت، محبوب‌ترین بین آن‌هاست و در این دوره آموزش جامع Git قصد داریم به سطح مطلوبی از مهارت استفاده از این سورس کنترل قدرتمند برسیم.

چالش‌های برنامه‌نویسی که همه تجربه کردیم

  • شده که یه کدی رو بنویسید، حذفش کنید و بعد از مدتی دوباره به اون نیاز پیدا کنید؟ این بازنویسی‌های بی‌پایان وقت‌گیر و خسته‌کننده هستن.
  • یه ویژگی رو توسعه دادید، کارفرما میگه نمی‌خوام؛ حذفش می‌کنید. اما بعد از مدتی میگه دوباره نیاز دارم! باید دوباره از اول وقت بذارید.
  • چند ماه بعد از نوشتن کدی، دیگه یادتون نمیاد چرا اون رو اون‌طور نوشتید. کاش همون لحظه یه توضیح براش می‌نوشتید، درسته؟
  • پروژه‌ای که مدام آپدیت میشه، نسخه‌های مختلفی مثل “نسخه 1″، “نسخه 2” و… داره. اما این نسخه‌ها به‌هم ریخته میشن و یادآوری تغییرات سخت میشه.
  • وقتی تیمی روی پروژه کار می‌کنید، ترکیب فایل‌ها و کدها زمان‌بره. باگ‌های امنیتی و پیدا کردن منبع مشکلات هم کار رو سخت‌تر می‌کنه.

راه‌حل این مشکلات: گیت!

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

 گیت (Git) سورس کنترل محبوب!

گیت در سال 2005 توسط خالق لینوکس، لینوس توروالدز به وجود آمده و توسعه آن آغاز شد. قبل از استفاده از این سورس کد، تیم لینوکس برای پروژه کرنل لینوکس از سورس کنترل BitKeeper (صاحب این سیستم لری مک ووی) برای نگه داری و مدیریت پروژه استفاده می‌کردند. اما از یک زمانی به بعد، صاحبان این سورس کد، تصمیم گرفتند که این سورس کد را فروشی کنند. همین عامل باعث شد لینوس توروالدز به فکر استفاده از سورس کنترل‌های دیگری برای توسعه پروژه بیفتد. او سرانجام در ماه آوریل ۲۰۰۵ کار روی گیت را آغاز کرد و یکسال بعد از آن (در ماه ژوئن)، گیت توانست مدیریت ریلیز نسخه بعدی لینوکس را بر عهده بگیرید.

 چرا گیت (Git)؟ دلایل محبوبیت آن چیست؟

  • سرعت فوق العاده
  • حجم کم مخزن (Repository)
  • پایداری
  • راحتی کار با شاخه‌ها (Branch)
  • کامیت با جزئیات بیشتر
  • تمیز بودن Working directory با فولدرهای .git
  • نمایش میزان پیشرفت عملیات
  • Feature rich بودن گیت (تنوع زیاد مجموعه دستورات و امکانات)

چرا باید گیت را یاد بگیریم؟

یادگیری گیت برای هر برنامه‌نویسی ضروری است، زیرا این ابزارها می‌توانند بسیاری از مشکلات رایج در فرآیند توسعه نرم‌افزار را حل کند. در ادامه دلایل اصلی یادگیری گیت را بررسی می‌کنیم:

1. حل مشکلات رایج در توسعه نرم‌افزار

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

2. ابزاری ضروری برای هر برنامه‌نویس

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

3. انتظارات بازار کار

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

4. قابلیت استفاده در همه زبان‌ها و تکنولوژی‌ها

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

5. افزایش بهره‌وری و کاهش خطاها

گیت به شما کمک می‌کند تا با استفاده از ویژگی‌هایی نظیر شاخه‌ها (Branches)، بازبینی (Review) و ادغام کدها (Merging)، کارهای خود را با کمترین خطا و بیشترین کارایی انجام دهید. با گیت، می‌توانید با اطمینان بیشتری پروژه‌هایتان را توسعه دهید و زمان بیشتری را صرف حل مشکلات مهم‌تر کنید.

6. ارتقاء توانایی‌های تیمی و همکاری

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

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

ادامه متن دوره ...

مدرک معتبر دو زبانه

پس از گذراندن دوره و انجام پروژه های مشخص شده، مدرک معتبر و دو زبانه دانشجویار را دریافت خواهید کرد.

مدرک فارسی مدرک انگلیسی