Cursor実践プロジェクト-07-gitチュートリアル作成
プロジェクト説明
cursorプロジェクト実践-07-gitチュートリアル作成
所要時間:約2-3時間
Cursor使用回数:10回程度
このプロジェクトでは、CursorをAIプログラミングアシスタントとして活用し、詳細なgitコマンド学習の要求ドキュメントに基づいて、ゼロから主導して完全で高品質なプロジェクト駆動型のGitバイリンガルチュートリアルを生成する方法を記録します。
私の目標は、AIを導いて学習したいプログラミング関連知識のチュートリアルを生成させ、モデルを通じて独学を完成させ、従来の資料検索、整理、作成の煩雑なプロセスを変えることを検証し展示することです。
この方法は、あらゆるプログラミング知識の学習に拡張でき、最小限の必要な知識、プロジェクト駆動型が特徴です。
成果展示
-
Cursorを使用して、構造が完全で内容豊富な複数章のGitチュートリアルを正常に作成しました。コース、練習、独立した実践プロジェクトを含み、すべての内容は私が事前に設定した中日バイリンガル形式に従っています。
- 最小限の必要な知識、プロジェクト駆動型、バイリンガル形式、内容豊富、構造完全を遵守
- 最終プロジェクトには40以上のMarkdownファイルが含まれ、明確なディレクトリ構造に配置されています。
- 内容はGitの基礎、バージョン管理、ブランチ、リモートコラボレーションから高度な操作まで、完全な学習パスを形成しています。
事前準備
-
Cursor
- バージョン:1.2.4
- cursor rules : Cursor Rules
- agent: claude-4-sonnet-thinking
- project rules: cursorpractice-06-10xUse
-
全体の流れ
-
- cursorルール設定->プロジェクトルール設定(10xUse)->LLMと要求をコミュニケーション->cursorコーディング->出力デバッグ
-
問題記録
-
問題1:チュートリアル作成過程で、cursorがコンテキストを失いやすく、異なる章を書く際に内容が一貫しない
- コンテキストを与えるため、チュートリアルルートディレクトリにreadmeで全体を説明、異なる章にもreadmeで章を説明
- cursorに提出する際、これら2つのreadmeとプロジェクトドキュメントを読ませてから作成させる
-
問題2:大規模ドキュメント作成時、2000行を超えるとcursorが中断しやすく、特にチュートリアルでコードが関わる場合
- 最小限の必要性、サンプルコード分離、プロジェクト駆動型を要求
- 長文ドキュメントの場合、ステップバイステップで進める必要がある
使用上の心得
- 10xUseを活用すると、Cursorの使用回数を減らせる
- 指示には必ずコンテキストを含める。そうしないとcursorがコンテキストを失いやすく、異なる章を書く際に内容が一貫しない。readmeを読むことを要求。
- プログラミング関連チュートリアルは主にコードに関わるため、必ずコードを分離し、独立した練習にする
プロジェクト詳細手順
-
初期指示発行:まずCursorにコア要求ファイル
pj-requirement.md
を提供し、要約を要求して、タスクに対する初期理解を検証しました。 -
プロジェクトドキュメントとチュートリアル索引生成:cursorがプロジェクトドキュメントとチュートリアル索引を生成。章1の内容生成を開始
-
中断せず継続生成:cursorが最初のリクエストを終了しようとした時、ルールコマンドを呼び出し、継続生成させた
-
継続生成:最終的に1回のリクエストで2つの章の内容と練習を生成しました。
-
他の章を完成:cursorが他の章を完成
-
git常用コマンドとシナリオガイドまとめ:cursorがgit常用コマンド早見表をまとめる
-
プロジェクトドキュメントとチュートリアル索引生成:cursorがプロジェクトドキュメントとチュートリアル索引を生成。章1の内容生成を開始
Git 常用コマンド早見表
この早見表は、Gitの日常使用で最も一般的なコマンドをまとめ、迅速な参照を可能にします。
目次
基本操作
コマンド | 説明 |
---|---|
git init | カレントディレクトリに新しいGitリポジトリを初期化します。 |
git clone [url] | リモートリポジトリをローカルにクローンします。 |
git status | ワーキングエリアとステージングエリアの状態を表示します。 |
バージョン管理
コマンド | 説明 |
---|---|
git add [file] | ファイルの変更をステージングエリアに追加します。[file] の代わりに. を使用するとすべての変更を追加できます。 |
git commit -m "[message]" | ステージングエリアの内容をローカルリポジトリにコミットし、コミットメッセージを添付します。 |
git log | コミット履歴を表示します。 |
git diff | ワーキングエリアとステージングエリアの差分を表示します。 |
git diff --staged | ステージングエリアと最新コミットの差分を表示します。 |
git reset [file] | ファイルをステージングエリアから取り消しますが、ワーキングエリアの変更は保持します。 |
git checkout -- [file] | ワーキングエリアの変更を破棄し、最新のコミット状態に戻します。 |
ブランチ操作
コマンド | 説明 |
---|---|
git branch | すべてのローカルブランチをリスト表示します。 |
git branch [branch-name] | 新しいブランチを作成します。 |
git checkout [branch-name] | 指定したブランチに切り替えます。 |
git checkout -b [branch-name] | 新しいブランチを作成し、すぐに切り替えます。 |
git merge [branch-name] | 指定したブランチの履歴を現在のブランチにマージします。 |
git branch -d [branch-name] | マージ済みのブランチを削除します。 |
リモートコラボレーション
コマンド | 説明 |
---|---|
git remote -v | すべてのリモートリポジトリの詳細情報を表示します。 |
git remote add [name] [url] | 新しいリモートリポジトリを追加します。 |
git fetch [remote-name] | リモートリポジトリから最新の履歴をダウンロードしますが、マージしません。 |
git pull [remote-name] [branch-name] | リモートリポジトリから最新コードをプルし、現在のブランチにマージします。 |
git push [remote-name] [branch-name] | ローカルブランチのコミットをリモートリポジトリにプッシュします。 |
高度なコマンド
コマンド | 説明 |
---|---|
git rebase [branch-name] | 現在のブランチのコミットを指定ブランチの先頭に「リベース」します。 |
git tag [tag-name] | 現在のコミットに軽量タグを作成します。 |
git tag -a [tag-name] -m "[message]" | 注釈付きタグを作成します。 |
git submodule add [repository-url] [path] | サブモジュールを追加します。 |
git stash | 現在のワーキングエリアの変更を一時的に保存します。 |
git stash pop | 最近保存した変更を復元します。 |
よくあるシナリオと解決策
以下は日常開発で頻繁に遭遇する問題と推奨される解決方法です。
シナリオ | 解決策 |
---|---|
1. 誤ったコミットメッセージを修正したい | git commit --amend -m "新しいコミットメッセージ" (注意:コミットがリモートにプッシュ済みの場合、履歴修正は慎重に) |
2. 最近のコミットを取り消したい | git reset --soft HEAD~1 (コミットを取り消すが、コード変更は保持) |
3. ファイルを変更したが、すべてのローカル変更を取り消したい | git checkout -- . (すべての未ステージング変更を取り消す) |
4. 特定のコミットを現在のブランチに適用したい | git cherry-pick [commit-hash] (コミットを「摘み取り」適用する) |
5. 誤ってブランチをマージし、マージを取り消したい | git reset --hard ORIG_HEAD (マージ前の状態に戻す) |
6. 追跡されていないファイルをクリーンアップしたい | git clean -fd (追跡されていないファイルとディレクトリを強制削除) |
7. 特定ファイルの変更履歴を確認したい | git log -p [file-path] (そのファイルの詳細なコミット記録を表示) |
8. ローカルブランチがリモートブランチより遅れており、同期したい | git fetch origin git reset --hard origin/[branch-name] (ローカルブランチをリモートと強制的に一致させる) |
9. 一時的にタスクを切り替えたいが、現在の作業をコミットしたくない | git stash (現在の作業進捗を保存) git stash pop (作業進捗を復元) |
10. 誰が特定行のコードを変更したか調べたい | git blame [file-path] (ファイルを行単位で表示し、作者と最終変更コミットを表示) |