A .NET console application that helps users learn Git through AI-guided, hands-on scenarios powered by the GitHub Copilot SDK.
- AI-Driven Learning - GitHub Copilot dynamically creates learning scenarios and guides you step-by-step
- Safe Sandbox Environment - Practice Git commands in an isolated temporary repository
- Interactive Feedback - Get real-time explanations for commands, errors, and Git concepts
- Adaptive Teaching - Copilot adjusts to your skill level and learning pace
- Hands-On Practice - Learn by doing, not just reading
The app gives GitHub Copilot SDK full control of the learning experience through custom tools:
User β· Program.cs β· CopilotLearningService β· GitHub Copilot SDK
β
Custom Tools (7 total)
β
SandboxService (Git environment)
| Tool | Description |
|---|---|
create_file |
Create files in the sandbox |
run_git_command |
Execute any Git command |
get_git_status |
Check working tree status |
get_git_log |
View commit history |
list_files |
List sandbox contents |
read_file |
Read file contents |
reset_sandbox |
Start fresh |
gla/
βββ src/
β βββ Program.cs # Main entry point & UI
β βββ Services/
β βββ CopilotLearningService.cs # AI-driven learning with tools
β βββ SandboxService.cs # Safe Git sandbox environment
βββ gla.csproj
βββ README.md
- .NET 8 SDK or later
- GitHub CLI with Copilot extension
- Active GitHub Copilot subscription
-
Clone the repository:
git clone <repository-url> cd git-learning-app
-
Ensure you're authenticated with GitHub:
gh auth login
-
Restore dependencies:
dotnet restore
dotnet runOnce the app starts, you can:
- Type Git commands directly (e.g.,
git status,git add .,git commit -m "message") - Ask questions in plain English (e.g., "What is a branch?", "How do I undo a commit?")
- Choose a topic from the menu for guided learning
| Command | Description |
|---|---|
menu |
Show topic selection menu |
reset |
Reset sandbox to fresh state |
help |
Show help message |
exit |
Quit the application |
- Beginner: Repository init, staging, committing, viewing history
- Intermediate: Branching, merging, working with remotes
- Advanced: Rebasing, undoing changes, stashing
- You start the app β Copilot greets you and offers guidance
- You pick a topic or ask a question β Copilot uses its tools to:
- Create files in the sandbox
- Set up the learning scenario (branches, commits, etc.)
- Guide you through exercises step-by-step
- You practice commands β Copilot:
- Executes them in the sandbox
- Provides feedback on what happened
- Helps you understand errors
- Suggests next steps