git コマンド

流れ

  1. ワークディレクト変更
  2. indexに追加
  3. コミット(head更新)
  4. headをpush

各コマンド

git add .
git diff // 何もでない
git commit -m "初回コミット"
// ファイルを修正
git diff

// diffがでる
@@ -1 +1 @@
-test
+test a

git add .
git diff // 何もでなくなる。ワークディレクトリとindexの差分をみるため
git diff --cached // HEADとindexの差をみると差分が確認できる
@@ -1 +1 @@
-test
+test a

// headの状態に戻す ワークディレクトリにも修正したものは残らない
git checkout HEAD test.rb

// また修正する
git diff // 差分確認できる
git add .
git diff // 差分確認できなくなる
git reset HEAD test.rb // indexしたものをワークディレクトリに戻す
git diff // 差分を確認できるようになる。

git reset

各メソッド

// head, index, ワークディレクトリすべて削除
git reset --hard head~

// headのみ削除(indexされた状態で残る)
git reset --soft head~

// head, indexを削除
git reset --mixed

テスト

// ファイル修正
git add .
git commit -m "修正"
git reset --soft head~ // indexされた状態で残る
git diff --cached // indexされた状態を確認できる
// 再度コミット
git reset --mixed head~ // head, indexも削除される
git diff cached // 何もない
git diff // 確認できる
// 再度コミット
git reset --hard head~ // head, index, ワークディレクトが削除される
git diff --cached // 何もない
git diff // 何もない

その他

// 前回のコミットとの差分を確認
git diff HEAD^ HEAD