Git
تعلم Git بشكل عملي. الإيداعات، الفروع، المستودعات البعيدة، إعادة التأسيس، حل التعارضات، الاسترداد، وسير عمل طلبات السحب.
13 درسًا، بالترتيب
- 125 دقيقة
التهيئة وأول commit لك
تخيل أنك تكتب مقالاً في محرر نصوص، وكلما أجريت تغييراً ذا شأن حفظت نسخة كاملة باسم جديد: essay-v2 ثم essay-v3 ثم essay-final ثم essay-final-actually....
Git initGit configWorking treeStaging areaGit addGit commit - 225 دقيقة
الحالة والفرق والسجل
أنشأت في الدرس السابق إيداعًا واحدًا، وهو لقطة واحدة بالضبط. أما العمل الحقيقي فتحرير للملفات مرة بعد مرة، وقبل كل إيداع ستحتاج إلى إجابات عن ثلاثة...
Git statusGit diffGit diff --stagedGit logLog formatting - 330 دقيقة
الـ branches والـ merge
كلّ كوميت أنشأته حتى الآن يقع على خطّ واحد من التاريخ اسمه main. والعمل الحقيقي نادراً ما يبقى بهذه البساطة. فأنت تريد أن تجرّب فكرة دون أن تخاطر...
Git branchGit switchFast-forward mergeThree-way mergeMerge commit - 430 دقيقة
حل تعارضات الـ merge
أول مرة يرفض فيها Git إتمام دمج قد تظن أن شيئاً تعطّل. لم يتعطل شيء. يقع تعارض الدمج (merge conflict) حين يغيّر فرعان الأسطر نفسها من الملف نفسه...
Merge conflict markersManual resolutionGit add after resolvingGit merge --abortMergetool - 530 دقيقة
الـ remotes: push، pull، fetch
كل ما فعلته حتى الآن يعيش على جهازك وحده. لا بأس بذلك للتمرين، لكن المشاريع الحقيقية تحتاج نسخة مشتركة يصل إليها آخرون أو أجهزة أخرى: خادم يحمل...
Git remote addGit pushGit fetchGit pullUpstream tracking - 625 دقيقة
الـ stash والـ cherry-pick
أنت في منتصف تغيير ما، الملفات محرَّرة ولا شيء منجز، فتصلك رسالة من زميل: «هل يمكنك أن تنظر في علة على main الآن؟». لا تستطيع أن تودع عملك نصف...
Git stashGit stash popGit stash listGit cherry-pick - 730 دقيقة
ريبيس (rebase)
تفرّعت عن main يوم الاثنين لتضيف صندوق بحث. والآن صار الخميس، وعندك ثلاثة كوميتات، وفي الأثناء دفع أربعة أشخاص آخرين إلى main. فرعك مبنيّ على نسخة من...
Git rebaseReplay on topLinear historyWhen not to rebase - 830 دقيقة
الـ rebase التفاعلي والـ squash
العمل الحقيقي لا يقع في إيداع (commit) واحد نظيف. تودع، ثم تودع مرة أخرى بعد خمس دقائق لأنك لمحت خطأً مطبعياً، ثم ثالثة لأنك نسيت حفظ ملف قبل الإيداع...
Git rebase -iPickSquashFixupRewordAutosquash - 920 دقيقة
الـ tags والـ releases
الفرع مثل main علامة كتاب متحركة. يشير إلى آخر كوميت مهما كان، وما إن تصنع كوميتاً جديداً حتى ينزلق إلى الأمام ويشير إلى موضع آخر. وهذا بالضبط ما...
Lightweight tagAnnotated tagGit tag -aGit push --tagsGitHub releases - 1020 دقيقة
سير عمل الـ branching
كل ما تعلمته حتى الآن، من تفريع ودمج وإعادة أساس ووسم، يخبرك بما تفعله أوامر Git، لكن لا شيء منه يخبرك متى تنشئ فرعًا، وكم تبقيه، ومن يحق له أن يمسّ...
Trunk-based developmentGitHub FlowGit FlowShort-lived branches - 1125 دقيقة
استعادة العمل المفقود
في لحظة ما ستكتب أمراً، وتضغط Enter، وتشاهد الطرفية تطبع شيئاً هادئاً ونهائياً، ثمّ تدرك أنك حذفت للتوّ عمل يوم كامل. الجميع يفعلها. والخبر السارّ،...
Git reflogRecovering from reset --hardGit fsck --lost-found30-day grace period - 1225 دقيقة
الـ hooks
لكل فريق قاعدة يوافق عليها الجميع وينساها الجميع. شغّل أداة التنسيق قبل الإيداع. لا تودع سطر الطباعة الذي أضفته للتشخيص في الثانية فجراً. لا تودع...
Client-side hooks.git/hooksPre-commitShell hook examplePre-commit framework - 1340 دقيقة
مشروع التخرج: دورة Pull Request كاملة
كان كل ما مضى قطعة واحدة في كل مرة: كوميت هنا، وفرع هناك، وإعادة أساس حين احتاج التاريخ إلى تقويم. أما في العمل الحقيقي فتأتي هذه القطع روتيناً...
CloneFeature branchPushGh pr createFixup commitsAutosquash rebase+1
تعلّم Git بلغتك
كل درس واختبار ورد من المدرس يظهر بلغتك. المدرس الذكي يرد بنفس اللغة التي تكتب بها.
Roles that use Git
See how hiring teams interview engineers on Git, in production-like environments.
Developer Experience Engineer
Hire DX engineers in real workspaces with real CLIs, real dev loops and real onboarding friction to fix. Live or take-home.
See the interviewBackend Engineer (Go, Rust, Java)
Hire backend engineers in real services with real databases, real concurrency and real latency budgets. Live or take-home, fully recorded.
See the interviewFull Stack Developer
Hire full stack developers in real apps with real APIs, real UIs and real tests. Live or take-home, fully recorded.
See the interview