gitコマンドの使い方メモ

gitコマンドのうち、すぐに使い方を忘れてしまうものをメモっておきます。

ファイルの差分を調べる

コマンド 処理内容
git diff 作業ツリーとステージの差分を表示する
git diff --staged ステージとHEADの差分を表示する
git diff HEAD 作業ツリーとHEADの差分を表示する
git diff コミット1 コミット2 コミット間の差分を表示する
git diff コミット1 コミット2 -- ファイル 特定のファイルについて、コミット間の差分を表示する
git show コミット あるコミットで何をしたかを見る

ステージ内容の表示

コマンド 処理内容
git ls-files ステージされているファイルやディレクトリを表示する
git ls-files -s ハッシュ値と一緒にステージされているファイルやディレクトリを表示する
git show ハッシュ値 ハッシュ値が指すファイルの中身を表示する

ステージ内容の操作

コマンド 処理内容
git reset ステージの内容をHEADに合わせる
git reset -- ファイル 特定のファイルだけ、ステージの内容をHEADに合わせる
git reset --hard ステージと作業ツリーの内容をHEADに合わせる
git checkout -- ファイル名 作業エリアのファイルをステージからチェックアウトする

ファイル/ディレクトリ操作

コマンド 処理内容
git mv 旧名称 新名称 ファイル名やディレクトリ名を変更する
git rm ファイル名 ファイルをGit管理下から外す
(作業ツリーのファイルも削除する)
git rm -r ディレクトリ名 ディレクトリをGit管理下から外す
(作業ツリーのディレクトリも削除する)
git rm --cached ファイル ファイルをGit管理下から外す
(作業ツリーのファイルは残す)
git rm -5 --cached ディレクトリ ディレクトリをGit管理下から外す
(作業ツリーのファイルは残す)

リポジトリ操作

コマンド 処理内容
git checkout コミット -- ファイル コミットからファイルを取り出す(HEADの位置は不変)
ファイルを取り出した後で作業ツリーをHEADの状態に戻す場合は、git reset --hardを使う。

コミット操作

コマンド 処理内容
git reset --hard コミット 履歴の先端を指定したコミットに移動し、それ以降のコミットを破棄する(ステージ&作業ツリーはコミットの内容で上書きされる)
git reset コミット 履歴の先端を指定したコミットに移動し、それ以降のコミットを破棄する(ステージ:上書き/作業ツリー:そのまま)
git reset --hard コミット 履歴の先端を指定したコミットに移動し、それ以降のコミットを破棄する(ステージ&作業ツリー:そのまま)
git commit --ammend HEADが指すコミットを捨て、現在のステージの状態をコミットしなおす。