Gitで色々確認する際に使うコマンド
git status, git log ,git diff, git showはいずれもお世話になっている便利な確認用コマンドであり、見やすい表示など活用例をまとめた。
オススメ.bashrcの設定例
alias gitshow='git show --oneline --color-words' alias gitstatus='git status --short --branch' alias gitlog='git log --graph --decorate --oneline' alias gitdiff='git diff --color-words'
git status色々
$ git status --short # staging状態等を簡潔表示 $ git status --branch # 1行目にブランチ名を表示
- 簡潔表示の表記説明:
- 1文字目が対象fileのstaging(index)の状態を表示
- 2文字目が対象fileの作業ディレクトリ内の状態を表示
凡例 | 説明 |
---|---|
M_ | file変更をstaging済み (staged) |
_M | file変更をstagingしていない (modified) |
MM | staging後に再びfile変更 (modified) |
A_ | 新規fileをstaging済み |
_A | 新規fileを追跡file化したが未staging:git add -N |
_D | fileをshellでrmしたがgit addやgit rmでは未処理 |
?? | gitが追跡していない(untracked) |
UU | mergeでconflictした (unmerged) |
git show色々
$ git show --oneline # commitを1行表示+単語単位のカラー差分表示 $ git show --color-words # commitを1行表示+単語単位のカラー差分表示 $ git show SHA1:files # あるcommit時点の特定fileの内容を確認 $ git show -1 # 最新commit情報と変更点の表示(git show と同じ) $ git show -2 # 直前commit情報と変更点の表示 $ git show -3 # 2つ前のcommit情報と変更点の表示
git diff色々
$ git diff origin/main # ローカルとリモートとの変更箇所表示 $ git diff HEAD..origin/main # git pull前にリモートとの変更箇所表示 $ git diff origin/main..HEAD # git push前にリモートとの変更箇所表示 $ git diff old_SHA1..new_SHA1 # commit間の変更箇所表示 $ git diff any_SHA1^..any_SHA1 # あるcommitの変更箇所表示 $ git diff branch..anotherbranch # ブランチ間の変更箇所表示 $ git diff HEAD^ # 最新commitの変更箇所表示 $ git diff # 作業ディレクトリとstagingの変更箇所表示 $ git diff --staged # stagingと最新commitの変更箇所表示 $ git diff -- files # staging前のfileの変更箇所表示 $ git diff branch..anotherbranch -- files # ブランチ間の特定file変更箇所表示 $ git diff --stat # 変更した行数だけを見る $ git diff --name-only # 変更したfile名だけを見る $ git diff --color-words # 差分が行単位から単語単位でカラー表示
..の右側が時系列的に新しいものとみなされる
git log色々
$ git log --oneline # commitメッセージを1行のみ表示 $ git log --graph # commit/merge履歴をGUI的に表示 $ git log --decorate # 各branchのHEADの位置を表示 $ git log --stat # 変更file名と行数の簡易表示 $ git log --since=2021-12-1 # 指定した日付以降のログを表示 $ git log --until=2022-4-1 # 指定した日付までのログを表示 $ git log --since=2022-1-1 --until=2022-4-1 # 指定日から指定日まで表示 $ git log master # ブランチを指定して表示 $ git log files # 特定fileのログのみを表示