گیت۸ درس رایگان

آموزش گیت و گیت‌هاب از صفر، با ترمینال در مرورگر

در این دوره Git را با اجرای دستورها در ترمینال یاد می‌گیرید و هر commit و شاخه را روی نمودار زندهٔ مخزن می‌بینید. issue، pull request و بازبینی کد را هم در یک GitHub شبیه‌سازی‌شده تمرین می‌کنید.

  • بدون نصب Git
  • نمودار زندهٔ commitها و شاخه‌ها
  • درس‌های اول رایگان است
ببینید چه می‌سازید
درس
۱۲۵
فصل
۲۴
ساعت آموزش
۲۰
پایان دوره
گواهی
نمونه: اولین مخزن و اولین commit
terminalاولین مخزن و اولین commit
git init -q
echo "DinaShop" > README.md
git status --short
git add README.md
git commit -m "first commit"
git log --oneline
ترمینال
$ git init -q
$ echo "DinaShop" > README.md
$ git status --short
?? README.md
$ git add README.md
$ git commit -m "first commit"
[main (root-commit) eac6791] first commit
 1 file changed, 1 insertion(+)
 create mode 100644 README.md
$ git log --oneline
eac6791 first commit

پوشه به مخزن Git تبدیل می‌شود، یک فایل ثبت می‌شود و تاریخچه اولین commit را نشان می‌دهد. نمونه‌های دیگر

آنچه یاد می‌گیرید

در این دوره چه چیزهایی یاد می‌گیرید

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

  1. فصل ۱

    اولین مخزن و commit

    مخزن می‌سازید، فایل‌ها را commit می‌کنید و وضعیت را با status و log می‌خوانید. پشت صحنهٔ یک commit را هم با blob و tree می‌بینید.

  2. فصل ۲

    سه ناحیه و diff

    فرق پوشهٔ کار، staging و HEAD را یاد می‌گیرید، فقط بخشی از تغییرها را stage می‌کنید و diff را می‌خوانید.

  3. فصل ۳ و ۴

    فایل‌های نادیده و اصلاح commit

    با یک فایل ‎.gitignore رمزها و فایل‌های اضافه را بیرون از مخزن نگه می‌دارید و پیام یا محتوای آخرین commit را درست می‌کنید.

  4. فصل ۵ و ۶ و ۷

    شاخه، merge و hotfix

    روی شاخهٔ جدا کار می‌کنید، آن را به سه روش ادغام می‌کنید و با stash کار نیمه‌تمام را کنار می‌گذارید تا یک باگ فوری را درست کنید.

  5. فصل ۹ و ۱۰ و ۱۱

    کار با GitHub و همکار

    مخزن را به GitHub وصل می‌کنید، push، fetch، pull و clone را به کار می‌برید و کارتان را با کار همکاران هماهنگ می‌کنید.

  6. فصل ۱۲ و ۱۳ و ۱۴ و ۱۵

    تعارض، rebase و بازیابی

    تعارض را حل می‌کنید، تاریخچه را با rebase مرتب می‌کنید و با reflog کاری را که از دست رفته به نظر می‌رسد برمی‌گردانید.

  7. فصل ۱۷ و ۱۸ و ۱۹ و ۲۰

    issue و pull request

    از issue تا شاخه و pull request پیش می‌روید، PR کوچک و پیش‌نویس می‌سازید، کد همکار را بازبینی می‌کنید و نتیجهٔ CI را می‌خوانید.

  8. فصل ۲۱ و ۲۲

    واکنش به خرابی سایت

    commit خراب را با bisect پیدا می‌کنید، رفع باگ را با cherry-pick به شاخهٔ انتشار می‌برید، با revert تغییر را برمی‌گردانید و نسخه را تگ می‌زنید.

  9. فصل ۲۳

    ابزارهای کار حرفه‌ای

    rebase تعاملی، hook، محافظت از شاخهٔ main، CODEOWNERS، fork و روش‌های کار تیمی مثل GitHub Flow را یاد می‌گیرید.

  10. فصل ۸ و ۱۶ و ۲۴

    سه چالش بزرگ

    در پایان سه بخش دوره یک مخزن به‌هم‌ریخته تحویل می‌گیرید: تاریخچه را پیش از دمو تمیز می‌کنید، مخزنی خراب را نجات می‌دهید و در آخر کل چرخهٔ PR تا انتشار نسخه را اجرا می‌کنید.

نمونه‌ها

نمونه‌هایی از کارهایی که با Git انجام می‌دهید

این شش جلسهٔ کوتاه ترمینال را برای همین صفحه نوشته‌ایم. دستورها را در کد می‌بینید و خروجی Git را کنار آن.

روش کار

