gitの差分表示(CLI完結型)をするときによく使うコマンド


いろいろな差分等の取得方法をメモしています。

コミットID(短縮形ハッシュ)とコミットメッセージだけをリスト表示

$ git log --oneline
abf123c タイトル修正
5aa2d00 ページネーション追加
a25ad67 キャプション修正

コミットID、ユーザ名、変更時期、コミットコメントをフォーマット指定しリスト表示

$ git log --pretty=format:"%h - %an, %ar : %s"
abf123c - User Name, 3 days ago : タイトル修正
5aa2d00 - User Name, 3 days ago : ページネーション追加
a25ad67 - User Name, 4 days ago : キャプション修正
2cd113c - User Name, 5 days ago : CSS修正
3acb467 - User Name, 6 days ago : ブレークポイント追加
d5c27b1 - User Name, 1 weeks ago : メニュー追加
e2d13fa - User Name, 1 weeks ago : JS修正
ee1461d - User Name, 1 weeks ago : README修正

コミットIDを指定して変更内容を見る

$ git show abf123c
commit abf123c6dfb790599fa6debfb3f3de28159817a8
Author: User Name <[email protected]>
Date:   Sat Feb 11 09:41:26 2023 +0900

    タイトル修正

diff --git a/www/product/detail.php b/www/product/detail.php
index 8f8e629..ea42b95 100644
--- a/www/product/detail.php
+++ b/www/product/detail.php
@@ -108,7 +108,7 @@
         <div>
-            <h1>title</h1>
+            <h1>タイトル</h1>
             <p>

ある時点からある時点までの変更箇所をファイル名のみで表示

$ git diff d5c27b1..abf123c --name-only
sass/page/_address.scss
www/address/confirm.php
www/address/index.php
www/css/style.css
www/components/nav.php
www/news/detail.php
www/product/detail.php
www/product/index.php

ある時点からある時点の特定ファイルの変更箇所をソースコードで表示

$ git diff d5c27b1..abf123c www/news/detail.php
diff --git a/www/news/detail.php b/www/news/detail.php
index b22ed1a..adfacc1 100644
--- a/www/news/detail.php
+++ b/www/news/detail.php
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <html lang="ja">
-<?php define('META_TITLE', 'ニュース'); ?>
+<?php define('META_TITLE', 'ニュース詳細'); ?>
 <head>
(END)

あるブランチとあるブランチの差分をファイル名で表示

$ git diff --name-only origin/master origin/develop
.gitignore
README.md
package-lock.json
package.json

作業ブランチの最新コミットからn個前のコミット差分(ファイル名)を取る

$ git diff --name-only HEAD~1 HEAD
www/product/detail.php
www/product/index.php

CLIでgit差分を見るときの良い方法が他にもあればいろいろ教えてください!

参考URL:

Gitで差分ファイルを抽出+zipファイル化する方法
マジ便利、Gitリビジョン間の差分をエクスポート | すぐ使えるサンプルコマンド付き
第9話 git diff で差分を確認!【連載】マンガでわかるGit ~コマンド編~
git diff を徹底攻略!よく使うオプションまとめ
Gitでハッシュ値指定が重複したらどうなるのか
Git ‐ 通信用語の基礎知識