Git の教科書
このサイトでは、Git のコマンドとその裏で起きていることを概念図つきで解説します。説明はコマンドライン(CLI)ベースですが、VS Code や Sourcetree などの GUI ツールもボタンの裏で同じコマンドを実行しているにすぎません。仕組みを理解しておけば、どのツールを使っても迷わず操作できるようになります。
まずは使い始めよう
Git を初めて使う方はここからスタート
カテゴリから探す
目的に合わせてカテゴリを選んでください
応用ガイド
コマンドの使い分けや実践的なワークフローを解説
3つのブランチ統合手段を場面ごとに使い分ける実践ガイド
soft / mixed / hard の使い分けから、HEAD~ / HEAD^ / コミットID指定まで
コミットの整理・移動・救済など、日常的に使える実践パターン集
git restore と git reset は似ているようで目的が異なります。それぞれの役割と使い分けを解説
git restore と git rm は「変更を取り消す」と「ファイルを削除する」で目的が全く異なります
Git 2.23 で登場した switch / restore と従来の checkout の使い分け
Conventional Commits 形式とわかりやすいメッセージの書き方
Git Flow, GitHub Flow, トランクベース開発の違いと選び方
プロジェクト開始からリリース・ホットフィックスまで、Git Flow の全フェーズを時系列で追う実践ガイド
.gitignore の基本構文、よく使うパターン、テンプレートの活用方法
コミットを識別するランダムな英数字 ID — 仕組みと確認方法
トラブルシューティング
初心者がハマりやすいポイントと解決策
.gitignore に追加したのに無視されないファイルへの対処方法を解説
コンフリクトの読み方・解消手順をステップバイステップで解説
.env やパスワードファイルを誤ってコミットした場合の対処と予防策
git pull 時に不要なマージコミットが生成される原因と解決策
detached HEAD の意味・原因・復帰方法と、コミットを救出する手順
main に直接コミットした変更を git revert で安全に取り消す手順
Windows/Mac/Linux 間の改行コードの違いによる問題と設定方法
macOS/Windows でファイル名の大文字・小文字だけ変更しても Git が検知しない問題と対処法
初回 push で発生する upstream 未設定エラーの原因と解決方法
git diff を実行しても何も表示されない場合の原因と対処法
--amend は便利だが push 済みコミットの修正は危険。安全な使い方を解説
rebase 中にコンフリクトが発生した場合の対処法と、中断・継続の判断基準
stash に名前をつける方法、一覧管理、apply と pop の違いなど実践的な使い方
.git ディレクトリの役割と、誤削除やネストによるトラブルの原因・対処法
ブランチを切り替えようとしたら「変更が上書きされます」エラーが出るときの対処法
Git の初期設定・推奨設定をカテゴリ別に一覧で紹介。user.* / core.* / pull.* / push.* / alias.* などよく使うキーをまとめたリファレンス
feature ブランチに main を取り込んでから main にマージすることで、不要な 3-way マージを防ぐ方法
git reset --hard で消してしまった変更やコミットを元に戻す方法を解説
マージ済みのローカルブランチやリモート追跡ブランチを安全に削除する方法
よく使うコマンド
まずはこれだけ覚えておけばOK
git initフォルダを Git リポジトリとして初期化します。
git cloneリモートリポジトリをローカルにコピーします。
git status作業ツリーの状態を表示します。
git add変更をステージングエリア(staging area)に追加します。
git commit変更をリポジトリに記録します。
git logコミット履歴を表示します。
git branchブランチの一覧表示、作成、削除を行います。
git merge2つ以上の開発履歴を統合します。
git pullリモートから変更を取得してマージします。
git pushローカルの変更をリモートに送信します。
git stash作業中の変更を一時的に退避(スタッシュ)します。
Git Ready