Skip to content

usk0513/git-quest-vs-code

Repository files navigation

Git Quest

Gitの操作を学べるインタラクティブWebアプリケーション

📖 概要

Git Questは、Gitの基本的な操作をブラウザ上で学習できる教育用アプリケーションです。VS Codeのような親しみやすいインターフェースで、実際にGitコマンドを実行しながら学べます。

特徴

  • 🖥️ VS Codeライクなインターフェース: 使い慣れたエディタ風のUIで学習
  • 💻 ターミナル操作: 実際のGitコマンドを入力して学習
  • 🖱️ GUI操作: VS Codeのような画面操作でもGitを学習可能
  • 📚 ステップバイステップ: 初心者でも段階的に学べるチュートリアル
  • リアルタイムフィードバック: 各ステップで正しい操作をガイド
  • 🔄 いつでもリセット: 何度でもやり直せる学習環境

🚀 起動方法

必要な環境

  • Node.js: 18.x 以上
  • npm: 9.x 以上

インストール・起動手順

  1. リポジトリをクローン

    git clone https://github.com/yourusername/git-quest-vs-code.git
    cd git-quest-vs-code
  2. 依存関係をインストール

    npm install
  3. 開発サーバーを起動

    npm run dev
  4. ブラウザでアクセス

    http://localhost:5173
    

    ブラウザが自動的に開かない場合は、上記のURLに手動でアクセスしてください。

その他のコマンド

# 本番用ビルド
npm run build

# ビルドしたアプリをプレビュー
npm run preview

# テストを実行
npm run test

# カバレッジ付きでテスト
npm run test:coverage

# リント(コード品質チェック)
npm run lint

📚 使い方

ファーストステージ: ターミナルベース

  1. アプリを起動すると、Step 0(初期状態)から始まります
  2. 右側のペインに表示される指示を読んでください
  3. 下部のターミナルに、指示に従ってGitコマンドを入力します
  4. コマンドが正しければ、次のステップに自動的に進みます
  5. 間違ったコマンドを入力すると、ヒントが表示されます

学習するコマンド:

  • git clone - リポジトリのクローン
  • git checkout -b - ブランチの作成と切り替え
  • git add - 変更のステージング
  • git commit - コミットの作成
  • git push - リモートへのプッシュ

セカンドステージ: GUIベース

ターミナルステージをクリアすると、VS Codeのような画面操作で同じことを学習できます:

  • 左サイドバー: ファイルの確認やソース管理
  • 中央エディタ: ファイルの編集
  • ステージング: 変更ファイルの「+」ボタンをクリック
  • コミット: メッセージを入力して「コミット」ボタン
  • プッシュ: 「プッシュ」ボタンをクリック

リセット機能

  • GUIステージの最終ステップでも案内されるとおり、ページをリロードして最初からやり直すこともできます

🛠️ 技術スタック

フロントエンド

  • React 18 - UIライブラリ
  • TypeScript - 型安全な開発
  • Vite - 高速ビルドツール
  • Tailwind CSS - スタイリング(VS Code Light Modernテーマ)
  • Zustand - 状態管理

Git実装

  • isomorphic-git - ブラウザで動作するGit実装
  • LightningFS - ブラウザ内の仮想ファイルシステム

テスト

  • Vitest - ユニット・統合テスト
  • React Testing Library - コンポーネントテスト

📁 プロジェクト構造

src/
├── components/          # UIコンポーネント
│   ├── Layout/          # レイアウト関連
│   ├── SourceControl/   # ソース管理ビュー
│   ├── Explorer/        # ファイルエクスプローラー
│   └── Common/          # 共通コンポーネント
├── services/            # ビジネスロジック
│   ├── git/             # Git操作サービス
│   ├── terminal/        # ターミナル・コマンド処理
│   ├── filesystem/      # ファイルシステム
│   └── tutorial/        # チュートリアル管理
├── store/               # Zustand状態管理
├── utils/               # 共通ユーティリティ
├── types/               # TypeScript型定義
├── constants/           # 定数・初期データ
└── styles/              # グローバルスタイル
tests/
├── unit/                # ユニットテスト
├── integration/         # 統合テスト
├── components/          # コンポーネントテスト
├── fixtures/            # テスト用フィクスチャ
└── setup/               # Vitestセットアップ

🎯 学習の流れ

ターミナルステージ(Step 1〜6)

ステップ 内容 学ぶこと
Step 0 初期状態 チュートリアルの説明
Step 1 git clone リポジトリのクローン
Step 2 git checkout -b ブランチの作成と切り替え
Step 3 ファイル編集 エディタの使い方
Step 4 git add 変更のステージング
Step 5 git commit コミットの作成
Step 6 git push リモートへのプッシュ

GUIステージ(Step 2-1〜6-2)

ターミナルステージと同じ操作を、VS Codeのような画面操作で学習します。各アクションの後に確認ステップを挟み、画面の状態をしっかり把握できるようになりました。

ステップ 内容
Step 2-1 GUIで新しいブランチを作成
Step 2-2 ステータスバーでブランチ変更を確認
Step 3-1 greeting.txt を編集
Step 3-2 ソース管理ビューに変更が表示されたことを確認
Step 4-1 GUIでステージング
Step 5-1 GUIでコミット
Step 6-1 GUIでプッシュ
Step 6-2 リモートブランチ一覧を確認し、完了後はリロードで再挑戦

🐛 トラブルシューティング

開発サーバーが起動しない

# node_modulesを削除して再インストール
rm -rf node_modules package-lock.json
npm install
npm run dev

ブラウザでエラーが表示される

  • ブラウザのコンソール(F12キー)を開いてエラーを確認
  • ページをリロード(Ctrl+R / Cmd+R)してみる
  • リセットボタンを押してみる

アプリが正常に動作しない

  1. ブラウザのキャッシュをクリア
  2. ページをリロード
  3. 別のブラウザで試す(Chrome、Firefox、Edgeを推奨)

🤝 コントリビューション

プルリクエストを歓迎します!バグ報告や機能リクエストは、GitHubのIssuesからお願いします。

📄 ライセンス

このプロジェクトはMITライセンスの下で公開されています。

🙏 謝辞


Git Questで、楽しくGitを学びましょう! 🎉

About

gitの操作を学べるアプリ

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages