0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

git diff - ステージング済みの内容を確認する

Last updated at Posted at 2025-06-26

diffの出力に戸惑ったので整理した

差分を確認したいときに、

git diff

だけだと、

  • ステージングしたあとはどう確認するんだっけ
  • 変更のある全ファイル分表示されて目的の箇所を見つけにくい

など、使うたびに迷っていた気がするので、オプションの紹介やコミット後の差分の取り方も併せて、記載していきます。

書いてあること

  • git diffでステージング済みの変更差分を確認する方法
  • コミット済みの変更差分を確認する方法
  • git log -p の「-p」ってなに?というところ

書いていないこと

  • patchに関する詳細
  • git diffやgit logのオプション網羅

結論

ステージング前の変更差分を見るには

git diff

ステージング後の変更差分を見るには

git diff —-cached

もしくは

git diff —-staged

 
そして、コミット後の変更差分を見るには、

git log -p

を使います。

参照するドキュメント

man git-diff

で、git diffのマニュアルを見ていきます。
man git diffじゃないんですね。

マニュアルの見つけ方ですが、man git とすると、けっこう下の方の

HIGH-LEVEL COMMANDS (PORCELAIN)

のところに、

git-diff(1)
    Show changes between commits, commit and working tree, etc.

とあり、git diffのmanは「git-diff」と指定すれば良いことがわかります。

余談

Gitのコマンドはporcelainコマンドと、plumbingコマンドに分かれています。

GIT COMMANDS
    We divide Git into high level ("porcelain") commands and low level ("plumbing") commands.

Porcelainはユーザーフレンドリーな、いわゆるgitのコマンド
 
PlumbingはUNIX流につなぎ合わせたり、スクリプトから呼んだりすることを主眼において設計されている低レベルの配管コマンドのこと
 
上記は別記事参照

実際の使い方

git diff --cached
  ステージングされたファイルのdiffを表示する

もしくは「—staged」は「—cached」のsynonym(同義語、シノニム)なので、

git diff --staged

でも良いらしい。manに書いてあったので今回知りました。
 
用法としては

git diff [<options>] --cached [--merge-base] [<commit>] [--][<path>...]

なので、

  • 特定のコミットからのdiffを表示する(デフォルトはHEADから)
  • pathで指定されたファイルについてのdiffを表示する
    という使い方もできます。

そこはこの記事では触れません。
 
まとめると、
 
ステージング前の変更差分を見るには

git diff

ステージング後の変更差分を見るには

git diff —-cached

もしくは

git diff —-staged

そしてコミット後の変更差分を見るには、

git log -p

となります。
 
ちなみに、
 
git log の-pオプションは「-patch」の略で、
git logの出力に差分を表示するものです。
 
ここで「patch」という語がよくわからなくなります。
 
git logの-pオプションを見ると「Generate patch」という解説がされていますが、
 
「差分を表示する」
 
のと
 
「Generate patch(パッチを作成する)」
 
という語には別の意味あいが含まれている感じがします。

-p, -u, --patch
    Generate patch (see the section called “GENERATING PATCH TEXT WITH -P”).

もともとUnix系のプログラムコードの更新には、diffで出力した差分をpatchという更新用途のファイルにして配布する(テキストの更新も含む)という方法があり、その流れを汲んだ名前ということになります。
 
https://ja.wikipedia.org/wiki/Patch
 
そのため、出力したdiff=patchということになります。
 
コミット前の変更差分はgit diffで表示できますが、
 
コミット後の変更差分は「patch」という扱いになりgit log —patch(省略してgit log -p)になる、
 
という考え方になります。
 

以上

git diffのよく使う方法と、ステージング後、コミット後の差分の確認の仕方でした!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?