1.サーバのリポジトリ
2.ローカルのリポジトリ
3.HEAD 最新コミット
4.インデックス コミット準備
5.ワークツリー 編集ファイル
git diff # 記録前の差分を確認 4と5
git diff --cached # コミット準備部分を確認 3と4
git diff HEAD # コミット前の差分を確認 3と5
git add . # 全ての状態を記録 5→4
git add -u # 全てのファイルを記録 5→4
git add -A # git add . + git add -u 5→4
git add [FILE] # 任意のファイルのみを記録 5→4
git add -p # ファイル内の一部のみ記録 5→4
git reset # 全ファイルのコミット準備解除 4→5
git reset [FILE] # 指定ファイルのコミット準備解除 4→5
git checkout [FILE] # git add 直後の状態に戻す 4→5
git checkout HEAD [FILE] # git add を取り消す 4→5
git status # コミット対象を確認 4
# .gitignoreファイルに記載すればコミット対象から除外
git commit # 記録した修正をコミット 4→3
git commit -m "COMMENT" # コメント付きでコミット 4→3
git commit [FILE] # 任意のファイルのみをコミット 4→3
git commit -a # git add -u + git commit 5→3
git commit --amend # コミットのやり直し 4→3
git commit --amend -a # コミットのやり直し 5→3
git rebase -i HEAD~3 # 3世代前に対して再コミット 4→3
git revert [COMMIT] # 任意のコミットの取消 3→4
# コミットを取り消すコミット
git reset HEAD^ # 直前のコミットを取り消す 3→4
# コミットを無かったことにする(ワークツリーそのまま)
git reset --hard HEAD^ # 直前のコミットを取り消す 3→5
# コミットを無かったことにする(ワークツリーも戻す)
git reset --hard HEAD # 全ての変更を取り消す 3→5
git log # コミット履歴の確認 3
git log [FILE] # 任意のファイルの履歴を確認 3
git log --grep=[PATTERN] # メッセージ検索して履歴確認 3
git log --pretty=short # コミット履歴の確認(要約) 3
git blame [FILE] # ファイル内のコミット箇所を確認 3
git show # コミット内容の確認 3