Git の教科書

このサイトでは、Git のコマンドとその裏で起きていることを概念図つきで解説します。説明はコマンドライン(CLI)ベースですが、VS Code や Sourcetree などの GUI ツールもボタンの裏で同じコマンドを実行しているにすぎません。仕組みを理解しておけば、どのツールを使っても迷わず操作できるようになります。

カテゴリから探す

目的に合わせてカテゴリを選んでください

応用ガイド

コマンドの使い分けや実践的なワークフローを解説

トラブルシューティング

初心者がハマりやすいポイントと解決策

.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 でリモートに存在しなくなったブランチの追跡参照をローカルから安全に削除する方法