یک درس چطور پیش می‌رود

  1. ۱

    موقعیت را می‌خوانید

    هر درس یک موقعیت از کار در تیم است و یک هدف مشخص دارد، مثل نجات یک commit یا حل یک تعارض.

  2. ۲

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

    هر دستور روی موتور Git داخل مرورگر اجرا می‌شود و نمودار commitها و شاخه‌ها همان لحظه تغییر می‌کند.

  3. ۳

    وضعیت مخزن بررسی می‌شود

    وضعیت مخزن با هدف درس مقایسه می‌شود. اگر جایی گیر کردید، راهنمای همان تمرین قدم‌به‌قدم کمکتان می‌کند.

تمرین یا تماشا

تمرین در ترمینال چه فرقی با آموزش ویدیویی دارد

تمرین در ترمینال چه فرقی با آموزش ویدیویی دارد
موضوعدینا کدآموزش ویدیویی
دستورهاخودتان در ترمینال اجرا می‌کنید.اجرای آن‌ها را تماشا می‌کنید.
شاخه‌ها و commitهاروی نمودار زنده همان لحظه دیده می‌شوند.باید از روی خروجی ترمینال مدرس تصورشان کنید.
تعارض و همکاریهمکاران داستان دوره کار push می‌کنند و شما با تعارض روبه‌رو می‌شوید.برای تمرین یک همکار و یک مخزن مشترک لازم دارید.
یک اشتباه بزرگبا «بازنشانی» مخزن تمرین به حالت اول برمی‌گردد.مخزن را باید خودتان درست کنید.

بعد از دوره، همین دستورها را روی رایانهٔ خودتان و در پروژهٔ واقعی به کار می‌برید.

سرفصل‌ها

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

۲۴ سرفصل، ۱۲۵ درس، ۱۲۰ تمرین

۱

اولین مخزن

۸ درس
  • اولین مخزنالان ببینیدتمرین
  • اولین کامیتپیش‌نمایش رایگانتمرین
  • status و logپیش‌نمایش رایگانتمرین
  • فایل‌هایی که نباید commit شوندپیش‌نمایش رایگانتمرین
  • پشت‌صحنه: blobپیش‌نمایش رایگانتمرین
  • پشت‌صحنه: treeپیش‌نمایش رایگانتمرین
  • پشت‌صحنه: ساختِ دستیِ commitپیش‌نمایش رایگانتمرین
  • تمرین ترکیبی: از صفر تا commitپیش‌نمایش رایگانتمرین
۲

سه ناحیه و خواندن diff

۶ درس
  • سه ناحیه: working tree، index، HEADتمرین
  • staging انتخابیتمرین
  • بیرون آوردن از stagingتمرین
  • خواندن diffتمرین
  • دروازهٔ سه‌ناحیهتمرین
  • تمرین ترکیبی: README و CHANGELOGتمرین
۳

فایل‌هایی که نباید commit شوند

۵ درس
  • الگوها: نادیده گرفتن همهٔ *.logتمرین
  • فایلی که اشتباهی commit شدهتمرین
  • نادیده گرفتن یک پوشهتمرین
  • الگوهای یک پروژهٔ واقعیتمرین
  • تمرین ترکیبی: پاک‌سازی مخزنتمرین
۴

اصلاح آخرین کامیت

۵ درس
  • اصلاح پیام آخرین commitتمرین
  • فایلِ جاافتاده را به commit اضافه کنتمرین
  • reset --soft: برگرداندن commit، نگه‌داشتن تغییرهاتمرین
  • reset --mixed: جدا کردن یک commit بزرگتمرین
  • دور انداختن تغییرِ خرابتمرین
۵

شاخه

۶ درس
  • ساختن شاخهتمرین
  • رفتن روی شاخه و کار کردنتمرین
  • پشت‌صحنه: شاخه فقط یک اشاره‌گر استتمرین
  • HEAD جدا شدهتمرین
  • جابه‌جایی بین شاخه‌هاتمرین
  • تمرین ترکیبی: شاخه و جابه‌جاییتمرین
۶

سه راه برای merge

۵ درس
  • merge سادهٔ fast-forwardتمرین
  • merge با کامیت ادغام (دو والد)تمرین
  • squash: فشردن چند commit در یکیتمرین
  • merge --no-ff: نگه‌داشتنِ خطِ شاخهتمرین
  • تمرین ترکیبی: شاخه، واگرایی، mergeتمرین
۷

hotfix اضطراری با stash

۶ درس
  • کنار گذاشتنِ موقتِ کار با stashتمرین
  • stash بعد شاخهٔ hotfixتمرین
  • رفع باگ روی شاخهٔ hotfixتمرین
  • برگرداندن hotfix به mainتمرین
  • برگرداندن کار با stash popتمرین
  • تمرین ترکیبی: کل چرخهٔ hotfixتمرین
