This document provides a quick overview of all course sessions and their content, reflecting the updated 7-session structure.
- Total Sessions: 7
- Total Duration: ~21 hours
- Total Practices: 40+ hands-on exercises
- Total Mega Challenges: 4 (including Graduation Project)
- Image Placeholders: 200+ for visual explanation (Next step)
- Format: Practice-heavy (70% hands-on, 30% theory)
This session begins the core concepts of version control.
- What is Version Control? Git vs. GitHub
- Git installation and configuration
- Creating your first local repository (
git init) - The Git Lifecycle (Working Directory, Staging Area, Repository)
- Making commits (
git add,git commit) - Viewing history (
git log,git status)
- Configuration and installation checks.
- Creating a local project and making initial commits.
- Writing effective commit messages.
This session focuses on connecting your local work to GitHub.
- GitHub account setup
- Creating a remote repository on GitHub
- Connecting local and remote repos (
git remote) - Pushing code to GitHub (
git push) - Authentication: Personal Access Tokens (PATs) vs. SSH Keys (introduction)
- Understanding and using
.gitignorefiles
- Creating a GitHub repository and pushing the project from Session 1.
- Setting up a
.gitignorefile for a Python project. - Mega Challenge 1: Calculator Project (complete local-to-remote workflow).
This session introduces Git's most powerful feature: branching.
- Branching Fundamentals: What branches are, why they're critical.
- Creating and switching branches (
git branch,git switch). - Visualizing branch structures (
git log --graph). - Merging Strategies: Fast-forward vs. three-way merges.
- Merge Conflicts: How they happen and how to resolve them.
- Stashing: Temporarily saving work (
git stash).
- Creating feature branches.
- Merging branches and resolving a merge conflict.
- Using
git stashto handle interruptions.
This session covers advanced techniques for managing history and remote work.
- Rebasing: Basic vs. Interactive rebase (
squash,fixup). - Undoing Changes:
git restore,git reset(soft, mixed, hard),git revert. - Remote Management:
originvs.upstream,fetchvs.pull. - Branch Management: Deleting local and remote branches.
- Interactive rebase to clean up commit history.
- Using
resetandrevertto undo changes safely. - Syncing a fork with an upstream repository.
- Mega Challenge 2: Blog Application (complete branching workflow).
This session focuses on team collaboration using professional standards.
- GitHub Collaboration Models: Shared Repo vs. Fork & Pull.
- Authentication Deep Dive: Full SSH key setup.
- Pull Request (PR) Workflow: Creating, reviewing, and merging PRs.
- Code Review Best Practices.
- Branching Models: Git Flow vs. GitHub Flow.
- Tags and Releases: Semantic versioning and creating GitHub releases.
- Cherry-Picking and Branch Protection Rules.
- Setting up a team repository with permissions.
- Full SSH key setup and usage.
- End-to-end Pull Request and code review simulation.
- Mega Challenge 3: Library Management System (team of 4, complete workflow).
This session prepares students for contributing to the wider software community.
- Open Source Contribution: Forking, finding issues, creating quality PRs.
- GitHub Actions (CI/CD): Automating testing and deployment.
- GitHub Pages: Hosting static sites and documentation.
- Git Submodules & Repository Security Best Practices.
- Building a Developer Portfolio on GitHub.
- Setting up a CI/CD pipeline with GitHub Actions.
- Deploying a documentation site with GitHub Pages.
- Mega Challenge 4: A guided open source contribution.
A final session to solidify knowledge and kick off the graduation project.
- Review of Core Concepts: A comprehensive Q&A and review of the entire course.
- Advanced Problem-Solving: Tackling complex, real-world Git scenarios.
- Graduation Project Announcement:
- Detailed explanation of the project requirements.
- Team formation and project planning.
- Timelines, submission guidelines, and evaluation criteria.
- A series of advanced, hands-on challenges to solve in teams.
- Initial planning and repository setup for the graduation project.
After completing all 7 sessions, attendees will be able to:
- ✅ Use Git confidently for any project.
- ✅ Collaborate effectively within a team using professional workflows.
- ✅ Contribute to open source projects.
- ✅ Implement CI/CD pipelines for automation.
- ✅ Secure and document projects professionally.
- ✅ Build and maintain a strong developer portfolio on GitHub.
Course prepared by: Omar Betawy
Instructed by: Omar Betawy, Amr Khaled
For: DSC Cairo University
Date: October 2025
Version: 2.0 (7-Session Structure)
This course follows the course guidelines and incorporates all requested topics with a strong emphasis on practical, hands-on learning.