ホームに戻る
Git コース
バージョン管理システムGitの基本操作を実践的に学びましょう
初
初級
無料で学習可能
初級基本コマンド
問題1: git init - リポジトリの初期化
Gitの基本的な操作を学びます。新しいプロジェクトでGitを使い始めるために、リポジトリの初期化とステータス確認を行います。これらはGitを使う上で最も基本的かつ重要なコマンドです。
初級基本コマンド
問題2: git config - ユーザー名とメールアドレスの設定
Gitでコミットを行う前に、ユーザー名とメールアドレスを設定する必要があります。これらの情報はコミット履歴に記録され、誰がいつ変更を行ったかを追跡するために使用されます。
初級基本コマンド
問題3: git status - 作業ディレクトリの状態確認
git statusは最も頻繁に使用するGitコマンドの1つです。ファイルの状態(未追跡、変更済み、ステージング済み)を確認し、次に何をすべきかを判断するために使用します。
初級基本コマンド
問題4: .gitignore - 無視ファイルの設定
.gitignoreファイルを使用して、Gitが追跡しないファイルやディレクトリを指定します。ビルド成果物、一時ファイル、秘密情報を含むファイルなどを除外するために重要です。
初級ステージングとコミット
問題5: git add(単一ファイル) - 特定ファイルのステージング
git addコマンドで特定のファイルを選択的にステージングする方法を学びます。複数のファイルがある場合に、必要なファイルだけを次のコミットに含めることができます。
初級ステージングとコミット
問題6: git add . - カレントディレクトリ全体のステージング
git add .コマンドでカレントディレクトリ以下のすべての変更をステージングする方法を学びます。ディレクトリ単位で効率的にファイルを追加できます。
初級ステージングとコミット
問題7: git add -A - 全変更のステージング
git add -Aコマンドで、新規ファイル、変更されたファイル、削除されたファイルを含むすべての変更を一括でステージングする方法を学びます。
初級コミット
問題8: git commit -m - メッセージ付きコミット
git commit -mコマンドでコミットメッセージを直接指定してコミットする方法を学びます。明確なコミットメッセージは、プロジェクトの履歴を理解しやすくします。
初級コミット
問題9: git commit -am - ステージングとコミットの同時実行
git commit -amコマンドで、追跡済みファイルの変更をステージングとコミットを同時に行う方法を学びます。これにより作業を効率化できます。
初級コミット
問題10: git commit --amend - 直前のコミットの修正
git commit --amendコマンドで直前のコミットを修正する方法を学びます。コミットメッセージの修正や、コミットし忘れたファイルの追加に使用します。
初級ステージングとコミット
問題11: git rm - ファイルの削除とステージング
git rmコマンドでファイルを削除し、同時にその削除をステージングする方法を学びます。手動削除とgit addの組み合わせよりも効率的です。
初級ステージングとコミット
問題12: git mv - ファイルの移動/リネーム
git mvコマンドでファイルの移動やリネームを行う方法を学びます。Gitはこの操作を適切に追跡し、履歴を保持します。
初級ログと差分
問題13: git log - コミット履歴の表示
git logコマンドでコミット履歴を表示する方法を学びます。プロジェクトの変更履歴を確認し、いつ誰がどのような変更を行ったかを把握できます。
初級ログと差分
問題14: git log --oneline --graph - グラフ付き簡潔ログ
git log --oneline --graphコマンドで、ブランチの分岐やマージを視覚的に確認できる簡潔なログ表示を学びます。
初級ログと差分
問題15: git diff - 作業ディレクトリの差分表示
git diffコマンドで、現在の作業ディレクトリにある変更内容を確認する方法を学びます。コミット前に変更内容を確認することで、意図しない変更を防げます。
初級ログと差分
問題16: git diff --staged - ステージングエリアの差分表示
git diff --stagedコマンドで、ステージングエリアにある変更(次のコミットに含まれる変更)を確認する方法を学びます。
初級取り消し操作
問題17: git restore - ファイルの変更取り消し
git restoreコマンドで、作業ディレクトリのファイル変更を取り消し、最後のコミット状態に戻す方法を学びます。意図しない変更を取り消したい場合に便利です。
初級取り消し操作
問題18: git restore --staged - ステージングの取り消し
git restore --stagedコマンドで、ステージングエリアからファイルを取り除く方法を学びます。間違えてステージングしたファイルを元に戻したい場合に使用します。
初級取り消し操作
問題19: git reset HEAD~ - 直前のコミット取り消し
git reset HEAD~コマンドで、最後のコミットを取り消す方法を学びます。誤ってコミットした変更を元に戻したい場合に便利です。
初級取り消し操作
問題20: git clean -f - 追跡されていないファイルの削除
git clean -fコマンドで、Gitに追跡されていないファイルを削除する方法を学びます。一時ファイルやビルド成果物を一括削除したい場合に便利です。【重要】削除されたファイルは復元できません。必ずgit clean -nで削除されるファイルを事前確認してください。
中
中級
無料で学習可能
中級ブランチ
問題21: git branch - ブランチの作成と一覧表示
git branchコマンドでブランチを作成し、一覧表示する方法を学びます。ブランチを使うことで、メインの開発ラインを妨げることなく新機能の開発や実験ができます。
中級ブランチ
問題22: git switch - ブランチの切り替え(新しい方法)
git switchコマンドで別のブランチに切り替える方法を学びます。これはgit checkoutの代わりに導入された、よりわかりやすいコマンドです。
中級ブランチ
問題23: git switch -c - ブランチの作成と切り替え
git switch -cコマンドで、新しいブランチを作成して同時に切り替える方法を学びます。git branchとgit switchを別々に実行するよりも効率的です。
中級ブランチ
問題24: git branch -d - マージ済みブランチの削除
git branch -dコマンドで、マージ済みのブランチを安全に削除する方法を学びます。不要になったブランチを整理することで、リポジトリを清潔に保てます。
中級ブランチ
問題25: git branch -D - 強制的なブランチ削除
git branch -Dコマンドで、マージされていないブランチも強制的に削除する方法を学びます。実験的なブランチや、もう必要ないブランチを削除する際に使用します。
中級マージ
問題26: git merge - ブランチのマージ(Fast-forward)
git mergeコマンドでブランチをマージする基本的な方法を学びます。Fast-forwardマージは、ブランチが直線的に進んでいる場合に発生するシンプルなマージです。
中級マージ
問題27: git merge --no-ff - マージコミットの作成
git merge --no-ffコマンドで、Fast-forwardが可能な場合でも明示的にマージコミットを作成する方法を学びます。これにより、ブランチの存在を履歴に残すことができます。
中級マージ
問題28: git merge(コンフリクト解決) - マージコンフリクトの解決
マージ時に発生するコンフリクトを解決する方法を学びます。同じファイルの同じ箇所が異なるブランチで変更された場合に発生します。
中級リモート操作
問題29: git clone - リポジトリのクローン
git cloneコマンドでリモートリポジトリをローカルにコピーする方法を学びます。これはGitを使った協働作業の第一歩です。
中級リモート操作
問題30: git remote add origin - リモートリポジトリの追加
git remote addコマンドで既存のローカルリポジトリにリモートリポジトリを追加する方法を学びます。
中級リモート操作
問題31: git push - 変更をリモートにプッシュ
git pushコマンドでローカルのコミットをリモートリポジトリにプッシュする方法を学びます。このコマンドはローカルブランチのコミットを対応するリモートブランチにアップロードし、作業内容を他の開発者と共有します。
中級リモート操作
問題32: git push -u - 上流ブランチの設定
git push -u (--set-upstream)コマンドでローカルとリモートブランチ間のトラッキング関係を設定する方法を学びます。これによりローカルブランチとリモートブランチの永続的な関連付けが作成され、今後のプッシュやプルが簡単になります。
中級リモート操作
問題33: git pull - リモートから変更を取得
git pullコマンドでローカルリポジトリをリモートの変更と同期する方法を学びます。このコマンドはリモートリポジトリから変更を取得し、自動的に現在のブランチにマージします。
中級リモート操作
問題34: git fetch - リモートの変更を取得のみ
git fetchコマンドでリモートリポジトリから変更を取得する方法を学びます。git pullとは異なり、fetchは変更をダウンロードするだけでマージは行わないため、取り込む前に変更内容を確認できます。
中級リモート操作
問題35: git remote -v - リモートリポジトリの確認
git remote -vコマンドで設定済みのリモートリポジトリの詳細情報を表示する方法を学びます。このコマンドは各リモートのfetchとpush両方のURLを表示します。
中級スタッシュ
問題36: git stash - 作業を一時保存
git stashコマンドで現在の作業ディレクトリの変更を一時的に保存する方法を学びます。これにより未完成の作業をコミットせずに素早くコンテキストを切り替えることができ、変更をスタックに保存して後で取り出せます。
中級スタッシュ
問題37: git stash pop - スタッシュの適用と削除
git stash popコマンドでスタッシュした変更を復元し、同時にスタッシュスタックから削除する方法を学びます。このコマンドは最新のスタッシュを適用し、自動的にスタッシュリストから削除します。
中級スタッシュ
問題38: git stash apply - スタッシュの適用(保持)
git stash applyコマンドでスタッシュした変更をスタッシュスタックから削除せずに適用する方法を学びます。popとは異なり、applyはスタッシュをリストに残すため、同じ変更を複数回適用できます。
中級スタッシュ
問題39: git stash list - スタッシュスタックの表示
git stash listコマンドでスタッシュスタックに保存されているすべてのスタッシュを表示する方法を学びます。このコマンドは各スタッシュのインデックス番号、ブランチ名、コミットメッセージを表示し、識別しやすくします。
中級スタッシュ
問題40: git stash drop - 特定のスタッシュを削除
git stash dropコマンドでスタッシュスタックから特定のスタッシュを削除する方法を学びます。これにより不要なスタッシュを永久に削除し、スタッシュリストを整理された管理しやすい状態に保てます。
中級タグとリリース
問題41: git tag - 軽量タグの作成
git tagコマンドでGitの軽量タグを作成する方法を学びます。タグは特定のコミットを指す参照で、プロジェクト履歴のv1.0.0のようなリリースポイントをマークするのによく使われます。
中級タグとリリース
問題42: git tag -a -m - 注釈付きタグの作成
git tag -a -mコマンドでメッセージ付きの注釈付きタグを作成する方法を学びます。注釈付きタグはタグ作成者の名前、メール、日付、タグメッセージなどの追加メタデータを保存し、軽量タグより情報量が多くなります。
中級履歴とログ
問題43: git show - コミットとタグの詳細表示
git showコマンドでコミット、タグ、その他のGitオブジェクトの詳細情報を表示する方法を学びます。この多機能コマンドはコミットメッセージ、変更内容、様々なGitオブジェクトのメタデータを表示します。
中級変更の取り消し
問題44: git revert - コミットの安全な取り消し
git revertコマンドで変更を逆転させる新しいコミットを作成して、コミットを安全に取り消す方法を学びます。resetとは異なり、revertは指定したコミットの変更を取り消す新しいコミットを作成して履歴を保持します。
中級マージ
問題45: git cherry-pick - 特定コミットの適用
git cherry-pickコマンドであるブランチから別のブランチに特定のコミットを適用する方法を学びます。これによりブランチ全体をマージせずに選択的に変更を取り込むことができます。
上
上級
無料で学習可能
上級ブランチ操作
問題46: git rebase - ブランチのリベース
git rebaseコマンドを使って、ブランチを別のブランチにリベースする方法を学びます。リベースは、コミットを対象ブランチの先端に移動させることで、プロジェクト履歴をより整理された状態にします。
上級ブランチ操作
問題47: git rebase -i - インタラクティブリベース
git rebase -iコマンドを使って、コミットの編集、スカッシュ、並び替え、削除を行うインタラクティブリベースの使い方を学びます。この強力な機能により、共有前にコミット履歴をきれいに整理できます。
上級変更の取り消し
問題48: git reset --soft/--mixed/--hard - リセットの3つのモード
git resetの3つのモード(--soft:変更をステージングに保持、--mixed:変更をアンステージ、--hard:すべての変更を破棄)の違いを学びます。これらのモードを理解することは、コミットと作業ディレクトリの管理に不可欠です。
上級変更の取り消し
問題49: git reflog - 参照履歴の追跡
git reflogを使ってHEADの移動履歴を表示し、失われたコミットを復元する方法を学びます。reflogは、reset、rebase、その他の操作で誤ってコミットを失った場合のセーフティネットです。
上級変更の取り消し
問題50: git filter-repo - 大規模な履歴の書き換え
git filter-repoを使って大規模な履歴の書き換えを行う方法を学びます。filter-branchの最新の代替として、機密データの削除、リポジトリの再構築、履歴を保持したままのサブディレクトリ抽出などができます。
上級履歴とログ
問題51: git bisect - バグを二分探索
git bisectを使ってコミット履歴を二分探索し、バグが導入されたコミットを特定する方法を学びます。この強力なデバッグツールは、問題のあるコミットを効率的に絞り込みます。
上級履歴とログ
問題52: git blame - 行の履歴を追跡
git blameを使って、ファイルの各行を最後に変更したのが誰で、いつ変更されたかを確認する方法を学びます。このコマンドは、コード履歴の理解や特定のコード部分について誰に聞くべきかを見つけるのに非常に役立ちます。
上級履歴とログ
問題53: git log -S - 文字列の変更を検索
git log -S(pickaxe)を使って、特定の文字列が追加または削除されたコミットを見つける方法を学びます。この強力な検索機能は、特定のコードがいつコードベースに導入または削除されたかを追跡するのに役立ちます。
上級履歴とログ
問題54: git log --follow - ファイル名変更を追跡
git log --followを使って、名前変更や移動があってもファイルの履歴を追跡する方法を学びます。このコマンドは、プロジェクト内でファイルが再編成されても履歴を失わないようにします。
上級履歴とログ
問題55: git grep -n - 行番号付きで検索
git grep -nを使って、行番号付きでコードベース内のパターンを検索する方法を学びます。このGit対応のgrepは通常のgrepより高速で、.gitignoreルールを尊重します。