۸

چالش بزرگ: تاریخچهٔ زیبا

۱ درس
  • چالش: تاریخچهٔ زیباتمرین
۹

GitHub وارد می‌شود

۶ درس
  • وصل شدن به GitHub و اولین pushتمرین
  • فرستادن یک commit تازهتمرین
  • fetch: گرفتن بدون mergeتمرین
  • clone: گرفتن یک مخزن کاملتمرین
  • origin/main در برابر mainتمرین
  • تمرین ترکیبی: clone، کار، pushتمرین
۱۰

همکار اول: مریم

۵ درس
  • مریم push کرده، تو offline بودیتمرین
  • pull: دو کار در یک دستورتمرین
  • pull --rebase: تاریخچهٔ تمیزتمرین
  • pull، merge، بعد pushتمرین
  • تمرین ترکیبی: همگام‌سازی با تیمتمرین
۱۱

refspecs و مسیرهای push

۵ درس
  • فرستادن یک شاخهٔ تازهتمرین
  • پاک کردن یک شاخهٔ remoteتمرین
  • force-with-lease: push اجباریِ امن‌ترتمرین
  • SSH یا HTTPS؟تمرین
  • تمرین ترکیبی: شاخهٔ feature روی GitHubتمرین
۱۲

رضا اومده

۵ درس
  • گرفتن شاخهٔ یک همکارتمرین
  • تاریخچه‌های واگراتمرین
  • blame: چه کسی این خط را نوشت؟تمرین
  • آماده شدن برای تعارضتمرین
  • تمرین ترکیبی: fetch و بررسیتمرین
۱۳

تعارض

۶ درس
  • دیدن نشانه‌های تعارض و عقب‌نشینیتمرین
  • حل کردن اولین تعارضتمرین
  • نگه‌داشتن نسخهٔ همکارتمرین
  • تعارض در دو فایلتمرین
  • لغو کامل یک mergeتمرین
  • تمرین ترکیبی: حل تعارض از اول تا آخرتمرین
۱۴

rebase و قانون طلایی

۶ درس
  • rebase: بازپخش روی شاخهٔ تازهتمرین
  • rebase چند commitتمرین
  • rebase بعد merge تمیزتمرین
  • قانون طلایی: تاریخچهٔ public را بازنویسی نکنتمرین
  • فشردن چند commit در یکیتمرین
  • تمرین ترکیبی: rebase و merge تمیزتمرین
۱۵

reflog و جعبه‌ابزار بازیابی

۶ درس
  • reflog: دفترچهٔ خاطراتِ HEADتمرین
  • reset --hard: عقب بردنِ همه‌چیزتمرین
  • بازگرداندنِ commitهای «گم‌شده»تمرین
  • commit روی شاخهٔ اشتباهتمرین
  • بازگرداندن بعد از amendِ اشتباهتمرین
  • تمرین ترکیبی: گم کن و برگردانتمرین
۱۶

چالش بزرگ: تعمیر فاجعه

۱ درس
  • چالش: تعمیر فاجعهتمرین
۱۷

issues قبل از کد

۴ درس
  • ثبت اولین issueتمرین
  • issue با توضیح کاملتمرین
  • از issue تا شاخهتمرین
  • تمرین ترکیبی: issue، شاخه، کارتمرین
۱۸

اولین PR

۵ درس
  • باز کردن اولین Pull Requestتمرین
  • PR با توضیحِ «چی/چرا/چطور تست شد»تمرین
  • درخواست بازبینی از مریمتمرین
  • چرخهٔ بازبینی با مریمتمرین
  • squash و merge کردن PRتمرین
۱۹

PR کوچک و draft

۵ درس
  • PR پیش‌نویس (draft)تمرین
  • آماده برای بازبینیتمرین
  • PRهای روی‌هم (stacked)تمرین
  • PR کوچک و متمرکزتمرین
  • تمرین ترکیبی: draft تا mergeتمرین
۲۰

تو reviewer می‌شوی + CI

۶ درس
  • مریم در مرخصیه — تو senior-on-call هستیتمرین
  • کامنتِ خط‌به‌خطتمرین
  • درخواست تغییر (Request changes)تمرین
  • بازبینی، تأیید، mergeتمرین
  • وقتی CI قرمز استتمرین
  • اولین CI workflowتمرین
۲۱

صبح جمعه، production خرابه

۶ درس
  • صبح جمعه: بررسی تاریخچهتمرین
  • git bisect باگ را پیدا می‌کندتمرین
  • شاخهٔ hotfix بسازتمرین
  • cherry-pick رفع باگ به شاخهٔ releaseتمرین
  • برگرداندنِ یک commitِ منتشرشدهتمرین
  • تمرین ترکیبی: واکنش به حادثهتمرین
