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