۲۲

revert در برابر reset

۶ درس
  • revert: معکوسِ امنتمرین
  • برگرداندنِ یک commitِ مشخصتمرین
  • تگ زدن یک نسخهتمرین
  • تگِ annotated با پیامتمرین
  • تگ زدن یک commitِ قدیمیتمرین
  • تمرین ترکیبی: revert و انتشارتمرین
۲۳

استادی: rebase تعاملی، hooks، نگهبانی

۱۰ درس
  • rebase تعاملی: ویرایش تاریخچه
  • Conventional Commitsتمرین
  • hookها: خودکارسازیِ پیش از commit
  • محافظت کاملِ شاخهٔ mainتمرین
  • CODEOWNERS: بازبینِ خودکارتمرین
  • CONTRIBUTING.md برای تیمتمرین
  • GitHub Flow، Git Flow، Trunk-Based
  • worktree و sparse-checkout
  • fork و مشارکت در پروژه‌های open-source
  • تمرین ترکیبی: انتشار حرفه‌ایتمرین
۲۴

چالش نهایی: نگهبان مخزن

۱ درس
  • چالش نهایی: نگهبان مخزنتمرین
شروع دوره

از همین امروز شروع کنید

درس‌های اول رایگان است و برای شروع پرداختی لازم نیست. هر وقت خواستید ادامه دهید، همین دوره را بخرید یا با اشتراک پرو همهٔ دوره‌ها را باز کنید.

این دوره شامل:
  • ۱۲۵ درس تعاملی
  • ۱۲۰ تمرین عملی
  • ۲۰ ساعت محتوای آموزشی
  • اجرای کد در مرورگر، بدون نصب
  • گواهی پایان دوره
  • دسترسی مادام‌العمر

نمونه‌ها را دوباره ببینید

رایگانبرای شروع

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

بدون نیاز به پرداخت مبلغی برای شروع

برای چه کسی

این دوره برای چه کسی است

  • برنامه‌نویس تازه‌کار

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

  • کارآموز و جویای کار

    Git ابزار روزمرهٔ تیم‌های نرم‌افزاری است. این دوره شما را برای شاخه، pull request و بازبینی کد در تیم آماده می‌کند.

  • برنامه‌نویسی که Git را نیمه‌کاره بلد است

    اگر add و commit را می‌دانید ولی با rebase، تعارض یا یک reset اشتباه گیر می‌کنید.

پیش‌نیاز: یک رایانه و یک مرورگر. آشنایی با برنامه‌نویسی کمک می‌کند، ولی لازم نیست.

بعد از این دوره

پرسش‌ها

پرسش‌های پرتکرار

گیت و گیت‌هاب چه فرقی دارند؟
گیت (Git) ابزاری است که تاریخچهٔ تغییرهای پروژه را روی رایانهٔ شما نگه می‌دارد. گیت‌هاب (GitHub) سایتی است که مخزن گیت را آنلاین نگه می‌دارد تا یک تیم روی آن با issue، pull request و بازبینی کد همکاری کند.
برای این دوره باید Git نصب کنم؟
نه. ترمینال و موتور Git در خود مرورگر اجرا می‌شوند و چیزی برای نصب لازم نیست.
برای بخش GitHub حساب کاربری لازم دارم؟
نه. issue، pull request، بازبینی کد و CI در یک GitHub شبیه‌سازی‌شده داخل دوره تمرین می‌شوند.
برای یادگیری Git باید برنامه‌نویسی بلد باشم؟
نه. فایل‌های پروژهٔ هر درس آماده است و کار شما دستورهای Git است. دوره از ساختن اولین مخزن شروع می‌شود.
حل تعارض و rebase هم در دوره هست؟
بله. تعارض در merge، rebase و بازگرداندن کار گم‌شده با reflog هر کدام یک فصل دارند. bisect، cherry-pick، revert و تگ نسخه هم در فصل‌های بعد می‌آیند.
آیا درس‌های رایگان دارد؟
بله. درس‌های ابتدایی دوره رایگان است و برای شروع پرداختی لازم نیست.
در پایان دوره گواهی می‌گیرم؟
بله. وقتی همهٔ تمرین‌ها را تمام کنید، گواهی پایان دوره با یک شمارهٔ استعلام می‌گیرید که هر کسی می‌تواند درستی آن را در سایت بررسی کند.

همین امروز شروع کنید

اولین commit خودتان را همین امروز در مرورگر ثبت کنید. شروع رایگان است و در کمتر از دو دقیقه وارد محیط یادگیری می‌شوید.

آموزش گیت و گیتهاب از صفر (Git & GitHub) — دینا کد